cata is binary, change return type computation