TYPE SE = Atom | Exp; Exp = L: SE-seq; Atom = A: INT; ENDTYPE par(e) = if (is-Atom(e) -> 0, is-Exp(e) -> 2 .+ add-red(0,par-seq(L(e)))); rev(e) = if (is-Atom(e) -> e, is-Exp(e) -> (reverse _o_ rev-seq) (L(e)) );