fix abstract/instantiate bug and typos (#554)

This commit is contained in:
Andrew Kent 2017-05-21 10:42:37 +01:00 committed by GitHub
parent fea71732d2
commit 1eff41d39e
2 changed files with 8 additions and 5 deletions

View File

@ -1081,7 +1081,7 @@
;; abstract
;;
;; asbtracts type variable 'name'
;; abstracts type variable 'name'
;; to De Bruijn index 0 in 'initial'
(define/cond-contract (abstract name initial)
(-> symbol? Rep? Rep?)
@ -1132,7 +1132,7 @@
;; forms which introduce bindings (increment lvls appropriately)
[(Mu: body) (make-Mu (rec/lvl body (add1 lvl)))]
[(PolyRow: constraints body)
(make-PolyRow constraints (rec/lvl body (add1 1 lvl)))]
(make-PolyRow constraints (rec/lvl body (add1 lvl)))]
[(PolyDots: n body)
(make-PolyDots n (rec/lvl body (+ n lvl)))]
[(Poly: n body)
@ -1190,7 +1190,7 @@
;; forms which introduce bindings (increment lvls appropriately)
[(Mu: body) (make-Mu (rec/lvl body (add1 lvl)))]
[(PolyRow: constraints body)
(make-PolyRow constraints (rec/lvl body (add1 1 lvl)))]
(make-PolyRow constraints (rec/lvl body (add1 lvl)))]
[(PolyDots: n body)
(make-PolyDots n (rec/lvl body (+ n lvl)))]
[(Poly: n body)
@ -1201,7 +1201,7 @@
;;************************************************************
;; Smart Constructors/Destructors for Type Binders
;;
;; i.e. constructors and desctructors which use
;; i.e. constructors and destructors which use
;; abstract/instantiate so free variables are always
;; type variables (i.e. F) and bound variables are
;; always De Bruijn indices (i.e. B)
@ -1290,7 +1290,7 @@
;;***************************************************************
;; Smart Match Expanders for Type Binders
;;
;; i.e. match expanders which use the smart desctructors defined
;; i.e. match expanders which use the smart destructors defined
;; above -- many of these are provided w/ rename-out so they
;; are the defacto match expanders
;;***************************************************************

View File

@ -377,6 +377,9 @@
[(All (r #:row) ((Class #:row-var r) -> (Class #:row-var r)))
(-polyrow (r) (list null null null null)
(t:-> (-class #:row r) (-class #:row r)))]
[(Listof (All (r #:row) ((Class #:row-var r) -> (Class #:row-var r))))
(-lst (-polyrow (r) (list null null null null)
(t:-> (-class #:row r) (-class #:row r))))]
[(All (r #:row (init x y z) (field f) m n)
((Class #:row-var r) -> (Class #:row-var r)))
(-polyrow (r) (list '(x y z) '(f) '(m n) '())