• simonpj's avatar
    [project @ 1999-03-17 08:26:30 by simonpj] · 41d098e3
    simonpj authored
    Complete the hack that lets us give 'error' the type
    
    	error :: forall a:?. String -> a
    
    The kind '?' (also known as 'Type AnyBox') means that
    error can be applied to unboxed types too.  unsafeCoerce is
    similar.  But the 'real' type of error is:
    
    	error :: forall bv. forall a:Type bv. String -> a
    
    That is, it's really polymorphic in the boxity of a; that's
    different to saying that the type bound to 'a' must have
    kind '?'.  
    
    The fix was in TcType.inst_tyvar, where we look for the kind '?'
    and generate a boxity variable instead.  Sigh.
    41d098e3
TcType.lhs 15.4 KB