| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Control.Dsl.Shift
Description
Documentation
>>>:set -XTypeOperators>>>:set -XRebindableSyntax>>>import Prelude hiding ((>>), (>>=), return)>>>import Control.Dsl>>>import Control.Dsl.Return>>>import Control.Dsl.Yield>>>import Control.Dsl.Empty
>>>:{earlyGenerator :: Bool -> [String] !! Integer earlyGenerator earlyReturn = do Yield "inside earlyGenerator" when earlyReturn $ do Yield "early return" return 1 Yield "normal return" return 0 :}
>>>:{earlyGeneratorTest :: [String] earlyGeneratorTest = do Yield "before earlyGenerator" i <- Shift $ earlyGenerator True Yield "after earlyGenerator" Yield $ "the return value of earlyGenerator is " ++ show i empty :}
>>>earlyGeneratorTest["before earlyGenerator","inside earlyGenerator","early return","after earlyGenerator","the return value of earlyGenerator is 1"]