X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypes%2FTypeRep.lhs;h=aa1c1fad2f9e58455074a5203ca905c2acc1686c;hb=db375d630cb6e3377e48daaa0388ba5a4f798f7b;hp=c222bf4d4ddf12a865b953348574e44b5afb665c;hpb=b0842998a6bad0cae47f980f4ed9156701c8198b;p=ghc-hetmet.git diff --git a/compiler/types/TypeRep.lhs b/compiler/types/TypeRep.lhs index c222bf4..aa1c1fa 100644 --- a/compiler/types/TypeRep.lhs +++ b/compiler/types/TypeRep.lhs @@ -322,7 +322,7 @@ funTyCon = mkFunTyCon funTyConName (mkArrowKinds [argTypeKind, openTypeKind] lif -- You might think that (->) should have type (?? -> ? -> *), and you'd be right -- But if we do that we get kind errors when saying -- instance Control.Arrow (->) - -- because the expected kind is (*->*->*). The trouble is that the + -- becuase the expected kind is (*->*->*). The trouble is that the -- expected/actual stuff in the unifier does not go contra-variant, whereas -- the kind sub-typing does. Sigh. It really only matters if you use (->) in -- a prefix way, thus: (->) Int# Int#. And this is unusual.