
Hello, I would like to propose a feature from the FP language Clean[1] called Nested Guards. Example from [2]: example arg1 arg2 | predicate11 arg1 | predicate21 arg2 = calculate1 arg1 arg2 | predicate22 arg2 = calculate2 arg1 arg2 | otherwise = calculate3 arg1 arg2 | predicate12 arg1 = calculate4 arg1 arg2 I think the semantics are clear enough. Nested Guards should also be interoperable with Pattern Guards[3]. When a match on a pattern guard succeeds the environment is updated with the new bindings. Then the potential nested guards are matched in order in this new environment. What do you think? Bas van Dijk. [1] http://www.cs.ru.nl/~clean [2] ftp://ftp.cs.kun.nl/pub/Clean/Clean20/doc/CleanRep2.0.pdf (See 3.3 Guards) [3] http://hackage.haskell.org/trac/haskell-prime/wiki/PatternGuards