Personal tools

Cookbook/Compilers and interpreters

From HaskellWiki

< Cookbook(Difference between revisions)
Jump to: navigation, search
(GHCi)
(GHCi)
Line 14: Line 14:
 
|  :i
 
|  :i
 
|<haskell>
 
|<haskell>
Prelude> :i Maybe
+
Prelude> :i Monad
data Maybe a = Nothing | Just a         -- Defined in Data.Maybe
+
class Monad m where
instance (Eq a) => Eq (Maybe a) -- Defined in Data.Maybe
+
  (>>=) :: m a -> (a -> m b) -> m b
 +
  (>>) :: m a -> m b -> m b
 +
  return :: a -> m a
 +
  fail :: String -> m a
 +
        -- Defined in GHC.Base
 
instance Monad Maybe -- Defined in Data.Maybe
 
instance Monad Maybe -- Defined in Data.Maybe
instance Functor Maybe -- Defined in Data.Maybe
+
instance Monad IO -- Defined in GHC.IOBase
instance (Ord a) => Ord (Maybe a) -- Defined in Data.Maybe
+
instance Monad ((->) r) -- Defined in Control.Monad.Instances
instance (Read a) => Read (Maybe a) -- Defined in GHC.Read
+
instance Monad [] -- Defined in GHC.Base
instance (Show a) => Show (Maybe a) -- Defined in GHC.Show
+
 
</haskell>
 
</haskell>
 
|-
 
|-

Revision as of 08:28, 31 August 2009

1 GHC

TODO

2 GHCi

Problem Solution Examples
checking definitions  :i
Prelude> :i Monad
class Monad m where
  (>>=) :: m a -> (a -> m b) -> m b
  (>>) :: m a -> m b -> m b
  return :: a -> m a
  fail :: String -> m a
        -- Defined in GHC.Base
instance Monad Maybe -- Defined in Data.Maybe
instance Monad IO -- Defined in GHC.IOBase
instance Monad ((->) r) -- Defined in Control.Monad.Instances
instance Monad [] -- Defined in GHC.Base
checking types  :t
Prelude> :t "Hello"
"Hello" :: [Char]

3 Hugs

TODO