Hello,<br>
<br>
I want to do the following wierd things with arbitrary Haskell program:<br>
* Have an IO callback each time a closure is forced<br>* Dynamically load small Haskell expressions that will be executed in the callback<br>
* Have access to the syntactic scope of closure being forced in the dynamically loaded expressions<br>
* Navigate data graph a'la Java reflection<br>
* Test if given closure has been forced<br>
<br>
I see two ways of doing this:<br>
1) Some Haskell implementation having super-reflective capabilities<br>
2) Doing Haskell program transformation before running it<br>
<br>
(1) seems doubtful, but I would be more than happy if someone proved me wrong :)<br>
<br>
As for (2), I would kindly ask the readers of this list for suggestions:<br>
* Which program tranformation tool to use. I need to compute syntactic scope of the closures.<br>
&nbsp;&nbsp; And I need to know exact line and row numbers of syntactic constructions. Knowing types<br>
&nbsp;&nbsp; of expressions of the program being transformed doesn't hurt either.<br>
* Most of the features described above are straightforward to implement, but if some of these<br>
&nbsp;&nbsp; have been implemented before I would be more than happy to reuse them.<br>
<br>
In any case I would still need to load dynamically small Haskell expressions.<br>
What is the best way to do it?<br>
<br>
Disclaimer: I am not planning to do application programming using these techniques :)<br>
<br>
With kind regards,<br>
Oleg Mürk<br>
<br>