2014-12-10 21:32 GMT+01:00 Richard Eisenberg <eir@cis.upenn.edu>:
Escape what, exactly? I'm not sure what your end goal is, so I don't know what you're trying to escape from.

Is this what you want?

data List where
  Nil :: List
  Cons :: a -> b -> List

type Foo = Cons True (Cons "x" (Cons () Nil))

That works, but isn't very useful in practice, I don't think...

Escape from this trouble.
When I try to apply a type family on it, I get a forall k, isn't there a way to "set" it?

Thanks,
Regards.