procedure main () every s := !power_set (set(1,2,3,4)) do { # requires '!' to generate items in the result set writes ("[ ") every writes (!s || " ") write ("]") } end