working HMonads