-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Composable concurrent computation done right
--
-- See README.md for details
@package oath
@version 0.0
module Oath
newtype Oath a
Oath :: (forall r. (STM a -> IO r) -> IO r) -> Oath a
[runOath] :: Oath a -> forall r. (STM a -> IO r) -> IO r
hoistOath :: (forall x. STM x -> STM x) -> Oath a -> Oath a
evalOath :: Oath a -> IO a
-- | Lift an IO action into an Oath, forking a thread. When the
-- continuation terminates, it kills the thread. Exception thrown in the
-- thread will be propagated to the result.
oath :: IO a -> Oath a
-- | An Oath that finishes once the given number of microseconds
-- elapses
delay :: Int -> Oath ()
-- | Wrap an Oath
timeout :: Int -> Oath a -> Oath (Maybe a)
instance GHC.Base.Monoid a => GHC.Base.Monoid (Oath.Oath a)
instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Oath.Oath a)
instance GHC.Base.Functor Oath.Oath
instance GHC.Base.Applicative Oath.Oath
instance GHC.Base.Alternative Oath.Oath