Combining monads

Mark T.B. Carroll Mark.Carroll@Aetion.com
Sat, 12 Apr 2003 09:52:58 -0400 (EDT)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--481034957-302199926-1050155578=:555
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hello! I am trying and failing to use one monad in another. A tiny example
is enclosed, where I try to use IO to help along a State-ful computation.
Is the real mistake in do_next? Is there a minimal rewrite that will get
this working that I can use as a template for other things? Or, is there a
good tutorial somewhere on this type of thing? Any pointers are much
appreciated!

-- Mark

--481034957-302199926-1050155578=:555
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Test.hs"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0304120952580.555@cicero.aetion.internal>
Content-Description: Example of incompetence
Content-Disposition: attachment; filename="Test.hs"

aW1wb3J0IENvbnRyb2wuTW9uYWQuU3RhdGUNCmltcG9ydCBEYXRhLkxpc3QN
Cg0KZ2V0X2xlbmd0aCA6OiBTdHJpbmcgLT4gSU8gSW50DQoNCmdldF9sZW5n
dGggbmFtZSA9IA0KICAgIGRvIGNvbnRlbnRzIDwtIHJlYWRGaWxlIG5hbWUN
CiAgICAgICByZXR1cm4gKGxlbmd0aCAobGluZXMgY29udGVudHMpKQ0KDQp1
cGRhdGVfYmVzdF93aXRoIDo6IChTdHJpbmcsIEludCkgLT4gU3RhdGVUIChT
dHJpbmcsIEludCkgSU8gKCkNCg0KdXBkYXRlX2Jlc3Rfd2l0aCAoY3VycmVu
dF9uYW1lLCBjdXJyZW50X2NvdW50KSA9DQogICAgZG8gKGJlc3RfbmFtZSwg
YmVzdF9jb3VudCkgPC0gZ2V0DQogICAgICAgaWYgY3VycmVudF9jb3VudCA+
IGJlc3RfY291bnQgDQoJICB0aGVuIHB1dCAoY3VycmVudF9uYW1lLCBjdXJy
ZW50X2NvdW50KQ0KCSAgZWxzZSByZXR1cm4gKCkNCg0KZG9fbmV4dCA6OiBT
dHJpbmcgLT4gU3RhdGVUIChTdHJpbmcsIEludCkgSU8gKCkNCg0KZG9fbmV4
dCBuYW1lID0gDQogICAgZG8gY291bnQgPC0gZ2V0X2xlbmd0aCBuYW1lDQog
ICAgICAgdXBkYXRlX2Jlc3Rfd2l0aCAobmFtZSwgY291bnQpDQoNCmxvbmdl
c3RfZmlsZSA6OiBbU3RyaW5nXSAtPiBJTyAoU3RyaW5nLCBJbnQpDQoNCmxv
bmdlc3RfZmlsZSBuYW1lcyA9DQogICAgZXhlY1N0YXRlVCAoc2VxdWVuY2Vf
IChtYXAgZG9fbmV4dCBuYW1lcykpICgibm9uZSIsIDApDQoNCm1haW4gPSBk
byAobmFtZSwgY291bnQpIDwtIGxvbmdlc3RfZmlsZSBbIi9ldGMvaG9zdG5h
bWUiLCAiL2V0Yy9udHAuY29uZiIsICIvZXRjL3RpbWV6b25lIl0NCgkgIHB1
dFN0ckxuICgiTG9uZ2VzdCBmaWxlIGlzICIgKysgbmFtZSArKyAiIHdoaWNo
IGlzICIgKysgc2hvdyBjb3VudCArKyAiIGxpbmVzIGxvbmciKQ0K
--481034957-302199926-1050155578=:555--