Minor clean up.
Add example of open recursion definition decorated by standard decorator.

The point is that if we use open recursive definitions, e.g. to get
reuse, we don't need to change how existing decorators are defined.

The pattern is

  openF f    = ... f ...
  decoratedF = fix (decorator . openF)
Merge branch 'open-recursion'

Add examples verifying that decoration of open recursive functions is
just a special case of decoration in general.
Add 'uncurryM' function to 'UncurryM' class.

Plan to use this to simplify 'collectAndCallCont'.
Add n-ary currying to 'Curry' class.

With this and the 'uncurryM' from the last commit we can do away with
'collectAndCallCont'.
Add constraint and type synonyms to simplify decorator types.

Considered also adding 'CurryUncurryM t = (CurryM t , UncurryM t)'
but that is probably overkill ...
Replace 'collectAndCallCont' usage with 'curry' and 'uncurryM'.

Also, use the new synonyms from the last commit.