Skip to content
Browse files

describe the problem with `type<?`. collect-all-types.
  • Loading branch information
samrushing committed Mar 10, 2017
1 parent c4371e3 commit f9a24234aa49433f06f5da766eef939fb4a93f1f
Showing with 6 additions and 0 deletions.
  1. +6 −0 self/cps.scm
@@ -699,6 +699,12 @@
;; (an object type) ends up spinning forever. may be related to non-canonical
;; record types. needs more investigation.

;; XXX update: this is almost certainly a problem with exponential growth
;; when using a `<` function to do deep compares: each level of comparison
;; makes *two* calls (to eliminate the equality case).
;; magic<? may help with this problem, but the only true fix is to change
;; *everything* to use 3-way comparisons.

(define (collect-all-types root)
(let ((ng (make-node-generator root))
(type-map (map-maker type<?)))

0 comments on commit f9a2423

Please sign in to comment.