Currently, the semantic check is sometimes using the monadic bind, meaning that the error messages no longer get accumulated in certain cases (but rather the existing error messages just get passed on without appending any new error, in case there was already an error). This is suboptimal. Ideally, we should just remove the monadic bind from the Validation interface or at least make it hard to use (like renaming it to pleaseUseWithCautionBind) and make sure the semantic check is fully expressed in terms of the more limited Applicative interface.
Currently, the semantic check is sometimes using the monadic bind, meaning that the error messages no longer get accumulated in certain cases (but rather the existing error messages just get passed on without appending any new error, in case there was already an error). This is suboptimal. Ideally, we should just remove the monadic bind from the
Validationinterface or at least make it hard to use (like renaming it topleaseUseWithCautionBind) and make sure the semantic check is fully expressed in terms of the more limitedApplicativeinterface.