Bugs item #753780, was opened at 2003-06-13 07:24
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=753780&group_id=8032

Category: Compiler (Type checker)
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Simon Peyton Jones (simonpj)
Assigned to: Nobody/Anonymous (nobody)
Summary: (->) used prefix doesn't work with unboxed kinds

Initial Comment:
This fails, but should succeed
    f :: (->) Int# Int#
    f x = x


-- Here's the comment from TypeRep:
--
-- funTyCon = mkFunTyCon funTyConName 
--              (mkArrowKinds [liftedTypeKind, 
liftedTypeKind]
--                              liftedTypeKind)
-- 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 (->)
-- 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.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=753780&group_id=8032
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to