
21 Nov
2006
21 Nov
'06
9:40 a.m.
Taral
On 11/20/06, Malcolm Wallace
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. Regards, Malcolm