| >> Yes, you can freely use Foo/unFoo. There's no runtime penalty. (In the
| >> jargon of GHC's intermediate language, Foo and unFoo translate to
| >> *type-safe casts*, which generate no executable code.
| >
| > When does the conversion to type-safe casts occur relative to other
| > optimizations (namely, rewrite rules)?
| 
| That is, I know that rewrite rules operate on the source language not on
| Core, but to what extent does that mean that type-safe casts inhibit the
| firing of rules?

Rewrite rules work on Core, not source, so they "see" the type-safe casts.  I 
don't know how to say "to what extent" they inhibit rules.  If you show an 
example I will try to help.

S
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to