В статических можно эмулировать с помощью изоморфных типов. Например, определив тип
newtype F a = F (F a → a)
мы получили тип изоморфный F a → a, т.е. тип, который можно применять к себе. А значит можем написать \x → x x как \(F f) → f (F f)), а полный Y-комбинатор как
no subject
мы получили тип изоморфный
F a → a, т.е. тип, который можно применять к себе. А значит можем написать\x → x xкак\(F f) → f (F f)), а полный Y-комбинатор как