1 --!! INLINE on recursive functions.
3 Date: Thu, 8 Dec 94 11:38:24 GMT
4 From: Julian Seward (DRL PhD) <sewardj@computer-science.manchester.ac.uk>
5 Message-Id: <9412081138.AA16652@rdf009.cs.man.ac.uk>
6 To: partain@dcs.gla.ac.uk
10 = IMonadState -> IMonadReturn a
13 = IMonadOk IMonadState a
14 | IMonadFail IMonadState String
20 returnI r = \s0 -> IMonadOk s0 r
22 failI msg = \s0 -> IMonadFail s0 msg
26 IMonadFail s1 msg -> IMonadFail s1 msg
27 IMonadOk s1 r1 -> k r1 s1
29 tickI n = \s0 -> IMonadOk (s0+n) ()
31 mapI f [] = returnI []
32 mapI f (x:xs) = f x `thenI` ( \ fx ->
33 mapI f xs `thenI` ( \ fxs ->
37 {-# INLINE returnI #-}