Sat Aug 25 21:35:12 CEST 2007
the problem seems to be that 'return' and 'bind' need to be formulated
in a way that properly deals with the stack. somehow it seems to get
in the way.
let's take a new look at it, modeling things on 'map'.
fmap s.a->s.b Ma -- Mb
join MMa -- Ma
return a -- Ma
bind s.a->s.Mb Ma -- Mb
(bind fmap join)
the thing which bothers me is 'map'. something is smelly about map in
joy, because of the stack "doing nothing".
it's strange that 'for-each' feels really natural, because it has
threaded state. but map somehow feels wrong..