ну и я понял почему так выходит, потому что Codensity Reader это
forall r. (a -> (s -> r)) -> s -> r
~
s -> forall r. ((a, s) -> r) -> r
~
s -> (a, s)
так как это
forall r. ((a, s) -> r) -> r
по сути является континуейшен-вариантом
(a, s)
и для трансформер варианте
forall r. (a -> (s -> m r)) -> s -> m r
~
s -> forall r. (a -> (s -> m r)) -> m r
~
s -> forall r. ((a, s) -> m r) -> m r
~ [ вот тут интересно, (forall r. (a -> m r) -> m r) ~ m a ]
s -> m (a, s)
https://gist.github.com/kana-sama/8d34edb624e0630ff19b6ad90d987e43