> Why are type constructors and classes in the same namespace?

Because otherwise the syntax

        module M ( T ) where

would be ambiguous.  I suppose it could be resolved to mean "export the
class and/or data type T".  It was proposed for Haskell 98 that the syntax
be changed to 

        module M ( class T ) where

or

        module M ( type T ) where

but the proposal was not adopted, because of the amount of breakage this
would cause.

Cheers,
        Simon


Reply via email to