Sourcetype pos = float * float Sourcetype item = | Line of int * int| Circle of int * int
Sourcetype constr = | Horizontal of int| Vertical of int| Parallel of int * int| Perpendicular of int * int| Equal of int * int| On_line of int * int| On_circle of int * int
Sourcetype instance = {master : int;at : pos;size : float;angle : float;
} Sourcetype sheet = {points : (int * pos) list;fixed : int list;items : (int * item) list;constraints : constr list;instances : instance list;next : int;
} Sourceval uses : t -> int -> int -> bool Sourcetype aim = | Nothing| At_point of int| On_item of int * pos| At_instance of int
Sourceval aim : t -> int -> tolerance:float -> ?except:int -> pos -> aim