for simplicity, remove all usages of monad, just throw exception
ready for refine support of polymorphic variants:fix
polymorphic variant abbrievation works:fix