\begin{lstHaskellLhstex}
print_0 :: Expr_0 -> String
print_0 (Lit_0 v) = show v
-print_0 (Add_0 e1 e2) = "(" ++ print_0 e1 ++ "-" ++ print_0 e2 ++ ")"
+print_0 (Add_0 e1 e2) = "(" ++ print_0 e1 ++ "+" ++ print_0 e2 ++ ")"
\end{lstHaskellLhstex}
While the language is concise and elegant, it is not very expressive.