chicken 4 vs 5, records and matchable / match added by jjhoo on Mon Feb 3 21:42:42 2020
(module asdf
(test)
(import scheme)
(cond-expand
(chicken-4
(import chicken)
(import (only extras sprintf))
(require-library matchable))
(else
(import chicken.base)
(import chicken.format)
(import (only chicken.memory.representation
record-instance-slot record-instance?))))
(import matchable)
(define-record foorec a b)
(define-record barrec foo c)
(define (test r)
(match r
[($ barrec foo c)
(match foo
[($ foorec a b)
(print (sprintf "chicken-4 matched ~s ~s ~s" a b c))])]
[($ asdf#barrec foo c)
(match foo
[($ asdf#foorec a b)
(print (sprintf "chicken-5 matched ~s ~s ~s" a b c))])]
[other (print "Other match " r)]))
(test (make-barrec (make-foorec "cat" "dog") "parrot")))