#4481: Functor, Pointed, Applicative, Monad
---------------------------------+------------------------------------------
    Reporter:  gidyn             |       Owner:                
        Type:  proposal          |      Status:  new           
    Priority:  normal            |   Component:  libraries/base
     Version:  6.12.3            |    Keywords:                
    Testcase:                    |   Blockedby:                
          Os:  Unknown/Multiple  |    Blocking:                
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown  
---------------------------------+------------------------------------------

Comment(by gidyn):

 {{{
 class Functor f where
     map :: (a -> b) -> f a -> f b

 class Functor f => Pointed f where
     pure :: a -> f a

 class Pointed f => Applicative f where
     (<*>) :: f (a -> b) -> f a -> f b
     (*>) :: f a -> f b -> f b
     (<*) :: f a -> f b -> f a

 class Applicative m => Monad m where
     (>>=) :: m a -> (a -> m b) -> m b
     (>>) :: m a -> m b -> m b
     join :: m (m a) -> m a

     f >>= x = join (fmap f x)
     m >> k = m >>= \_ -> k
     join x = x >>= id
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4481#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to