Marco Perone

Results 85 issues of Marco Perone

Define `Pair` data structure defined as in https://github.com/marcosh/lamphpda/blob/master/src-old/Pair.php - [x] `Functor` instance - [x] `Apply` instance - [x] `Applicative` instance - [x] `Monad` instance - [ ] `Foldable` instance -...

Define `Reader` data structure defined as https://github.com/marcosh/lamphpda/blob/master/src-old/Reader.php - [x] `Functor` instance - [x] `Apply` instance - [x] `Applicative` instance - [x] `Monad` instance - [ ] `Alternative` instance

Define `Alternative` typeclass and define its main instances - [ ] `LinkedList` - [ ] `Maybe` - [ ] `IO`

Implement several semigroup instances - [ ] `Booleans` with `&&` - [ ] `Booleans` with `||` - [x] `List` - [x] `string` - [ ] `Semigroup A => Semigroup Maybe`...

Add identity element to `Semigroups` which are also `Monoid`s. see https://github.com/marcosh/lamphpda/issues/15

Add generic tests to check that laws are respected by typeclass instances - [ ] `Functor` - [ ] `Apply` - [ ] `Applicative` - [ ] `Monad` - [...

Define `Comonad` typeclass as defined in https://hackage.haskell.org/package/comonad-5.0.8/docs/Control-Comonad.html#t:Comonad

Add `Const` data structure as defined in https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Applicative.html#t:Const - [ ] `Functor` instance - [ ] `Apply` instance - [ ] `Applicative` instance - [ ] `Foldable` instance - [...

Define a `Free` monad construction defined as in https://hackage.haskell.org/package/free-5.1.7/docs/Control-Monad-Free.html#t:Free

Define `MonadCatch` typeclass defined as in https://hackage.haskell.org/package/exceptions-0.10.4/docs/Control-Monad-Catch.html#t:MonadCatch This might require to change `MonadThrow` and specifically update the instance for `Maybe` - [ ] `IO` - [ ] `Maybe` - [...