The full signature would be `Constraint<I, O>::try<U>(callable(O): U): Constraint<I, U>`. If the callable throws an exception it would catch it and return a failure.