Definition unordered_nat_pair (x y: nat): nat * nat :=
    if le_lt_dec x y then (x, y) else (y, x).Definition cmp (x y: Index e ol): M comparison
    := ret (unordered_nat_pair x y :: nil, Ecmp e (subscript x) (subscript y)).Definition homo: monoidHomo monoid NatAddMonoid (fun x => length x).Definition pick := monoid_tree_monad.pick monoid.

Lemma UcmpDec (x y: nat * nat): { x = y } + { x <> y }.