module Iterators2; syntax iterator bind {range := 1}; bind : {A B : Type} → (A → B) → A → B | f x := f x; builtin bool type Bool := | true : Bool | false : Bool; main : Bool := bind (x in true; y in false) x;