show (App o l r) = brak l ++ show o ++ brak r
                       where
                          brak (Val n) = show n
                          brak e       = "(" ++ show e ++ ")"

{-

show (Val 1)
= "1"

show (App Add (Val 1) (Val 10))
= "1+10"

show (App Add (Val 1) (App Mul (Val 2) (Val 3)))
= "1+(2*3)"

-}
show (App o l r) = brak l ++ show o ++ brak r
                       where
                          brak (Val n) = show n
                          brak e       = "(" ++ show e ++ ")"

{-

show (Val 1)
= "1"

show (App Add (Val 1) (Val 10))
= "1+10"

show (App Add (Val 1) (App Mul (Val 2) (Val 3)))
= "1+(2*3)"

-}
show (App o l r) = brak l ++ show o ++ brak r
                       where
                          brak (Val n) = show n
                          brak e       = "(" ++ show e ++ ")"

{-

show (Val 1)
= "1"

show (App Add (Val 1) (Val 10))
= "1+10"

show (App Add (Val 1) (App Mul (Val 2) (Val 3)))
= "1+(2*3)"

-}