-- | Smart constructor that simplifies constants.
times :: Exp -> Exp -> Exp
times (Binop e1 OpTimes e2) e3 = times e1 . times e2 $ e3
times :: Exp -> Exp -> Exp
times (Binop e1 OpTimes e2) e3 = times e1 . times e2 $ e3
times (Binop e1 OpTimes e2) e3 = times e1 . times e2 $ e3