-- xy + 2xy  ==> 3xy
mergeP (P is) (P ((I j):js))
  | is == js = Left . P $ (I (j + 1)) : is
mergeP (P is) (P ((I j):js))
  | is == js = Left . P $ (I (j + 1)) : is
mergeP (P is) (P ((I j):js))
  | is == js = Left . P $ (I (j + 1)) : is