0xd34df00d
19.10.2011 16:40 Azoth_primary
Оказывается:
> :t (\x → (x *** x)) undefined
(\x → (x *** x)) undefined :: Arrow a => a (b', b') (c', c')
В то же время:
> let x = undefined
> :t (x *** x)
(x *** x) :: Arrow a => a (b, b') (c, c')
Нахуй так жить?
хмм. Может, лямбда-биндинги обязательно мономорфны, а let-биндинги нет?..
Неинтуитивная хуита.