{-

values (App Add (Val 1) (App Mul (Val 2) (Val 3)))
= [1,2,3]

eval (App Add (Val 2) (Val 3))
= [5]

eval (App Sub (Val 2) (Val 3))
= []

eval (App Add (Val 1) (App Mul (Val 2) (Val 3)))
= [7]
-}

-- powerset

subs :: [a] -> [[a]]
subs [] = [[]]
subs :: [a] -> [[a]]
subs [] = [[]]
subs [] = [[]]