File: lift-continue.hs

package info (click to toggle)
haskell-control-monad-loop 0.1-14
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 76 kB
  • sloc: haskell: 217; makefile: 2
file content (19 lines) | stat: -rw-r--r-- 559 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{-# LANGUAGE ScopedTypeVariables #-}
import Control.Monad
import Control.Monad.Base
import Control.Monad.Trans.Class
import Control.Monad.Trans.Loop

main :: IO ()
main = do
    foreach [1..10] $ \(i :: Int) -> do
        foreach [1..10] $ \(j :: Int) -> do
            when (j > i) $
                lift continue
            when (i == 2 && j == 2) $
                exit
            when (i == 9 && j == 9) $
                lift exit
            liftBase $ print (i, j)
        liftBase $ putStrLn "Inner loop finished"
    putStrLn "Outer loop finished"