added MonadReader and MonadState instances for FT