type metrics = Looks.t -> string -> floattype picture = {src : string;height : float;middle : bool;
}type control = {element : Dom.element;control_height : float;
}type fragment = {text : string;look : Looks.t;x : float;width : float;baseline : float;picture : picture option;control : control option;element : Dom.element;
}type line = {top : float;height : float;baseline : float;fragments : fragment list;anchors : string list;
}type marker = | Bullet| Number of int
type box = {kind : kind;x : float;y : float;width : float;height : float;children : box list;lines : line list;floats : fragment list;marker : marker option;background : Looks.color option;
}type unit_ = {space : float;width : float;
}type breaker = measure:float -> unit_ array -> (int * int) listval first_baseline : box -> float option