
27 May
2019
27 May
'19
5:37 a.m.
Viktor Dukhovni
On May 27, 2019, at 1:07 AM, Magicloud Magiclouds
wrote: ``` status <- ioOperation -- IO-ed anyway return $ pureComputing || (status && pure2) ```
With two helpers:
(<&&>) :: IO Bool -> IO Bool -> IO Bool (<&&>) ma mb = ma >>= (\a -> if not a then return False else mb)
(<||>) :: IO Bool -> IO Bool -> IO Bool (<||>) ma mb = ma >>= (\a -> if a then return True else mb)
These generalise to any Applicative, I think: import Control.Applicative (liftA2) (<&&>) = liftA2 (&&) (<||>) = liftA2 (||) -- Jack