At 2002-06-06 03:38, Cagdas Ozgenc wrote:

>Then either -> is not a type constructor, 

(->) is a type constructor.

>or the concept of type
>constructors has to be divided into two : consuming type constructors, and
>producing type constructors.

Type constructors can do anything they like with their arguments. Here 
are some of kind (* -> *):

     newtype Holds a = MkHolds a

     data Ignores a = MkIgnores

     newtype Wants a = MkWants (a -> Bool)

     data List a = MkPairList a (List a) | MkEmptyList

     data Maybe a = Just a | Nothing

I don't think you can divide them up into two categories...

-- 
Ashley Yakeley, Seattle WA

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to