diff --git a/collects/typed-scheme/base-env/base-env.rkt b/collects/typed-scheme/base-env/base-env.rkt index de204d6a..bda9e6a3 100644 --- a/collects/typed-scheme/base-env/base-env.rkt +++ b/collects/typed-scheme/base-env/base-env.rkt @@ -206,10 +206,29 @@ [null (-val null)] [char? (make-pred-ty -Char)] +;Section 3.1 + [boolean? (make-pred-ty B)] -[eq? (-> Univ Univ B)] -[eqv? (-> Univ Univ B)] +[not (-> Univ B)] [equal? (-> Univ Univ B)] +[eqv? (-> Univ Univ B)] +[eq? (-> Univ Univ B)] + +[equal?/recur (-> Univ Univ (-> Univ Univ Univ) B)] +[immutable? (-> Univ B)] +[prop:equal+hash -Struct-Type-Property] + + +;; scheme/bool +[true (-val #t)] +[false (-val #f)] +[boolean=? (B B . -> . B)] +[symbol=? (Sym Sym . -> . B)] +[false? (make-pred-ty (-val #f))] + + + + [assert (-poly (a b) (cl->* (Univ (make-pred-ty (list a) Univ b) . -> . b) (-> (Un a (-val #f)) a)))] @@ -231,7 +250,7 @@ ;; 1 means predicate on second argument (make-pred-ty (list (make-pred-ty (list a) c d) (-lst a)) c (-lst d) 1) (->... (list (->... (list a) (b b) c) (-lst a)) ((-lst b) b) c)))] -[not (make-pred-ty (-val #f))] + [box (-poly (a) (a . -> . (-box a)))] [unbox (-poly (a) (cl->* ((-box a) . -> . a) @@ -968,10 +987,6 @@ [tcp-connect/enable-break (-String -Integer . -> . (-values (list -Input-Port -Output-Port)))] [tcp-listen (-Integer [-Integer Univ (-opt -String)] . ->opt . -TCP-Listener)] -;; scheme/bool -[boolean=? (B B . -> . B)] -[symbol=? (Sym Sym . -> . B)] -[false? (make-pred-ty (-val #f))] ;; with-stx.rkt [generate-temporaries ((Un (-Syntax Univ) (-lst Univ)) . -> . (-lst (-Syntax Sym)))] diff --git a/collects/typed-scheme/types/abbrev.rkt b/collects/typed-scheme/types/abbrev.rkt index eea6c029..3f1f8950 100644 --- a/collects/typed-scheme/types/abbrev.rkt +++ b/collects/typed-scheme/types/abbrev.rkt @@ -177,6 +177,12 @@ (define -Pattern (*Un -Bytes -Regexp -PRegexp -Byte-Regexp -Byte-PRegexp -String)) +(define -Struct-Type-Property + (make-Base 'Struct-Type-Property #'struct-type-property? struct-type-property? #'Struct-Type-Property)) + + + + (define -top (make-Top)) (define -bot (make-Bot)) (define -no-filter (make-FilterSet -top -top))