Edsko,
Are there any papers that describe how higher kind type inference
(and I
really mean higher kind, not higher rank) is done?
I'm not aware of any specific papers (but maybe someone else can jump
in, here?), but as long as your kind language is simple enough, say
k, v ::= *
| k -> v ,
you can apply the well-known techniques from type inference. Assuming
your kind system does not incorporate kind polymorphism, you could
just replace generalization by defaulting; so, instead of, for instance
gen((a -> *) -> a -> b -> *) = forall k v. (k -> *) -> k -> v -> * ,
you get
def((a -> *) -> a -> b -> *) = (* -> *) -> * -> * -> * .
HTH,
Stefan
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell