Eu tinha uma pergunta sobre subtipagem no artigo "Um sistema de efeitos para efeitos e manipuladores algébricos" . Eu queria saber por que não há uma regra de subtipagem para adicionar efeitos nos dois lados de um tipo de manipulador, algo como isto:
Isso seria útil ao aplicar uma variável com um tipo de manipulador a um cálculo com mais efeitos do que o tipo de manipulador no lado esquerdo.
Você pode adicionar efeitos aos dois lados de um tipo de manipulador usando a regra de digitação para manipuladores, mas isso não funcionará para variáveis. Por exemplo, quando o manipulador é um argumento para uma função.
fonte