sig
  val translate :
    float * float ->
    float * float * float * float -> float * float * float * float
  val points :
    'a * 'b * 'c * '-> ('a * 'b) * ('c * 'b) * ('c * 'd) * ('a * 'd)
  val outer_points :
    Diagrams.Node.info ->
    float * float * float * float ->
    (float * float) * (float * float) * (float * float) * (float * float)
  val mid_points :
    Diagrams.Node.info ->
    float * float * float * float ->
    (float * float) * (float * float) * (float * float) * (float * float)
  val center : float * float * float * float -> float * float * float * float
end