
31 May
2011
31 May
'11
5:05 p.m.
2011/5/31 Scott Lawrence
Evaluation here also doesn't terminate (or, (head $ unfoldM (return . head)) doesn't), although I can't figure out why. fmap shouldn't need to fully evaluate a list to prepend an element, right?
I'm afriad fmap doesn't get to choose - if the monad is strict then both definitions are equivalent (probably...).