proposal: add 'unsafeCoerce'

Malcolm Wallace Malcolm.Wallace at
Tue Nov 21 04:40:08 EST 2006

Taral <taralx at> writes:

> On 11/20/06, Malcolm Wallace <Malcolm.Wallace at> wrote:
> >     newtype Wrapper a = Wrap a
> >     convert :: [a] -> [Wrapper a]
> >     convert xs = map Wrap xs
> Interesting! Looks like the compiler lacks rules for optimizing "map
> id" &c.\

And not all compilers have optimisation phases.

> Your coercion does assume that the underlying runtime doesn't have
> some kind of type-tag implementation of type classes.

I believe this is guaranteed by the definition of newtype in the
Language Report.


More information about the Libraries mailing list