about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs')
-rw-r--r--third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs56
1 files changed, 0 insertions, 56 deletions
diff --git a/third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs b/third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs
deleted file mode 100644
index ce128ee182..0000000000
--- a/third_party/bazel/rules_haskell/examples/transformers/Control/Monad/Signatures.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE Safe #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 706
-{-# LANGUAGE PolyKinds #-}
-#endif
------------------------------------------------------------------------------
--- |
--- Module      :  Control.Monad.Signatures
--- Copyright   :  (c) Ross Paterson 2012
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  R.Paterson@city.ac.uk
--- Stability   :  experimental
--- Portability :  portable
---
--- Signatures for monad operations that require specialized lifting.
--- Each signature has a uniformity property that the lifting should satisfy.
------------------------------------------------------------------------------
-
-module Control.Monad.Signatures (
-    CallCC, Catch, Listen, Pass
-  ) where
-
--- | Signature of the @callCC@ operation,
--- introduced in "Control.Monad.Trans.Cont".
--- Any lifting function @liftCallCC@ should satisfy
---
--- * @'lift' (f k) = f' ('lift' . k) => 'lift' (cf f) = liftCallCC cf f'@
---
-type CallCC m a b = ((a -> m b) -> m a) -> m a
-
--- | Signature of the @catchE@ operation,
--- introduced in "Control.Monad.Trans.Except".
--- Any lifting function @liftCatch@ should satisfy
---
--- * @'lift' (cf m f) = liftCatch ('lift' . cf) ('lift' f)@
---
-type Catch e m a = m a -> (e -> m a) -> m a
-
--- | Signature of the @listen@ operation,
--- introduced in "Control.Monad.Trans.Writer".
--- Any lifting function @liftListen@ should satisfy
---
--- * @'lift' . liftListen = liftListen . 'lift'@
---
-type Listen w m a = m a -> m (a, w)
-
--- | Signature of the @pass@ operation,
--- introduced in "Control.Monad.Trans.Writer".
--- Any lifting function @liftPass@ should satisfy
---
--- * @'lift' . liftPass = liftPass . 'lift'@
---
-type Pass w m a =  m (a, w -> w) -> m a