Require Import Structures.OrderedType.
Require Import Structures.OrderedTypeEx.

Module Type M. Parameter X : Type.

Declare Module Export XOrd : OrderedType
  with Definition t := X
  with Definition eq := @Logic.eq X.
End M.

Module M' : M.
  Definition X := nat.

  Module XOrd := Nat_as_OT.
End M'.

Module Type MyOt.
  Parameter t : Type.
  Parameter eq : t -> t -> Prop.
End MyOt.

Module Type M2. Parameter X : Type.

Declare Module Export XOrd : MyOt
  with Definition t := X
  with Definition eq := @Logic.eq X.
End M2.
