let gc f s =
  Set.fold
    (fun x s ->
       if f x then restrict x s else s)
    s.removable
    s