1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
{-# LANGUAGE MultiWayIf #-}
module MultiWayIf where
foo = if | test1 -> e1
| test2 witharg -> e2
| otherwise -> def
bar = if { | test1 -> if { | test2 -> e1
| test3 -> e2 }
| test4 -> e3
}
-- taken from GHC's test suite
x = 10
x1 = if | x < 10 -> "< 10" | otherwise -> ""
x2 = if | x < 10 -> "< 10"
| otherwise -> ""
x3 = if | x < 10 -> "< 10"
| otherwise -> ""
x4 = if | True -> "yes"
x5 = if | True -> if | False -> 1 | True -> 2
x6 = if | x < 10 -> if | True -> "yes"
| False -> "no"
| otherwise -> "maybe"
x7 = (if | True -> 0)
-- issue #98
spam = if | () <- () -> ()
|