> Hi, I was playing around after getting the new O'Reilly book with
> lists and their operators!
> Not sure what the below actually means?
> Prelude>  : 
> it :: [[a]]
> (Got :set +t on )
> I thought the first argument of ':' must be an element, so is the
> empty list an element of the same type of the contents of the empty
(:) :: a -> [a] -> [a]
In this case the first argument is an empty list (type forall a. [a])
and the second must therefore be an empty list of lists (type forall
a. [[a]]). Hence the result is also of type forall a. [[a]] (with all
the `a's unified).
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [hidden email] system administrator [openafs,heimdal,too many hats] [hidden email] electrical and computer engineering, carnegie mellon university KF8NH