Can Clean pattern matching always be `compiled' into nested case expressions. For example, the compilation of f(G,G) = e1 f(H,y) = e2 f(G,y) = e could be f(x,y) = case x of G -> case y of G -> e1 else e3 end |H -> e2 else error end More generally, can you suggest any papers or other reference for pattern-matching in Clean? - David and Sebastian