The documentation says that interpret is more performant than interpretSimple. But It seems that the only difference is that interpret uses reify/reflect to pass the effect handler where interpretSimple uses a ReaderT monad. My question is how exactly does this make a difference? I have a vague feeling that this has something to do with the typeclass machinery but I'm not very sure.