On 22 February 2006 17:27, Malcolm Wallace wrote:

> However, I would be
> equally happy to combine type/newtype/data into a single keyword for
> exports.

for the record, I am in favour of tagging export specifiers with 'class'
or 'type' (using 'type' for all type constructors, in light of yours and
John's points).

I'm not in favour of adding type signatures to export lists.  It's a
half way solution to specifying interfaces, and I'd rather design it
properly from scratch.  If modules are to contain interfaces, I don't
think extending the export list is the way to do it.  I'd rather do
something like:

--------------------------------------
modules M exports

class Eq a where
  (==) :: a -> a -> Bool

data T :: * -> *
f :: T -> Int
mkT :: Int -> T

where -- implementation below here

data T a = C a Int
f = ...
--------------------------------------

Not a proposal by any means, and I don't think that Haskell' should
tackle this, but this seems the right direction to me.

Cheers,
        Simon
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to