File: CodeDo.hs

package info (click to toggle)
ghc 9.6.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 158,216 kB
  • sloc: haskell: 648,228; ansic: 81,656; cpp: 11,808; javascript: 8,444; sh: 5,831; fortran: 3,527; python: 3,277; asm: 2,523; makefile: 2,298; yacc: 1,570; lisp: 532; xml: 196; perl: 145; csh: 2
file content (22 lines) | stat: -rw-r--r-- 637 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- | 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_