On Wed, Oct 7, 2015 at 3:35 AM, Herbert Valerio Riedel <h...@gnu.org> 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 > Haskell-prime@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime >
_______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime