Csg
type 'a boundary = {
t : float;
leaf : 'a;
flipped : bool;
}
type 'a interval = 'a boundary * 'a boundary
type op =
| Union
| Inter
| Diff
val combine : op -> 'a interval list -> 'a interval list -> 'a interval list
val inside : 'a interval list -> float -> bool