Reproducing the behavior
@Bool__all$(&xs) =
(~xs {
#Nil:1
#Cons:λ&h λ&t @Bool__and$(h @Bool__all$(t))})
@Bool__all$(&xs) =
(~xs {
#Nil:1
#Cons{h t}: @Bool__and$(h @Bool__all$(t))})
// /\
The first one is giving error running in compiled mode, because the HVM->C compiler assumes that pattern matches will always have the exact number of fields, even though semantically having a lambda should be the same.
As a compiler optimization we avoid creating an application to apply the matched field and simply substitute instead, but that obviously doesn't work if there is no lambda.
System Settings
Commit 58c7adc
Additional context
No response