syndicate-2017/prospect/hash-order.rkt

18 lines
391 B
Racket

#lang racket/base
(provide hash-order)
(require data/order)
(require racket/contract)
(define hash-order
(order 'hash-order
any/c
eq?
(lambda (a b)
(define a-code (eq-hash-code a))
(define b-code (eq-hash-code b))
(or (< a-code b-code)
(and (= a-code b-code)
(eq? (datum-order a b) '<))))))