On Aug 31, 2010, at 12:03 PM, michael rice wrote:

I tried creating an instance earlier but 

*Main> :t (->) Int Char

<interactive>:1:1: parse error on input `->'

Try:

Prelude> :info (->)
data (->) a b -- Defined in GHC.Prim

If you want type-information about values, use :t.  If you want information about types (and the "type-level language"), use :info. This includes stuff like class definitions and instances in scope.  For example, if I include Control.Monad:

Prelude Control.Monad.Instances> :info (->)
data (->) a b -- Defined in GHC.Prim
instance Monad ((->) r) -- Defined in Control.Monad.Instances
instance Functor ((->) r) -- Defined in Control.Monad.Instances

:info is pretty cool:

Prelude Control.Monad.Instances> :info 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 ((->) r) -- Defined in Control.Monad.Instances
instance Monad Maybe -- Defined in Data.Maybe
instance Monad [] -- Defined in GHC.Base
instance Monad IO -- Defined in GHC.Base