inside_part / outside_part cut edges; they do not keep whole polygons. edges(a) & b is the same as inside_part(edges(a), b).
inside_part(a, b)Available · yields edges
layer p = inside_part(a, b)
layer p = edges(a) & b
Cuts edges of A at B contours and keeps pieces whose midpoint lies in B (the border counts as inside). Polygons are turned into edges first.
Notes
a==b) is discarded.outside_part(a, b)Available · yields edges
layer p = outside_part(a, b)
layer p = edges(a) - b
Complement of inside_part: pieces whose midpoint does not lie in B.
Notes
outside_part.