Matthew Brecknell: > Note the lambda abstraction (\st -> ...) at the beginning of the > definition. This means that (container >>= fn) returns a *function* that > maps an input state to the result of (container2 st2). It doesn't return > the result of (container st2) directly. Ah..... Silly me :D Thanks a bunch mate. Cheers :) TJ