http://deni-ok.livejournal.com/ ([identity profile] deni-ok.livejournal.com) wrote in [personal profile] deniok 2013-06-30 04:39 pm (UTC)

> Каждой из них мы можем присвоить тип forall a.a

нет, не можем:
> 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)
Второе не выводится в системе F: левый аппликанд имеет тип (∀α.α)→(∀β.β), а правый - несовместимый никоим образом ∀α.α→α.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting