The DiffList type and the DiffList Monoid