{-# RULES
"map/map" [2]
  map f
    (map g xs) = map
    (f . g)
    xs
  #-}

{-# RULES
"map/map" [1] forall x y z.
  map f
    (map g xs) = map
    (f . g)
    xs
  #-}

{-# RULES
"++" [~1] forall xs ys. xs ++ ys = augment (\c n -> foldr c n xs) ys
  #-}