Mmmmh... no, to do that you need ImpredicativeTypes (which is I believe about to be deprecated).
You have to declare Job a data, not a type, and use ExistentialQuantification.
Do you want to hide the specific types of the job? Presumably to then define a type JobList = [Job] ?You can do that with the ExistentialQuantification extension.type Job = forall k a. Map k atype JobList = [Job]??Note you can't unpack the types k a once you have hidden them. But the typechecker can use it to ensure some static property.Also you could use unsafeCoerce to do some casts, but *only if you are *sure* that things will go OK*.--2012/6/13 Magicloud Magiclouds <magicloud.magiclouds@gmail.com>
Hi,
I've forgotten this.
This is OK:
type Job k a = Map k a
And this is OK:
{-# LANGUAGE RankNTypes #-} -- or LiberalTypeSynonyms?
type Job = forall a. forall k. Map k a
Then how to write it like this?
type Job = Map k a
--
竹密岂妨流水过
山高哪阻野云飞
And for G+, please use magiclouds#gmail.com.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Ismael
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe