Definition ptr_eqMixin := EqMixin eq_ptrP.Canonical Structure ptr_eqType := EqType ptr ptr_eqMixin.(* some pointer arithmetic: offsetting from a base *)

Definition ptr_offset x i := ptr_nat (nat_ptr x + i).Notation "x .+ i" := (ptr_offset x i)
  (at level 3, format "x .+ i").Definition ltn_ptr (x y : ptr) :=
  match x, y with ptr_nat m, ptr_nat n => m < n end.

Lemma ltn_ptr_irr : irreflexive ltn_ptr.