sig
  val ( + ) : AGeom.Quaternion.t -> AGeom.Quaternion.t -> AGeom.Quaternion.t
  val ( - ) : AGeom.Quaternion.t -> AGeom.Quaternion.t -> AGeom.Quaternion.t
  val ( * ) : AGeom.Quaternion.t -> AGeom.Quaternion.t -> AGeom.Quaternion.t
  val ( / ) : AGeom.Quaternion.t -> AGeom.Quaternion.t -> AGeom.Quaternion.t
  val ( ~. ) : AGeom.Quaternion.t -> AGeom.Quaternion.t
  val ( |. ) : AGeom.Quaternion.t -> float
end