In Data.Type.Equality, we have both
castWith :: (a :~: b) -> a -> b
and
gcastWith :: (a :~: b) -> (a ~ b => r) -> r
But in Data.Type.Coercion we only have
coerceWith :: Coercion a b -> a -> b
It seems to me that for the sake of consistency, we should add
gcoerceWith :: Coercion a b -> (Coercible a b => r) -> r
gcoerceWith Coercion a = a
David Feuer
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries