Dear Dave,

Thanks for the nice propaganda!

A few comments regarding the points you made in your message.

Ineffeciency of fibo-like programs: Your observations are true. But this is a 
comonadic interpreter analogous to the cbv monadic interpreter. One can also 
define an analogue to the cbn monadic interpreter. This is better than the 
"cbv" version on the n first Fibonacci numbers but worse on the nth number 

Zippers: Yes, of course! Streams are an infinite linear datastructure, but you 
can also do trees (eg decorated parse trees of a CFG). Such trees with a 
distinguished position are of course the zipper datatype and this is a comonad 
as well. And similarly to the comonadic approach to the semantics of dataflow 
languages one can give a comonadic structure eg to attribute grammar 
specifications (either purely synthesized attribute grammars or general 
attribute grammars). We've developed these ideas in a paper that was presented 
at TFP, see

(this is the symposium version, the full version is in preparation.)

To present the comonadic semantics of attribute grammar specifications neatly, 
one needs either GADTs or dependent types.

Best wishes,

Tarmo U

Haskell mailing list

Reply via email to