I am trying to write some primitives to make it easy to manipulate haskell
datatypes without knowing what they are.

However the following class:

> class MetaData a where
>  constructorName::a->String
>  mapArgs::(MetaData b,MonadPlus c) => (b->c)->a->[c]

results in the error
Illegal type "[c]" in constructor application

If I replace MonadPlus with Show or Num there is no error.
(Replacing MonadPlus with Monad also result in an error)

What is so special about MonadPlus and Monad that they result in an error,
but Show or Num don't.

-Alex-


___________________________________________________________________
S. Alexander Jacobson                   i2x Media  
1-212-697-0184 voice                    1-212-697-1427 fax


Reply via email to