Sourcetype v3 = float * float * float Sourcetype shape = | Cube| Sphere| Cylinder| Cone| Torus of float| Ground
Sourcetype look = | Plain| Checker| Marble| Wood
Sourcetype material = {color : int;look : look;mirror : float;glass : bool;
} Sourcetype boolean = | Difference| Union| Intersect
Sourcetype obj = {name : string;kind : kind;location : v3;rotation : v3;scale : v3;hidden : bool;modifier : (boolean * string) option;
} Sourceval fresh_name : string -> t -> string Sourceval remove : string list -> t -> t Sourceval duplicate : string list -> t -> t * string list Sourceval is_cutter : t -> string -> bool