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

Reply via email to