@Bartosz - You are absolutely right!

But I can't really think of sufficient conditions for `f` which let us get that `cata g` is unique...