diff options
Diffstat (limited to 'libraries/template-haskell/Language/Haskell/TH/CodeDo.hs')
-rw-r--r-- | libraries/template-haskell/Language/Haskell/TH/CodeDo.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libraries/template-haskell/Language/Haskell/TH/CodeDo.hs b/libraries/template-haskell/Language/Haskell/TH/CodeDo.hs new file mode 100644 index 0000000000..8e69a833fb --- /dev/null +++ b/libraries/template-haskell/Language/Haskell/TH/CodeDo.hs @@ -0,0 +1,20 @@ +-- | This module exists to work nicely with the QualifiedDo +-- extension. +-- @ +-- import qualified Language.Haskell.TH.CodeDo as Code +-- myExample :: Monad m => Code m a -> Code m a -> Code m a +-- myExample opt1 opt2 = +-- Code.do +-- x <- someSideEffect -- This one is of type `M Bool` +-- if x then opt1 else opt2 +-- @ +module Language.Haskell.TH.CodeDo((>>=), (>>)) where + +import Language.Haskell.TH.Syntax +import Prelude(Monad) + +-- | Module over monad operator for 'Code' +(>>=) :: Monad m => m a -> (a -> Code m b) -> Code m b +(>>=) = bindCode +(>>) :: Monad m => m a -> Code m b -> Code m b +(>>) = bindCode_ |