{-# OPTIONS -fplugin=AsyncRattus.Plugin #-}
module AsyncRattus (
module AsyncRattus.Primitives,
module AsyncRattus.Strict,
module AsyncRattus.Derive,
AsyncRattus(..),
mapO
)
where
import AsyncRattus.Plugin
import AsyncRattus.Strict
import AsyncRattus.Primitives
import AsyncRattus.Derive
mapO :: Box (a -> b) -> O a -> O b
mapO :: forall a b. Box (a -> b) -> O a -> O b
mapO Box (a -> b)
f O a
later = b -> O b
forall a. a -> O a
delay (Box (a -> b) -> a -> b
forall a. Box a -> a
unbox Box (a -> b)
f (O a -> a
forall a. O a -> a
adv O a
later))