Есть ли монада, у которой нет соответствующего монадного трансформатора (кроме IO)?
До сих пор каждая монада (которая может быть представлена как тип данных), с которой я столкнулся, имела соответствующий монадный преобразователь или могла иметь его. Есть ли такая монада, которая не может иметь ее? Или жеу всех монад есть соответствующий трансформатор?
Потрансформаторt
соответствует монадеm
я имею в виду, чтоt Identity
изоморфенm
, И, конечно же, он удовлетворяет законам монадного трансформатора и чтоt n
это монада для любой монадыn
.
Я хотел бы увидеть либо доказательство (в идеале конструктивное), что у каждой монады есть такая, либо пример конкретной монады, у которой ее нет (с доказательством). Меня интересуют как более ориентированные на Хаскелл ответы, так и теоретические (категории).
Как дополнительный вопрос, есть ли монадаm
который имеет два разных трансформатораt1
а такжеt2
? То есть,t1 Identity
изоморфенt2 Identity
и кm
но есть монадаn
такой, чтоt1 n
не изоморфенt2 n
.
(IO
а такжеST
У меня особая семантика, поэтому я их здесь не принимаю во внимание, и давайте полностью их игнорируем. Давайте сосредоточимся только на «чистых» монадах, которые могут быть построены с использованием типов данных.)