functor (P : POS->
  sig
    module P :
      sig
        type t = P.t
        type repr = P.repr
        val ctr : t -> Point.t
        val height : t -> Num.t
        val width : t -> Num.t
        val shift : Point.t -> repr -> repr
        val center : Point.t -> t -> repr
        val v : t -> repr
      end
    type t
    type repr = P.repr tree
    val ctr : t -> Point.t
    val height : t -> Num.t
    val width : t -> Num.t
    val shift : Point.t -> repr -> repr
    val center : Point.t -> t -> repr
    val v : t -> repr
    val place : ?dx:Num.t -> ?dy:Num.t -> P.t tree -> t
  end