[Haskell-cafe] Re: Release plans

Brandon Michael Moore brandon at heave.ugcs.caltech.edu
Wed Apr 18 02:39:03 EDT 2007


On Tue, Apr 17, 2007 at 12:50:48PM +0200, Doaitse Swierstra wrote:
> Just to show what kind of problems we are currently facing. The  
> following type checks in our EHC compiler and in Hugs, but not in the  
> GHC:
> 
> module Test where
> 
> data T s = forall x. T (s -> (x -> s) -> (x, s, Int))
> 
> run :: (forall s . T s) -> Int
> run ts  = case ts of
>             T g -> let (x,_, b) =  g x id
>                    in b

Consider this additional code which also typechecks in Hugs:

v :: forall s . T s
v = T f

f :: s -> ([s] -> s) -> ([s], s, Int)
f v g = let x = [v] in (x, g x, 0)

due to parametricity, run v can't depend on x or g x.
Apparently id has type [x] -> x. Are EHC and Hugs supposed
to support equirecursive types?

Brandon


More information about the Haskell-Cafe mailing list