, Just val2 <- lookup env var2 = val1 + val2 -- ...other equations for clunky... This would read: "Clunky for an environment and two variables, in case the lookups of the variables from the environment produce values, is the sum of the values. ..." As in list comprehensions, the guards are in series, and if any of them fails the branch is not taken. See also Assertion Logical conditional Switch statement Iverson bracket Guarded suspension References External links Guard in Free On-Line Dictionary of Computing - FOLDOC, Denis Howe (editor). Guard Clause, WikiWikiWeb The Haskell 98 Report, chapter 3 Expressions. The Mathematica Book, section 2.3.5 Putting Constraints on Patterns The Glorious Glasgow Haskell Compilation System User's Guide, Version 6.4, section 7.3.2. Pattern guards Conditional constructs Formal methods terminology Articles with example Haskell code