# Cookbook/Compilers and interpreters

### From HaskellWiki

< Cookbook(Difference between revisions)

(→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