#lang racket/base (provide preserve-order preserve ta tb) '>] [else (match ta ;; == tb [7 (chain-order (preserve-order (record-label a) (record-label b)) (preserve-order (record-fields a)) (preserve-order (record-fields b)))] [8 (match* (a b) [('() '()) '=] [('() _) '<] [(_ '()) '>] [((cons a0 a1) (cons b0 b1)) (chain-order (preserve-order a0 b0) (preserve-order a1 b1))])] [9 (preserve-order (sorted-set-elements a) (sorted-set-elements b))] [10 (preserve-order (sorted-dict-keys a) (sorted-dict-keys b))] [_ (datum-order a b)])])))) (define preservelist v) preservelist v) preserve