> let good = (\(y::forall a.a->a)->y y) (\x->x) > :t good good :: a -> a > let bad = (\(y::forall a.a )->y y) (\x->x)
Other options:
no subject
нет, не можем:
Второе не выводится в системе F: левый аппликанд имеет тип (∀α.α)→(∀β.β), а правый - несовместимый никоим образом ∀α.α→α.