Hi, quick reply :)...i've reordered some of what you've said (i hope you don't mind!)
> However the monad is defined, sequence_ has to process the entire list > before anything can be determined about the result. The entire result > of (>>) depends upon both arguments, whereas you can deduce the head > of the result of (:) based solely upon the first argument. yes, thanks. > Yeah, but given that sequence_ is essentially the direct monadic > translation of fold: > that might be considered cheating (i.e. we can implement fold using > only map and fold, although the fold can be "disguised"). > <snip> > As mentioned above, sequence_ etc are essentially the embodiment of > primitive recursion. Is this true in the same way that the statement 'foldr' is the embodiment of PR is true? That is, can you write foldr in terms of sequence_? It doesn't seem possible: you seem to also need the map in order to get the list lifted into the monadic world and I don't think you can even write map in terms of sequence_ (am I wrong?). > An implementation using a simple state-transformer monad (s -> (a, s)) > wouldn't look significantly different to one using IORef/STRef. True :). Thanks for your comments! - Hal _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell