Status of Haskell'?
Ross Paterson
ross at soi.city.ac.uk
Mon Dec 3 09:54:14 CET 2012
On Sun, Dec 02, 2012 at 07:56:57PM +0000, Gábor Lehel wrote:
> Out of curiosity, to what degree does MultiParamTypeClasses have this
> issue? It seems to me like one of the few extensions which is
> straightforward, widely implemented, uncontroversial, and very useful.
There's some discussion of the linkages at
http://hackage.haskell.org/trac/haskell-prime/wiki/MultiParamTypeClasses
Without FlexibleInstances, each argument in an instance must be a
type constructor applied to type variables, with no repetition of type
variables across the head. That would rule out instances like these
from the array packages:
instance IArray Array e
instance MArray (STArray s) e (ST s)
instance Storable e => MArray StorableArray e
Even without these, when reducing contexts you encounter situations
where one argument has a type constructor and another is a type variable.
So you have to change the notions of simple context and context reduction
errors (section 4.5.3). GHC avoids that by deferring context reduction,
but that opens a whole other can of worms.
More information about the Haskell-prime
mailing list