type kind = | Box| Connector
type master = {name : string;kind : kind;cells : (string * string) list;geometry : (string * string) list;points : (string * string * Ortho_route.dir) list;
}type shape = {id : int;master : string;kind : kind;rows : (string * string) list;geometry : (string * string) list;points : (string * string * Ortho_route.dir) list;text : string;glue : (ends * int * int) list;
}val shape : t -> int -> shape optionval drop : t -> master -> (float * float) -> t * intval value : t -> int -> string -> float optionval shown : t -> int -> string -> stringval set_text : t -> int -> string -> tval move : t -> int -> (float * float) -> tval resize : t -> int -> (float * float) -> tval glue : t -> int -> ends -> target:int -> point:int -> tval place_end : t -> int -> ends -> (float * float) -> tval delete : t -> int -> tval outline : t -> shape -> (float * float) listval bounds : t -> shape -> float * float * float * floatval ends_of : t -> shape -> (float * float) * (float * float)val route : t -> shape -> (float * float) list