Updating monadic module functions to check for exhaustiveness of the smart_ctor

And subsequently drop the State parameter, if it succeeds.