Note that Clean also supports nested guards. See section 3.3 of the Clean language report: http://clean.cs.ru.nl/download/Clean20/doc/CleanRep2.0.pdf Unfortunately the html version of the report appears to be broken. The report gives an example of nested guards and explains the semantics with "if then else" expressions.