{-# OPTIONS -fplugin=WidgetRattus.Plugin #-}


-- | The bare-bones Asynchronous Rattus language. To program with streams,
-- you can use "WidgetRattus.Stream".

module WidgetRattus (
  -- * Asynchronous Rattus language primitives
  module WidgetRattus.Primitives,
  -- * Strict data types
  module WidgetRattus.Strict,
  -- * Time
  module WidgetRattus.Time,
  -- * Derive class instance declarations
  module WidgetRattus.Derive,
  -- * Annotation
  WidgetRattus(..),
  -- * other
  mapO
  )
  where

import WidgetRattus.Plugin
import WidgetRattus.Strict
import WidgetRattus.Primitives
import WidgetRattus.Derive
import WidgetRattus.Time


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))