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.

2012/6/13 Ismael Figueroa Palet <ifigueroap@gmail.com>
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 a
type 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