OptionTMonad new refactoring