addListIntMaps xx@((x,m):xs) yy@((y,n):ys) = 
  case compare x y of
    EQ -> (x,m+n) : addListIntMaps xs ys
    LT -> (x,m) : addListIntMaps xs yy
    GT -> (y,n) : addListIntMaps xx ys
addListIntMaps xx@((x,m):xs) yy@((y,n):ys) = 
  case compare x y of
    EQ -> (x,m+n) : addListIntMaps xs ys
    LT -> (x,m) : addListIntMaps xs yy
    GT -> (y,n) : addListIntMaps xx ys
addListIntMaps xx@((x,m):xs) yy@((y,n):ys) = 
  case compare x y of
    EQ -> (x,m+n) : addListIntMaps xs ys
    LT -> (x,m) : addListIntMaps xs yy
    GT -> (y,n) : addListIntMaps xx ys