Public Variables and Functions
->AndFilter
function
Usage: (->AndFilter fs)
Source
->AnyValue
function
Usage: (->AnyValue)
Source
->App
function
Usage: (->App rator rands)
Source
->ArrayCLJS
function
Usage: (->ArrayCLJS)
Source
->B
function
Usage: (->B idx)
Source
->BooleanCLJS
function
Usage: (->BooleanCLJS)
Source
->BotFilter
function
Usage: (->BotFilter)
Source
->Bounds
function
Usage: (->Bounds upper-bound lower-bound higher-kind)
Source
->ClassPE
function
Usage: (->ClassPE)
Source
->CountPE
function
Usage: (->CountPE)
Source
->CountRange
function
Usage: (->CountRange lower upper)
Source
->DataType
function
Usage: (->DataType the-class variances poly? fields)
Source
->DottedPretype
function
Usage: (->DottedPretype pre-type name)
Source
->F
function
Usage: (->F name)
Source
->FilterSet
function
Usage: (->FilterSet then else)
Source
->FirstPE
function
Usage: (->FirstPE)
Source
->FlowSet
function
Usage: (->FlowSet normal)
Source
->FnIntersection
function
Usage: (->FnIntersection types)
Source
->FnResult
function
Usage: (->FnResult args kws rest drest body)
Source
->Function
function
Usage: (->Function dom rng rest drest kws)
Source
->FunctionCLJS
function
Usage: (->FunctionCLJS)
Source
->GTRange
function
Usage: (->GTRange n)
Source
->HeterogeneousList
function
Usage: (->HeterogeneousList types)
Source
->HeterogeneousSeq
function
Usage: (->HeterogeneousSeq types)
Source
->HeterogeneousVector
function
Usage: (->HeterogeneousVector types)
Source
->Intersection
function
Usage: (->Intersection types)
Source
->KeyPE
function
Usage: (->KeyPE val)
Source
->KwArgs
function
Usage: (->KwArgs mandatory optional)
Source
->LTRange
function
Usage: (->LTRange n)
Source
->ListDots
function
Usage: (->ListDots pre-type bound)
Source
->Mu
function
Usage: (->Mu scope)
Source
->Name
function
Usage: (->Name id)
Source
->NextPE
function
Usage: (->NextPE)
Source
->NoFilter
function
Usage: (->NoFilter)
Source
->NoObject
function
Usage: (->NoObject)
Source
->NotType
function
Usage: (->NotType type)
Source
->NotTypeFilter
function
Usage: (->NotTypeFilter type path id)
Source
->NumberCLJS
function
Usage: (->NumberCLJS)
Source
->ObjectCLJS
function
Usage: (->ObjectCLJS)
Source
->OrFilter
function
Usage: (->OrFilter fs)
Source
->Path
function
Usage: (->Path path id)
Source
->Poly
function
Usage: (->Poly nbound bbnds scope actual-frees)
Source
->PolyDots
function
Usage: (->PolyDots nbound bbnds scope)
Source
->PrimitiveArray
function
Usage: (->PrimitiveArray jtype input-type output-type)
Source
->Projection
function
Usage: (->Projection afn ts)
Source
->PropEnv
function
Usage: (->PropEnv l props)
Source
->Protocol
function
Usage: (->Protocol the-var variances poly? on-class methods)
Source
->RClass
function
Usage: (->RClass variances poly? the-class replacements)
Source
->Record
function
Usage: (->Record the-class fields)
Source
->Scope
function
Usage: (->Scope body)
Source
->StringCLJS
function
Usage: (->StringCLJS)
Source
->SymbolCLJS
function
Usage: (->SymbolCLJS)
Source
->TApp
function
Usage: (->TApp rator rands)
Source
->TCResult
function
Usage: (->TCResult t fl o flow)
Source
->Top
function
Usage: (->Top)
Source
->TopFilter
function
Usage: (->TopFilter)
Source
->TopFunction
function
Usage: (->TopFunction)
Source
->TypeFilter
function
Usage: (->TypeFilter type path id)
Source
->TypeFn
function
Usage: (->TypeFn nbound variances bbnds scope)
Source
->Union
function
Usage: (->Union types)
Source
->Value
function
Usage: (->Value val)
Source
->c
function
Usage: (->c S X T bnds)
Source
->cset
function
Usage: (->cset maps)
Source
->cset-entry
function
Usage: (->cset-entry fixed dmap projections)
Source
->dcon
function
Usage: (->dcon fixed rest)
Source
->dcon-dotted
function
Usage: (->dcon-dotted fixed dc dbound)
Source
->dcon-exact
function
Usage: (->dcon-exact fixed rest)
Source
->dmap
function
Usage: (->dmap map)
Source
->i-subst
function
Usage: (->i-subst types)
Source
->i-subst-dotted
function
Usage: (->i-subst-dotted types dty dbound)
Source
->i-subst-starred
function
Usage: (->i-subst-starred types starred)
Source
RClass-supers*
function
Usage: (RClass-supers* {:keys [poly? replacements the-class], :as rcls})
Return a set of ancestors to the RClass
Source
abstract-many
function
Usage: (abstract-many names ty)
Names Type -> Scope^n where n is (count names)
Source
add-multimethod-dispatch-type
function
Usage: (add-multimethod-dispatch-type mmsym dtype)
Add the type of the dispatch function of the multimethod named by mmsym
to the environment. If already exists, must be identical.
Source
cf
macro
Usage: (cf form)
(cf form expected)
Type check a Clojure form and return its type
Source
cf-cljs
macro
Usage: (cf-cljs form)
(cf-cljs form expected)
Type check a Clojurescript form and return its type
Source
check-anon-fn
function
Usage: (check-anon-fn {:keys [methods], :as expr} methods-types & {:keys [poly]})
Check anonymous function, with annotated methods. methods-types
is a (Seqable (HMap {:dom (Seqable Type) :rng (U nil Type)}))
Source
check-cljs-ns*
function
Usage: (check-cljs-ns*)
(check-cljs-ns* nsym)
Type check a CLJS namespace. If not provided default to current namespace
Source
check-fn
function
Usage: (check-fn {:keys [methods], :as fexpr} expected)
Check a fn to be under expected and annotate the inferred type
Source
check-ns
function
Usage: (check-ns)
(check-ns nsym)
Type check a namespace. If not provided default to current namespace
Source
ctor-Class->symbol
function
Usage: (ctor-Class->symbol cls)
Returns a symbol representing this constructor's Class, removing any compiler stubs.
Source
declare-alias-kind
macro
Usage: (declare-alias-kind sym ty)
Declare a kind for an alias, similar to declare but on the kind level.
Source
declare-datatypes
macro
Usage: (declare-datatypes & syms)
Declare datatypes, similar to declare but on the type level.
Source
declare-names
macro
Usage: (declare-names & syms)
Declare names, similar to declare but on the type level.
Source
declare-protocols
macro
Usage: (declare-protocols & syms)
Declare protocols, similar to declare but on the type level.
Source
def-alias
macro
Usage: (def-alias sym type)
Define a type alias
Source
fi
function
Usage: (fi t)
All index variables in type (dotted bounds, etc.)
Source
fn>
macro
Usage: (fn> & forms)
Define a typed anonymous function.
(fn> name? :- type? [[param :- type]* & [param :- type *]?] exprs*)
(fn> name? (:- type? [[param :- type]* & [param :- type *]?] exprs*)+)
Source
free-in-scope
function
Usage: (free-in-scope name)
Find the free scoped as name
Source
free-in-scope-bnds
function
Usage: (free-in-scope-bnds name)
Find the bounds for the free scoped as name
Source
free-with-name
function
Usage: (free-with-name name)
Find the free with the actual name name, as opposed to
the alias used for scoping
Source
free-with-name-bnds
function
Usage: (free-with-name-bnds name)
Find the bounds for the free with the actual name name, as opposed to
the alias used for scoping
Source
fv
function
Usage: (fv t)
All frees in type
Source
idx-variances
function
Usage: (idx-variances t)
Map of indexes to their variances
Source
inst
macro
Usage: (inst inst-of & types)
Instantiate a polymorphic type with a number of types
Source
inst-ctor
macro
Usage: (inst-ctor inst-of & types)
Instantiate a call to a constructor with a number of types.
First argument must be an immediate call to a constructor.
Source
instantiate-many
function
Usage: (instantiate-many images sc)
instantiate-many : List[Symbols] Scope^n -> Type
Instantiate de Bruijn indices in sc to frees named by
images, preserving upper/lower bounds
Source
into-array>
macro
Usage: (into-array> cljt coll)
(into-array> javat cljt coll)
Make a Java array with Java class javat and Typed Clojure type
cljt. Resulting array will be of type javat, but elements of coll must be under
cljt. cljt should be a subtype of javat (the same or more specific).
Source
loop>
macro
Usage: (loop> bndings* & forms)
Define a typed loop
Source
make-F
function
Usage: (make-F name)
Make a free variable
Source
make-Function
function
Usage: (make-Function dom rng)
(make-Function dom rng rest)
(make-Function dom rng rest drest & {:keys [filter object kws]})
Make a function, wrap range type in a Result.
Accepts optional :filter and :object parameters that default to the most general filter
and EmptyObject
Source
make-Result
function
Usage: (make-Result t)
(make-Result t f)
(make-Result t f o)
Make a result. ie. the range of a Function
Source
manual-inst
function
Usage: (manual-inst ptype argtys)
Poly Type^n -> Type
Substitute the type parameters of the polymorphic type
with given types
Source
map->AndFilter
function
Usage: (map->AndFilter {:as kwargs__2627__auto__, :keys [fs]})
Source
map->AnyValue
function
Usage: (map->AnyValue {:as kwargs__2627__auto__, :keys []})
Source
map->App
function
Usage: (map->App {:as kwargs__2627__auto__, :keys [rator rands]})
Source
map->ArrayCLJS
function
Usage: (map->ArrayCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->B
function
Usage: (map->B {:as kwargs__2627__auto__, :keys [idx]})
Source
map->BooleanCLJS
function
Usage: (map->BooleanCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->BotFilter
function
Usage: (map->BotFilter {:as kwargs__2627__auto__, :keys []})
Source
map->Bounds
function
Usage: (map->Bounds {:as kwargs__2627__auto__, :keys [upper-bound lower-bound higher-kind]})
Source
map->ClassPE
function
Usage: (map->ClassPE {:as kwargs__2627__auto__, :keys []})
Source
map->CountPE
function
Usage: (map->CountPE {:as kwargs__2627__auto__, :keys []})
Source
map->CountRange
function
Usage: (map->CountRange {:as kwargs__2627__auto__, :keys [lower upper]})
Source
map->DataType
function
Usage: (map->DataType {:as kwargs__2627__auto__, :keys [the-class variances poly? fields]})
Source
map->DottedPretype
function
Usage: (map->DottedPretype {:as kwargs__2627__auto__, :keys [pre-type name]})
Source
map->EmptyObject
function
Usage: (map->EmptyObject {:as kwargs__2627__auto__, :keys []})
Source
map->F
function
Usage: (map->F {:as kwargs__2627__auto__, :keys [name]})
Source
map->FilterSet
function
Usage: (map->FilterSet {:as kwargs__2627__auto__, :keys [then else]})
Source
map->FirstPE
function
Usage: (map->FirstPE {:as kwargs__2627__auto__, :keys []})
Source
map->FlowSet
function
Usage: (map->FlowSet {:as kwargs__2627__auto__, :keys [normal]})
Source
map->FnIntersection
function
Usage: (map->FnIntersection {:as kwargs__2627__auto__, :keys [types]})
Source
map->FnResult
function
Usage: (map->FnResult {:as kwargs__2627__auto__, :keys [args kws rest drest body]})
Source
map->Function
function
Usage: (map->Function {:as kwargs__2627__auto__, :keys [dom rng rest drest kws]})
Source
map->FunctionCLJS
function
Usage: (map->FunctionCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->GTRange
function
Usage: (map->GTRange {:as kwargs__2627__auto__, :keys [n]})
Source
map->HeterogeneousList
function
Usage: (map->HeterogeneousList {:as kwargs__2627__auto__, :keys [types]})
Source
map->HeterogeneousMap
function
Usage: (map->HeterogeneousMap {:as kwargs__2627__auto__, :keys [types other-entries]})
Source
map->HeterogeneousSeq
function
Usage: (map->HeterogeneousSeq {:as kwargs__2627__auto__, :keys [types]})
Source
map->HeterogeneousVector
function
Usage: (map->HeterogeneousVector {:as kwargs__2627__auto__, :keys [types]})
Source
map->ImpFilter
function
Usage: (map->ImpFilter {:as kwargs__2627__auto__, :keys [a c]})
Source
map->Intersection
function
Usage: (map->Intersection {:as kwargs__2627__auto__, :keys [types]})
Source
map->KeyPE
function
Usage: (map->KeyPE {:as kwargs__2627__auto__, :keys [val]})
Source
map->KwArgs
function
Usage: (map->KwArgs {:as kwargs__2627__auto__, :keys [mandatory optional]})
Source
map->LTRange
function
Usage: (map->LTRange {:as kwargs__2627__auto__, :keys [n]})
Source
map->ListDots
function
Usage: (map->ListDots {:as kwargs__2627__auto__, :keys [pre-type bound]})
Source
map->Mu
function
Usage: (map->Mu {:as kwargs__2627__auto__, :keys [scope]})
Source
map->Name
function
Usage: (map->Name {:as kwargs__2627__auto__, :keys [id]})
Source
map->NextPE
function
Usage: (map->NextPE {:as kwargs__2627__auto__, :keys []})
Source
map->NoFilter
function
Usage: (map->NoFilter {:as kwargs__2627__auto__, :keys []})
Source
map->NoObject
function
Usage: (map->NoObject {:as kwargs__2627__auto__, :keys []})
Source
map->NotType
function
Usage: (map->NotType {:as kwargs__2627__auto__, :keys [type]})
Source
map->NotTypeFilter
function
Usage: (map->NotTypeFilter {:as kwargs__2627__auto__, :keys [type path id]})
Source
map->NumberCLJS
function
Usage: (map->NumberCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->ObjectCLJS
function
Usage: (map->ObjectCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->OrFilter
function
Usage: (map->OrFilter {:as kwargs__2627__auto__, :keys [fs]})
Source
map->Path
function
Usage: (map->Path {:as kwargs__2627__auto__, :keys [path id]})
Source
map->Poly
function
Usage: (map->Poly {:as kwargs__2627__auto__, :keys [nbound bbnds scope actual-frees]})
Source
map->PolyDots
function
Usage: (map->PolyDots {:as kwargs__2627__auto__, :keys [nbound bbnds scope]})
Source
map->PrimitiveArray
function
Usage: (map->PrimitiveArray {:as kwargs__2627__auto__, :keys [jtype input-type output-type]})
Source
map->Projection
function
Usage: (map->Projection {:as kwargs__2627__auto__, :keys [afn ts]})
Source
map->PropEnv
function
Usage: (map->PropEnv {:as kwargs__2627__auto__, :keys [l props]})
Source
map->Protocol
function
Usage: (map->Protocol {:as kwargs__2627__auto__, :keys [the-var variances poly? on-class methods]})
Source
map->RClass
function
Usage: (map->RClass {:as kwargs__2627__auto__, :keys [variances poly? the-class replacements]})
Source
map->Record
function
Usage: (map->Record {:as kwargs__2627__auto__, :keys [the-class fields]})
Source
map->RecurTarget
function
Usage: (map->RecurTarget {:as kwargs__2627__auto__, :keys [dom rest drest kws]})
Source
map->Result
function
Usage: (map->Result {:as kwargs__2627__auto__, :keys [t fl o]})
Source
map->Scope
function
Usage: (map->Scope {:as kwargs__2627__auto__, :keys [body]})
Source
map->StringCLJS
function
Usage: (map->StringCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->SymbolCLJS
function
Usage: (map->SymbolCLJS {:as kwargs__2627__auto__, :keys []})
Source
map->TApp
function
Usage: (map->TApp {:as kwargs__2627__auto__, :keys [rator rands]})
Source
map->TCResult
function
Usage: (map->TCResult {:as kwargs__2627__auto__, :keys [t fl o flow]})
Source
map->Top
function
Usage: (map->Top {:as kwargs__2627__auto__, :keys []})
Source
map->TopFilter
function
Usage: (map->TopFilter {:as kwargs__2627__auto__, :keys []})
Source
map->TopFunction
function
Usage: (map->TopFunction {:as kwargs__2627__auto__, :keys []})
Source
map->TypeFilter
function
Usage: (map->TypeFilter {:as kwargs__2627__auto__, :keys [type path id]})
Source
map->TypeFn
function
Usage: (map->TypeFn {:as kwargs__2627__auto__, :keys [nbound variances bbnds scope]})
Source
map->Union
function
Usage: (map->Union {:as kwargs__2627__auto__, :keys [types]})
Source
map->Value
function
Usage: (map->Value {:as kwargs__2627__auto__, :keys [val]})
Source
map->c
function
Usage: (map->c {:as kwargs__2627__auto__, :keys [S X T bnds]})
Source
map->cset
function
Usage: (map->cset {:as kwargs__2627__auto__, :keys [maps]})
Source
map->cset-entry
function
Usage: (map->cset-entry {:as kwargs__2627__auto__, :keys [fixed dmap projections]})
Source
map->dcon
function
Usage: (map->dcon {:as kwargs__2627__auto__, :keys [fixed rest]})
Source
map->dcon-dotted
function
Usage: (map->dcon-dotted {:as kwargs__2627__auto__, :keys [fixed dc dbound]})
Source
map->dcon-exact
function
Usage: (map->dcon-exact {:as kwargs__2627__auto__, :keys [fixed rest]})
Source
map->dmap
function
Usage: (map->dmap {:as kwargs__2627__auto__, :keys [map]})
Source
map->i-subst
function
Usage: (map->i-subst {:as kwargs__2627__auto__, :keys [types]})
Source
map->i-subst-dotted
function
Usage: (map->i-subst-dotted {:as kwargs__2627__auto__, :keys [types dty dbound]})
Source
map->i-subst-starred
function
Usage: (map->i-subst-starred {:as kwargs__2627__auto__, :keys [types starred]})
Source
map->t-subst
function
Usage: (map->t-subst {:as kwargs__2627__auto__, :keys [type bnds]})
Source
method-type
function
Usage: (method-type mname)
Given a method symbol, print the core.typed types assigned to it
Source
nilable-param
macro
Usage: (nilable-param msym mmap)
Overrides which parameters in a method may accept
nilable values. If the parameter is a parameterised type or
an Array, this also declares the parameterised types and the Array type as nilable.
mmap is a map mapping arity parameter number to a set of parameter
positions (integers). If the map contains the key :all then this overrides
other entries. The key can also be :all, which declares all parameters nilable.
Source
non-nil-return
macro
Usage: (non-nil-return msym arities)
Override the return type of method msym to be non-nil.
Takes a set of relevant arities,
represented by the number of parameters it takes (rest parameter counts as one),
or :all which overrides all arities.
eg. (non-nil-return java.lang.Class/getDeclaredMethod :all)
Source
open-Result
function
Usage: (open-Result {t :t, fs :fl, old-obj :o, :as r} objs & [ts])
Substitute ids for objs in Result t
Source
pfn>
macro
Usage: (pfn> & forms)
Define a polymorphic typed anonymous function.
(pfn> name? [binder+] :- type? [[param :- type]* & [param :- type *]?] exprs*)
(pfn> name? [binder+] (:- type? [[param :- type]* & [param :- type *]?] exprs*)+)
Source
print-filterset
function
Usage: (print-filterset debug-string frm)
Print the filter set attached to form, and debug-string
Source
relevant-Fns
function
Usage: (relevant-Fns required-params rest-param fin)
Given a set of required-param exprs, rest-param expr, and a FnIntersection,
returns a seq of Functions containing Function types
whos arities could be a subtype to the method with the fixed and rest parameters given
Source
ret
function
Usage: (ret t)
(ret t f)
(ret t f o)
(ret t f o flow)
Convenience function for returning the type of an expression
Source
scope-depth?
function
Usage: (scope-depth? scope depth)
True if scope is has depth number of scopes nested
Source
simplify-prop
function
Usage: (simplify-prop a b)
Try and use atomic proposition a to simplify composite
proposition b. a must be correct polarity.
Source
subtypes-varargs?
function
Usage: (subtypes-varargs? argtys dom rst)
True if argtys are under dom
Source
symbol->Class
function
Usage: (symbol->Class sym)
Returns the Class represented by the symbol. Works for
primitives (eg. byte, int). Does not further resolve the symbol.
Source
tc-ignore
macro
Usage: (tc-ignore & body)
Ignore forms in body during type checking
Source
unwrap-datatype
function
Usage: (unwrap-datatype dt nms)
(unwrap-datatype dt)
Takes a possibly polymorphic DataType and returns the
DataType after instantiating it
Source
unwrap-poly
function
Usage: (unwrap-poly t)
Return a pair vector of the instantiated body of the possibly polymorphic
type and the names used
Source