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 v : t -> repr
      end
    type t
    type repr = P.repr list
    val ctr : t -> Point.t
    val height : t -> Num.t
    val width : t -> Num.t
    val shift : Point.t -> repr -> repr
    val v : t -> repr
    val horizontal : ?dx:Num.t -> ?pos:Command.position -> P.t list -> t
    val vertical : ?dy:Num.t -> ?pos:Command.position -> P.t list -> t
  end