reduceExp :: (Ord v, Ord c) => Symbol v c -> Symbol v c
reduceExp (E _                 (P [(I 0)])) = I 1
reduceExp :: (Ord v, Ord c) => Symbol v c -> Symbol v c
reduceExp (E _                 (P [(I 0)])) = I 1
reduceExp (E _                 (P [(I 0)])) = I 1