concrete functor and monad transformers

#40Define liftLocal for SelectT

ContT has liftLocal, but SelectT doesn't.

  • Do you mean:

    liftLocal :: (Monad m) => ((r' -> r') -> m a -> m a) -> (r' -> r') -> SelectT r m a -> SelectT r m a liftLocal local f m = SelectT $  c -> local f (runSelectT m c)

    (rather different from the ContT one)?

  • I don't have particular expectations for the behavior of the function. I mentioned ContT only because I've heard that SelectT is a weaker version of it, so if liftLocal is possible for ContT, it must be possible for SelectT.

    • status set to closed

    I've added mapSelectT, of which the above definition is a special case. It's not a true map though, because SelectT isn't a functor in the category of monads. For the same reason, it's not clear what an appropriate lifting is, so I'll close this awaiting a proposed definition.