diff --git a/info.rkt b/info.rkt
index 48504a2..04856ef 100644
--- a/info.rkt
+++ b/info.rkt
@@ -7,7 +7,8 @@
                "typed-racket-more"
                "hyper-literate"
                "auto-syntax-e"
-               "debug-scopes"))
+               "debug-scopes"
+               "version-case"))
 (define build-deps '("scribble-lib"
                      "racket-doc"
                      "typed-racket-more"
diff --git a/test/test-contracts-to-types.rkt b/test/test-contracts-to-types.rkt
index f8a5da9..30120d0 100644
--- a/test/test-contracts-to-types.rkt
+++ b/test/test-contracts-to-types.rkt
@@ -1,56 +1,65 @@
 #lang type-expander
 (require racket/contract/base
          type-expander/contracts-to-types
-         typed/rackunit)
-(define-syntax-rule (check-written=? a b)
-  (check-equal? (with-output-to-string (λ () a)) (format "~s\n" b)))
-(check-written=? (:contract→type (list/c 1 2 "str" (or/c integer? string?)))
-                 '(List 1 2 "str" (U Integer String)))
-(check-written=? (:contract→type
-                  (list/c integer? string? boolean? char? bytes?))
-                 '(List Integer String Boolean Char Bytes))
-(check-written=? (:contract→type (*list/c integer? string? boolean?))
-                 '(Rec R (U (Pairof Integer R) (List String Boolean))))
-(check-written=? (:contract→type (-> integer? boolean? string? symbol?))
-                 '(-> Integer Boolean String Symbol))
-(check-written=? (:contract→type (-> integer? boolean? string? ... symbol?))
-                 '(->* (Integer Boolean) #:rest String Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      (char?)
-                                      #:rest (listof string?)
-                                      symbol?))
-                 '(->* (Integer Boolean) (Char) #:rest String Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      ()
-                                      #:rest (listof string?)
-                                      symbol?))
-                 '(->* (Integer Boolean) () #:rest String Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      #:rest (listof string?)
-                                      symbol?))
-                 '(->* (Integer Boolean) #:rest String Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      symbol?))
-                 '(->* (Integer Boolean) Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      (char?)
-                                      symbol?))
-                 '(->* (Integer Boolean) (Char) Symbol))
-(check-written=? (:contract→type (->* (integer? boolean?)
-                                      ()
-                                      symbol?))
-                 '(->* (Integer Boolean) () Symbol))
-(check-written=? (:contract→type
-                  (flat-rec-contract W (cons/c W W) number? string?))
-                 '(Rec W (U (Pairof W W) Number String)))
-(check-written=? (:contract→type
-                  (flat-rec-contract W
-                                     (cons/c (flat-rec-contract R
-                                                                (cons/c W R)
-                                                                null?)
-                                             W)
-                                     number?
-                                     string?))
-                 '(Rec W (U (Pairof (Rec R (U (Pairof W R) Null)) W)
-                            Number
-                            String)))
\ No newline at end of file
+         typed/rackunit
+         version-case)
+(define-syntax (if-version≥6.5 stx)
+  (syntax-case stx ()
+    [(_ . rest)
+     (if (version>= (version) "6.5")
+         #'(begin . rest)
+         #'(begin))]))
+
+(if-version≥6.5
+ (define-syntax-rule (check-written=? a b)
+   (check-equal? (with-output-to-string (λ () a)) (format "~s\n" b)))
+ (check-written=? (:contract→type (list/c 1 2 "str" (or/c integer? string?)))
+                  '(List 1 2 "str" (U Integer String)))
+ (check-written=? (:contract→type
+                   (list/c integer? string? boolean? char? bytes?))
+                  '(List Integer String Boolean Char Bytes))
+ (check-written=? (:contract→type (*list/c integer? string? boolean?))
+                  '(Rec R (U (Pairof Integer R) (List String Boolean))))
+ (check-written=? (:contract→type (-> integer? boolean? string? symbol?))
+                  '(-> Integer Boolean String Symbol))
+ (check-written=? (:contract→type (-> integer? boolean? string? ... symbol?))
+                  '(->* (Integer Boolean) #:rest String Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       (char?)
+                                       #:rest (listof string?)
+                                       symbol?))
+                  '(->* (Integer Boolean) (Char) #:rest String Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       ()
+                                       #:rest (listof string?)
+                                       symbol?))
+                  '(->* (Integer Boolean) () #:rest String Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       #:rest (listof string?)
+                                       symbol?))
+                  '(->* (Integer Boolean) #:rest String Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       symbol?))
+                  '(->* (Integer Boolean) Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       (char?)
+                                       symbol?))
+                  '(->* (Integer Boolean) (Char) Symbol))
+ (check-written=? (:contract→type (->* (integer? boolean?)
+                                       ()
+                                       symbol?))
+                  '(->* (Integer Boolean) () Symbol))
+ (check-written=? (:contract→type
+                   (flat-rec-contract W (cons/c W W) number? string?))
+                  '(Rec W (U (Pairof W W) Number String)))
+ (check-written=? (:contract→type
+                   (flat-rec-contract W
+                                      (cons/c (flat-rec-contract R
+                                                                 (cons/c W R)
+                                                                 null?)
+                                              W)
+                                      number?
+                                      string?))
+                  '(Rec W (U (Pairof (Rec R (U (Pairof W R) Null)) W)
+                             Number
+                             String))))
\ No newline at end of file