It's common for Haskellers to have combining functions where the
arguments to each combinator changes the overall type. Writing out
combine x (combine y z) gets old, and the heterogenous types means
that we can't use a simple foldr/foldl, so we invent e.g. x % y % z. The problem with this for me is that it introduces its own
redundancy and viewing/editing overhead.