Marco Perone
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` - [...