sig
  type position =
      PosCentre of float * float
    | PosLeft of float * float
    | PosRight of float * float
    | Top of float
    | TopLeft of float * float
    | TopRight of float * float
    | Left of float
    | BottomLeft of float * float
    | Bottom of float
    | BottomRight of float * float
    | Right of float
    | Diagonal
    | ReverseDiagonal
    | Centre
  val string_of_position : Cpdfposition.position -> string
  val calculate_position :
    bool ->
    float ->
    float * float * float * float ->
    Cpdfposition.position -> float * float * float
end