21 Nov
2006
21 Nov
'06
5:40 p.m.
Taral <taralx@gmail.com> writes:
On 11/20/06, Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk> 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