On Wed, Oct 7, 2015 at 3:35 AM, Herbert Valerio Riedel <[email protected]> wrote:
> --8<---------------cut here---------------start------------->8---
> import Control.Applicative as A (Applicative(..))
>
> data Maybe' a = Nothing' | Just' a
>
> instance Functor Maybe' where
> fmap f (Just' v) = Just' (f v)
> fmap _ Nothing' = Nothing'
>
> instance A.Applicative Maybe' where
> pure = Just'
> f1 <*> f2 = f1 >>= \v1 -> f2 >>= (pure . v1)
>
> instance Monad Maybe' where
> Nothing' >>= _ = Nothing'
> Just' x >>= f = f x
>
> return = pure -- "deprecated" since GHC 7.10
> --8<---------------cut here---------------end--------------->8---
>
>
Alternately,
import Control.Applicative
import Prelude
data Maybe' a = Nothing' | Just' a
instance Functor Maybe' where
fmap f (Just' v) = Just' (f v)
fmap _ Nothing' = Nothing'
instance Applicative Maybe' where
> -- hvr
> _______________________________________________
> Haskell-prime mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime
>
_______________________________________________
Haskell-prime mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime