отличается.
это в любом случае будут два разных ньютайпа, чтобы для них можно было инстансы определять (не получится вынести базовый тип вроде IO или STM в параметр).
Но при зтом один в другой легко конвертится (STM в IO).
Где тут анти-паттерн, и как без Convertible зто можно выразить, когда функция использующая зти типы знает только наложенные на них констрейнты?
PrimMonad не?
Обсуждают сегодня