В качестве обучающего упражнения я пытаюсь определить новый тип, который будет служить держателем функций, которые могут преобразовывать Show
-способные значения в Eff
ects, то есть:
newtype ShEff a = ShEff (forall eff. Show a => a -> Eff eff Unit)
Однако это:
f :: forall a. ShEff a
f = ShEff logShow
не удается скомпилировать с этой ошибкой:
Could not match type
( console :: CONSOLE
| t2
)
with type
eff1
while trying to match type Eff
( console :: CONSOLE
| t2
)
with type Eff eff1
while checking that expression logShow
has type t0 -> Eff eff1 Unit
in value declaration f
Можете ли вы указать мне правильное направление?