
Peter --
Thanks for the pointers. Have you seen
Uustalu T., Vene V. The Essence of Dataflow Programming
?
Can't say I understand it all but it is a compelling picture. I do
like the notion of distributive laws between monads and comonads.
B
On Wed, Apr 28, 2010 at 9:58 PM, Peter Gammie
Ben,
On 29/04/2010, at 6:16 AM, Ben wrote:
[...]
newtype STAuto s a b = STAuto { unSTAuto : (a, s) -> (b, s) }
As Felipe observes in detail, this can be made to work. He uses Read and Show for serialisation, but clearly you can use whatever you like instead.
I just wanted to add that one can go to town with the approach: after you understand Felipe's stuff, take a look at Caspi and Pouzet's coalgebraic streams stuff. (I'd recommend looking at both the tech report and the published paper, and there is some Haskell code too.)
BTW I was referring (off-list) to the original Arrows paper by John Hughes.
cheers peter