Skip to content

Unified predicate expressions (for filter, path predicates, guards)

Predicate expression pred used where A => Bool expected:

SurfaceDesugaring
filter (price > 80)filter (λx#1. x#1.price > 80)
filter (_.price > 80)filter (λx#1. x#1.price > 80)
filter (Some _)filter (λx#1. case x#1 of | Some _ -> True | _ -> False)
items[price > 80] (path segment)traversal filter: items[*] + filter over element binding (see patch section)

Rule (normative): inside predicate expressions, bare field f resolves to _.f.