
#9200: Milner-Mycroft failure at the kind level -------------------------------------+------------------------------------- Reporter: ekmett | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 (Type checker) | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: GHC | Related Tickets: rejects valid program | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by simonpj): I've added a reply, as below. Is it ok to remove the para about "non- parametric" equations? '''Simon:''' I agree that, since type syononyms can't be recursive except via a data type, if you use "A possible variation" below, then you can get away with saying that type synonyms cannot have CUSKs. It seems a bit non-orthogonal; and could occasionally be tiresome. Imagine {{{ data T1 a b c = ...S... data T2 p q r = ...S... data T3 x y q = ...S... type S f g h = ...T1...T2...T3... }}} Then, since you can't decorate S with a CUSK, you might need to annotate all of T1, T2 and T3 with CUSKs. It would not be hard to say what a CUSK for a type synonym was: just wrap the whole RHS in a kind signature: {{{ type T (a::k1) (b::k1->k2) = b a :: k2 }}} I think I'd argue mildy for that, just to make the design orthogonal. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9200#comment:33 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler