Implement a smart constructor mkUnsafeCoercion, and use it
authorsimonpj@microsoft.com <unknown>
Mon, 1 Mar 2010 11:17:44 +0000 (11:17 +0000)
committersimonpj@microsoft.com <unknown>
Mon, 1 Mar 2010 11:17:44 +0000 (11:17 +0000)
commit51ab3ed19f55e386c4e55efd2cd6705789f8fbf4
tree99ce407d5c00733d37841958f8964557edde2338
parent88e7faf19b7bcfd8d0d41fa88029c048b615c432
Implement a smart constructor mkUnsafeCoercion, and use it

This just ensures that an unsafe coercion is as localised as possible.
For example, instead of
    UnsafeCo (Int -> t1) (Int -> t2)
use
    Int -> UnsafeCo t1 t2
compiler/types/Coercion.lhs
compiler/types/OptCoercion.lhs