erge xl@(x : xs) yl@(y : ys)
  | x <= y = x : merge xs yl
  | otherwise = y : merge xl ys

merge xl@(x : xs) yl@(y : ys)
  | x <= y = x : merge xs yl
  | otherwise = y : merge xl ys
merge xl@(x : xs) yl@(y : ys)
  | x <= y = x : merge xs yl
  | otherwise = y : merge xl ys