free (NR _) = []\r
free (VAR s) = [s]\r
free (LET s _ e2) = [n \\ n <- free e2 | n <> s]\r
-free (OP e1 _ e2) = (free e1) ++ (free e2)\r
+free (OP e1 _ e2) = removeDup ((free e1) ++ (free e2))\r
\r
// verwijder deelexpressies met ongebruikte let-variabelen:\r
remove_unused_lets :: Expr -> Expr\r