[Haskell-cafe] How to "Show" an Operation?
Claus Reinke
claus.reinke at talk21.com
Mon Jun 14 04:39:16 EDT 2010
>> As others have pointed out, you can't go from operation to
>> representation,
>> but you can pair operations and expressions with their representations.
>
> This idea is also implemented in my little 'repr' package:
>
> http://hackage.haskell.org/package/repr
And probably more completely/comfortably!-) The version I
pointed to, which I have occasionally mentioned here over the
years, was deliberately simplified and reduced. I think Lennart
also had a fairly complete version. Wasn't there also a version
in one of the IRC bots?
This kind of trick also comes up in embedded DSLs, especially
if used for embedded compilers / code generators (eg, I used
to generate VRML and Javascript from a Haskell DSEL, and by
changing the expression representation to Javascript, running
the Haskell-embedded expression would generate Javascript).
I first encountered this idea when learning about type classes: I
was trying to convince myself that overloading does not break
referential transparency, even though this example clearly
shows that the same expression can have different meanings,
depending only on type context.
Claus
More information about the Haskell-Cafe
mailing list