@@ -256,6 +256,7 @@ return x = Value x
256256-- ------------------------------------------------------ [ for idiom brackets ]
257257
258258infixl 2 <*>
259+infixl 2 <$>
259260
260261pure : a -> EffM m a xs (\v => xs)
261262pure = Value
@@ -268,6 +269,10 @@ pureM = Value
268269(<*>) prog v = do fn <- prog
269270 arg <- v
270271 return (fn arg)
272+
273+(<$>) : (a -> b) ->
274+ EffM m a xs (\v => xs) -> EffM m b xs (\v => xs)
275+(<$>) f v = pure f <*> v
271276
272277(*>) : EffM m a xs (\v => xs) ->
273278 EffM m b xs (\v => xs) -> EffM m b xs (\v => xs)