{-

exprs [1,2]
= [1+2,1-2,1*2,1/2]

exprs [1,2,3]
= [1+(2+3),1-(2+3),1*(2+3),1/(2+3),1+(2-3),1-(2-3),1*(2-3),1/(2-3),
1+(2*3),1-(2*3),1*(2*3),1/(2*3),1+(2/3),1-(2/3),1*(2/3),1/(2/3),
(1+2)+3,(1+2)-3,(1+2)*3,(1+2)/3,(1-2)+3,(1-2)-3,(1-2)*3,(1-2)/3,
(1*2)+3,(1*2)-3,(1*2)*3,(1*2)/3,(1/2)+3,(1/2)-3,(1/2)*3,(1/2)/3]

-}

combine :: Expr -> Expr -> [Expr]
combine l r = [App o l r | o <- ops]
combine :: Expr -> Expr -> [Expr]
combine l r = [App o l r | o <- ops]
combine l r = [App o l r | o <- ops]