API for clojure.core.typed - Gradual Typing 0.1.16 (in development)


Full namespace name: clojure.core.typed

Overview





Public Variables and Functions



*verbose-forms*

var

    
If true, print complete forms in error messages.
Source


*verbose-types*

var

    
If true, print fully qualified types in error messages
and return values.
Source


-base-aliases

var

    
Internal use only.
Source


-init-delayed-errors

function
Usage: (-init-delayed-errors)
Internal use only
Source


ann

macro
Usage: (ann varsym typesyn)
Annotate varsym with type. If unqualified, qualify in the current namespace.
If varsym has metadata {:nocheck true}, ignore definitions of varsym while type checking.
Source


ann*

function
Usage: (ann* varsym typesyn check?)
Internal use only. Use ann.
Source


ann-datatype

macro
Usage: (ann-datatype dname fields & {ancests :unchecked-ancestors, rplc :replace, :as opts})
Annotate datatype Class name dname with expected fields.
If unqualified, qualify in the current namespace.
Source


ann-datatype*

function
Usage: (ann-datatype* dname fields opts)
Internal use only. Use ann-datatype.
Source


ann-form

macro
Usage: (ann-form form ty)
Annotate a form with an expected type.
Source


ann-form*

function
Usage: (ann-form* form ty)
Internal use only. Use ann-form.
Source


ann-pdatatype

macro
Usage: (ann-pdatatype dname vbnd fields & {ancests :unchecked-ancestors, rplc :replace, :as opt})
Annotate datatype Class name dname with a polymorphic binder and expected fields.
If unqualified, qualify in the current namespace.
Source


ann-pdatatype*

function
Usage: (ann-pdatatype* dname vbnd fields opt)
Internal use only. Use ann-pdatatype.
Source


ann-pprotocol

macro
Usage: (ann-pprotocol varsym vbnd & {:as mth})
Annotate polymorphic protocol with a polymorphic binder and method types.
Source


ann-pprotocol*

function
Usage: (ann-pprotocol* varsym vbnd mth)
Internal use only. Use ann-pprotocol.
Source


ann-precord

macro
Usage: (ann-precord dname vbnd fields & {ancests :unchecked-ancestors, rplc :replace, :as opt})
Annotate record Class name dname with a polymorphic binder and expected fields.
If unqualified, qualify in the current namespace.
Source


ann-precord*

function
Usage: (ann-precord* dname vbnd fields opt)
Internal use only. Use ann-precord.
Source


ann-protocol

macro
Usage: (ann-protocol varsym & {:as mth})
Annotate protocol var with method types.

eg. (ann-protocol IFoo
      bar
      [IFoo -> Any]
      baz
      [IFoo -> Number])
Source


ann-protocol*

function
Usage: (ann-protocol* varsym mth)
Internal use only. Use ann-protocol.
Source


ann-record

macro
Usage: (ann-record dname fields & {ancests :unchecked-ancestors, rplc :replace, :as opt})
Annotate record Class name dname with expected fields.
If unqualified, qualify in the current namespace.
Source


ann-record*

function
Usage: (ann-record* dname fields opt)
Internal use only. Use ann-record
Source


cf

macro
Usage: (cf form)
       (cf form expected)
Type check a Clojure form and return its type
Source


check-ns

function
Usage: (check-ns)
       (check-ns nsym)
Type check a namespace. If not provided default to current namespace.

Bind *verbose-types* to true to print fully qualified types.
Bind *verbose-forms* to print full forms in error messages.
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-alias-kind*

function
Usage: (declare-alias-kind* sym ty)
Internal use only. Use declare-alias-kind.
Source


declare-datatypes

macro
Usage: (declare-datatypes & syms)
Declare datatypes, similar to declare but on the type level.
Source


declare-datatypes*

function
Usage: (declare-datatypes* nms)
Internal use only. Use declare-datatypes.
Source


declare-names

macro
Usage: (declare-names & syms)
Declare names, similar to declare but on the type level.
Source


declare-names*

function
Usage: (declare-names* syms)
Internal use only. Use declare-names.
Source


declare-protocols

macro
Usage: (declare-protocols & syms)
Declare protocols, similar to declare but on the type level.
Source


declare-protocols*

function
Usage: (declare-protocols* syms)
Internal use only. Use declare-protocols.
Source


def-alias

macro
Usage: (def-alias sym doc-str type)
       (def-alias sym type)
Define a type alias. Takes an optional doc-string as a second
argument.
Source


def-alias*

function
Usage: (def-alias* sym type)
Internal use only. Use def-alias.
Source


doseq>

macro
Usage: (doseq> seq-exprs & body)
Like doseq but requires annotation for each loop variable: 
[a [1 2]] becomes [a :- Long [1 2]]

eg.
(doseq> [a :- (U nil AnyInteger) [1 nil 2 3]
         :when a]
   (inc a))
Source


dotimes>

macro
Usage: (dotimes> bindings & body)
Like dotimes.
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


fn>-ann

function
Usage: (fn>-ann fn-of param-types-syn)
Internal use only. Use fn>.
Source


for>

macro
Usage: (for> tk ret-ann seq-exprs body-expr)
Like for but requires annotation for each loop variable: [a [1 2]] becomes [a :- Long [1 2]]
Also requires annotation for return type.

eg.
(for> :- Number
      [a :- (U nil AnyInteger) [1 nil 2 3]
       :when a]
   (inc a))
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


inst-poly

function
Usage: (inst-poly inst-of types-syn)
Internal use only. Use inst.
Source


inst-poly-ctor

function
Usage: (inst-poly-ctor inst-of types-syn)
Internal use only. Use inst-ctor
Source


into-array>

macro
Usage: (into-array> cljt coll)
       (into-array> javat cljt coll)
       (into-array> into-array-syn 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).

*Temporary hack*
into-array-syn is exactly the syntax to put as the first argument to into-array.
Calling resolve on this syntax should give the correct class.
Source


into-array>*

function
Usage: (into-array>* cljt coll)
       (into-array>* javat cljt coll)
       (into-array>* into-array-syn javat cljt coll)
Internal use only. Use into-array>.
Source


letfn>

macro
Usage: (letfn> bindings & body)
Like letfn, but each binding must be annotated.

eg.
(letfn> [a :- [Number -> Number]
         (a [b] 2)
         c :- [Symbol -> nil]
         (c [s] nil)]
  ...)
Source


load-if-needed

function
Usage: (load-if-needed)
Load and initialize all of core.typed if not already
Source


loop>

macro
Usage: (loop> bndings* & forms)
Like loop, except loop variables require annotation.

eg. (loop> [a :- Number 1
            b :- (U nil Number) nil]
      ...)
Source


loop>-ann

function
Usage: (loop>-ann loop-of bnding-types)
Internal use only. Use loop>
Source


method-type

function
Usage: (method-type mname)
Given a method symbol, print the core.typed types assigned to it.
Intended for use at the REPL.
Source


nilable-param

macro
Usage: (nilable-param msym mmap)
Override which parameters in qualified method msym 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


nilable-param*

function
Usage: (nilable-param* msym mmap)
Internal use only. Use nilable-param.
Source


non-nil-return

macro
Usage: (non-nil-return msym arities)
Override the return type of qualified 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


non-nil-return*

function
Usage: (non-nil-return* msym arities)
Internal use only. Use non-nil-return.
Source


override-constructor

macro
Usage: (override-constructor ctorsym typesyn)
Override all constructors for Class ctorsym with type.
Source


override-constructor*

function
Usage: (override-constructor* ctorsym typesyn)
Internal use only. Use override-constructor.
Source


override-method

macro
Usage: (override-method methodsym typesyn)
Override type for qualified method methodsym.
Source


override-method*

function
Usage: (override-method* methodsym typesyn)
Internal use only. Use override-method.
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


pfn>-ann

function
Usage: (pfn>-ann fn-of polys param-types-syn)
Internal use only. Use pfn>.
Source


print-env

function
Usage: (print-env debug-str)
During type checking, print the type environment to *out*,
preceeded by literal string debug-str.
Source


print-filterset

function
Usage: (print-filterset debug-string frm)
During type checking, print the filter set attached to form, 
preceeded by literal string debug-string
Source


tc-ignore

macro
Usage: (tc-ignore & body)
Ignore forms in body during type checking
Source


tc-ignore-forms*

function
Usage: (tc-ignore-forms* r)
Internal use only. Use tc-ignore
Source


typed-deps

macro
Usage: (typed-deps & args)
Declare namespaces which should be checked before the current namespace.
Accepts any number of symbols.
Source


typed-deps*

function
Usage: (typed-deps* args)
Internal use only. Use typed-deps.
Source

clojure.core.typed.analyze-clj





Public Variables and Functions



ast-for-form

function
Usage: (ast-for-form form)
Returns an AST node for the form
Source


ast-for-form-in-ns

function
Usage: (ast-for-form-in-ns nsym form)
Returns an AST node for the form 
analyzed in the given namespace
Source


ast-for-ns

function
Usage: (ast-for-ns nsym)
Returns a vector of AST nodes contained
in the given namespace symbol nsym
Source

clojure.core.typed.check





Types



FnResult

record

    Fields: [args kws rest drest body]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


RecurTarget

record

    Fields: [dom rest drest kws]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->FnResult

function
Usage: (->FnResult args kws rest drest body)

    
    
    Source
  


->RecurTarget

function
Usage: (->RecurTarget dom rest drest kws)

    
    
    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-and-deps

function
Usage: (check-ns-and-deps nsym)
Type check a namespace and its dependencies.
Assumes type annotations in each namespace
has already been collected.
Source


ctor-Class->symbol

function
Usage: (ctor-Class->symbol cls)
Returns a symbol representing this constructor's Class, removing any compiler stubs.
Source


map->FnResult

function
Usage: (map->FnResult {:as m#, :keys [args kws rest drest body]})

    
    
    Source
  


map->RecurTarget

function
Usage: (map->RecurTarget {:as m#, :keys [dom rest drest kws]})

    
    
    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


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


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

clojure.core.typed.collect-phase





Public Variables and Functions



collect-ns

function
Usage: (collect-ns nsym)
Collect type annotations and dependency information
for namespace symbol nsym, and recursively check 
declared typed namespace dependencies.
Source

clojure.core.typed.cs-rep





Types



c

record

    Fields: [S X T bnds]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


cset

record

    Fields: [maps]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


cset-entry

record

    Fields: [fixed dmap projections]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


dcon

record

    Fields: [fixed rest]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


dcon-dotted

record

    Fields: [fixed dc dbound]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


dcon-exact

record

    Fields: [fixed rest]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


dmap

record

    Fields: [map]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


i-subst

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


i-subst-dotted

record

    Fields: [types dty dbound]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


i-subst-starred

record

    Fields: [types starred]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


t-subst

record

    Fields: [type bnds]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->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
  


->t-subst

function
Usage: (->t-subst type bnds)

    
    
    Source
  


DCon

var

    

(U dcon dcon-exact dcon-dotted)


FreeBnds

var

    
A map of free variable names to their bounds.

(IPersistentMap Symbol Bounds)


SubstMap

var

    
A substutition map of symbols naming frees to types
  to instantitate them with.

(IPersistentMap Symbol SubstRHS)


SubstRHS

var

    
The substitution records.

(U t-subst i-subst i-subst-starred i-subst-dotted)


map->c

function
Usage: (map->c {:as m#, :keys [S X T bnds]})

    
    
    Source
  


map->cset

function
Usage: (map->cset {:as m#, :keys [maps]})

    
    
    Source
  


map->cset-entry

function
Usage: (map->cset-entry {:as m#, :keys [fixed dmap projections]})

    
    
    Source
  


map->dcon

function
Usage: (map->dcon {:as m#, :keys [fixed rest]})

    
    
    Source
  


map->dcon-dotted

function
Usage: (map->dcon-dotted {:as m#, :keys [fixed dc dbound]})

    
    
    Source
  


map->dcon-exact

function
Usage: (map->dcon-exact {:as m#, :keys [fixed rest]})

    
    
    Source
  


map->dmap

function
Usage: (map->dmap {:as m#, :keys [map]})

    
    
    Source
  


map->i-subst

function
Usage: (map->i-subst {:as m#, :keys [types]})

    
    
    Source
  


map->i-subst-dotted

function
Usage: (map->i-subst-dotted {:as m#, :keys [types dty dbound]})

    
    
    Source
  


map->i-subst-starred

function
Usage: (map->i-subst-starred {:as m#, :keys [types starred]})

    
    
    Source
  


map->t-subst

function
Usage: (map->t-subst {:as m#, :keys [type bnds]})

    
    
    Source
  

clojure.core.typed.datatype-env





Public Variables and Functions



DataTypeEnv

var

    
An Environment mapping datatype symbols to types.

(IPersistentMap Symbol r/TCType)


get-datatype

function
Usage: (get-datatype sym)
Get the datatype with class symbol sym.
Returns nil if not found.
Source


resolve-datatype

function
Usage: (resolve-datatype sym)
Same as get-datatype, but fails if datatype is not found.
Source

clojure.core.typed.filter-ops





Public Variables and Functions



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

clojure.core.typed.filter-rep





Types



AndFilter

record

    Fields: [fs]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


BotFilter

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


FilterSet

record

    Fields: [then else]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


ImpFilter

record

    Fields: [a c]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


NoFilter

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


NotTypeFilter

record

    Fields: [type path id]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


OrFilter

record

    Fields: [fs]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TopFilter

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TypeFilter

record

    Fields: [type path id]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->AndFilter

function
Usage: (->AndFilter fs)

    
    
    Source
  


->BotFilter

function
Usage: (->BotFilter)

    
    
    Source
  


->FilterSet

function
Usage: (->FilterSet then else)

    
    
    Source
  


->ImpFilter

function
Usage: (->ImpFilter a c)

    
    
    Source
  


->NoFilter

function
Usage: (->NoFilter)

    
    
    Source
  


->NotTypeFilter

function
Usage: (->NotTypeFilter type path id)

    
    
    Source
  


->OrFilter

function
Usage: (->OrFilter fs)

    
    
    Source
  


->TopFilter

function
Usage: (->TopFilter)

    
    
    Source
  


->TypeFilter

function
Usage: (->TypeFilter type path id)

    
    
    Source
  


NameRef

var

    
A name for a type variable, either a symbol or a number.

(U Symbol Number)


map->AndFilter

function
Usage: (map->AndFilter {:as m#, :keys [fs]})

    
    
    Source
  


map->BotFilter

function
Usage: (map->BotFilter {:as m#, :keys []})

    
    
    Source
  


map->FilterSet

function
Usage: (map->FilterSet {:as m#, :keys [then else]})

    
    
    Source
  


map->ImpFilter

function
Usage: (map->ImpFilter {:as m#, :keys [a c]})

    
    
    Source
  


map->NoFilter

function
Usage: (map->NoFilter {:as m#, :keys []})

    
    
    Source
  


map->NotTypeFilter

function
Usage: (map->NotTypeFilter {:as m#, :keys [type path id]})

    
    
    Source
  


map->OrFilter

function
Usage: (map->OrFilter {:as m#, :keys [fs]})

    
    
    Source
  


map->TopFilter

function
Usage: (map->TopFilter {:as m#, :keys []})

    
    
    Source
  


map->TypeFilter

function
Usage: (map->TypeFilter {:as m#, :keys [type path id]})

    
    
    Source
  

clojure.core.typed.free-ops





Public Variables and Functions



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


with-bounded-frees

macro
Usage: (with-bounded-frees bfrees & body)
Scopes bfrees, a map of instances of F to their bounds, inside body.
Source


with-free-symbols

macro
Usage: (with-free-symbols sfrees & body)
Scopes sfrees, a sequence of symbols, inside body as free variables, with default bounds.
Source


with-frees

macro
Usage: (with-frees frees & body)
Scopes frees, which are instances of F, inside body, with
default bounds.
Source

clojure.core.typed.frees





Public Variables and Functions



fi

function
Usage: (fi t)
All index variables in type (dotted bounds, etc.)
Source


fv

function
Usage: (fv t)
All frees in type
Source


fv-variances

function
Usage: (fv-variances t)
Map of frees to their variances
Source


idx-variances

function
Usage: (idx-variances t)
Map of indexes to their variances
Source

clojure.core.typed.hole





Types



NoisyHole

type

    Fields: []
Protocols:
Interfaces:

Public Variables and Functions



->NoisyHole

function
Usage: (->NoisyHole)
Positional factory function for class clojure.core.typed.hole.NoisyHole.
Source


noisy-hole

function
Usage: (noisy-hole)
A noisy hole. The type system will complain when
(noisy-hole) is used in positions that expect a type
more specific than Object or Any.
Use (noisy-hole) as a placeholder for code.
Throws an exception when evaluted.
Source


silent-hole

function
Usage: (silent-hole)
A silent hole. (silent-hole) passes for any other type
when type checking.
Use (silent-hole) as a placeholder for code.
Throws an exception when evaluted.
Source

clojure.core.typed.inst





Public Variables and Functions



manual-inst

function
Usage: (manual-inst ptype argtys)
Poly Type^n -> Type
Substitute the type parameters of the polymorphic type
with given types
Source

clojure.core.typed.lex-env





Types



PropEnv

record

    Fields: [l props]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->PropEnv

function
Usage: (->PropEnv l props)

    
    
    Source
  


map->PropEnv

function
Usage: (map->PropEnv {:as m#, :keys [l props]})

    
    
    Source
  

clojure.core.typed.mm-env





Public Variables and Functions



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

clojure.core.typed.name-env





Public Variables and Functions



NameEnv

var

    
Environment mapping names to types. Keyword values are special.

(IPersistentMap Symbol (U Keyword r/TCType))


get-type-name

function
Usage: (get-type-name sym)
Return the name with var symbol sym.
Returns nil if not found.
Source

clojure.core.typed.ns-deps





Public Variables and Functions



DepMap

var

    
A map declaring possibly-circular namespace dependencies.

(IPersistentMap Symbol (IPersistentSet Symbol))

clojure.core.typed.object-rep





Types



EmptyObject

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


NoObject

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Path

record

    Fields: [path id]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->EmptyObject

function
Usage: (->EmptyObject)

    
    
    Source
  


->NoObject

function
Usage: (->NoObject)

    
    
    Source
  


->Path

function
Usage: (->Path path id)

    
    
    Source
  


map->EmptyObject

function
Usage: (map->EmptyObject {:as m#, :keys []})

    
    
    Source
  


map->NoObject

function
Usage: (map->NoObject {:as m#, :keys []})

    
    
    Source
  


map->Path

function
Usage: (map->Path {:as m#, :keys [path id]})

    
    
    Source
  

clojure.core.typed.parse-unparse





Public Variables and Functions



alias-in-ns

function
Usage: (alias-in-ns nsym ns)
Returns an alias for namespace sym in ns, or nil if none.
Source


var-symbol-intern

function
Usage: (var-symbol-intern sym ns)
Returns a symbol interned in ns for var symbol, or nil if none.

(var-symbol-intern 'symbol (find-ns 'clojure.core))
;=> 'symbol
(var-symbol-intern 'bar (find-ns 'clojure.core))
;=> nil
Source

clojure.core.typed.path-rep





Types



ClassPE

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


CountPE

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


FirstPE

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


KeyPE

record

    Fields: [val]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


NextPE

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->ClassPE

function
Usage: (->ClassPE)

    
    
    Source
  


->CountPE

function
Usage: (->CountPE)

    
    
    Source
  


->FirstPE

function
Usage: (->FirstPE)

    
    
    Source
  


->KeyPE

function
Usage: (->KeyPE val)

    
    
    Source
  


->NextPE

function
Usage: (->NextPE)

    
    
    Source
  


map->ClassPE

function
Usage: (map->ClassPE {:as m#, :keys []})

    
    
    Source
  


map->CountPE

function
Usage: (map->CountPE {:as m#, :keys []})

    
    
    Source
  


map->FirstPE

function
Usage: (map->FirstPE {:as m#, :keys []})

    
    
    Source
  


map->KeyPE

function
Usage: (map->KeyPE {:as m#, :keys [val]})

    
    
    Source
  


map->NextPE

function
Usage: (map->NextPE {:as m#, :keys []})

    
    
    Source
  

clojure.core.typed.protocol-env





Public Variables and Functions



ProtocolEnv

var

    
A map mapping protocol symbols their types.

(IPersistentMap Symbol r/TCType)


get-protocol

function
Usage: (get-protocol sym)
Returns the protocol with var symbol sym.
Returns nil if not found.
Source

clojure.core.typed.rclass-env





Public Variables and Functions



get-rclass

function
Usage: (get-rclass csym)
Returns the RClass with class symbol csym.
Returns nil if not found.
Source

clojure.core.typed.subtype





Public Variables and Functions



class-isa?

function
Usage: (class-isa? s t)
A faster version of isa?, both parameters must be classes
Source


subtypes-varargs?

function
Usage: (subtypes-varargs? argtys dom rst)
True if argtys are under dom
Source

clojure.core.typed.type-ctors





Public Variables and Functions



RClass-supers*

function
Usage: (RClass-supers* {:keys [poly? replacements the-class unchecked-ancestors], :as rcls})
Return a set of ancestors to the RClass
Source


TypeMap

var

    
A regular map with types as keys and vals.

(IPersistentMap TCType TCType)


abstract-many

function
Usage: (abstract-many names ty)
Names Type -> Scope^n  where n is (count names)
Source


add-scopes

function
Usage: (add-scopes n t)
Wrap type in n Scopes
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


make-HMap

function
Usage: (make-HMap mandatory optional)
       (make-HMap mandatory optional complete?)
Generate a type which is every possible combination of mandatory
and optional key entries. Takes an optional third parameter which
is true if the entries are complete (ie. we know there are no more entries),
and false otherwise. Defaults to false.
Source


remove-scopes

function
Usage: (remove-scopes n sc)
Unwrap n Scopes
Source

clojure.core.typed.type-rep





Types



AnyValue

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


App

record

    Fields: [rator rands]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


B

record

    Fields: [idx]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Bounds

record

    Fields: [upper-bound lower-bound higher-kind]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


CountRange

record

    Fields: [lower upper]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


DataType

record

    Fields: [the-class variances poly? fields record?]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


DottedPretype

record

    Fields: [pre-type name]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


F

record

    Fields: [name]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


FlowSet

record

    Fields: [normal]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


FnIntersection

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Function

record

    Fields: [dom rng rest drest kws]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


GTRange

record

    Fields: [n]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


HeterogeneousList

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


HeterogeneousMap

record

    Fields: [types absent-keys other-keys?]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


HeterogeneousSeq

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


HeterogeneousVector

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Intersection

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


KwArgs

record

    Fields: [mandatory optional]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


KwArgsSeq

record

    Fields: [mandatory optional]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


LTRange

record

    Fields: [n]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


ListDots

record

    Fields: [pre-type bound]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Mu

record

    Fields: [scope]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Name

record

    Fields: [id]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


NotType

record

    Fields: [type]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Poly

record

    Fields: [nbound bbnds scope actual-frees]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


PolyDots

record

    Fields: [nbound bbnds scope]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


PrimitiveArray

record

    Fields: [jtype input-type output-type]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Projection

record

    Fields: [afn ts]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Protocol

record

    Fields: [the-var variances poly? on-class methods]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


RClass

record

    Fields: [variances poly? the-class replacements unchecked-ancestors]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Result

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Scope

record

    Fields: [body]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TApp

record

    Fields: [rator rands]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TCError

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TCResult

record

    Fields: [t fl o flow]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Top

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TopFunction

record

    Fields: []
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


TypeFn

record

    Fields: [nbound variances bbnds scope]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Union

record

    Fields: [types]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map


Value

record

    Fields: [val]
Protocols:
Interfaces: clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map

Public Variables and Functions



->AnyValue

function
Usage: (->AnyValue)

    
    
    Source
  


->App

function
Usage: (->App rator rands)

    
    
    Source
  


->B

function
Usage: (->B idx)

    
    
    Source
  


->Bounds

function
Usage: (->Bounds upper-bound lower-bound higher-kind)

    
    
    Source
  


->CountRange

function
Usage: (->CountRange lower upper)

    
    
    Source
  


->DataType

function
Usage: (->DataType the-class variances poly? fields record?)

    
    
    Source
  


->DottedPretype

function
Usage: (->DottedPretype pre-type name)

    
    
    Source
  


->F

function
Usage: (->F name)

    
    
    Source
  


->FlowSet

function
Usage: (->FlowSet normal)

    
    
    Source
  


->FnIntersection

function
Usage: (->FnIntersection types)

    
    
    Source
  


->Function

function
Usage: (->Function dom rng rest drest kws)

    
    
    Source
  


->GTRange

function
Usage: (->GTRange n)

    
    
    Source
  


->HeterogeneousList

function
Usage: (->HeterogeneousList types)

    
    
    Source
  


->HeterogeneousMap

function
Usage: (->HeterogeneousMap types absent-keys other-keys?)

    
    
    Source
  


->HeterogeneousSeq

function
Usage: (->HeterogeneousSeq types)

    
    
    Source
  


->HeterogeneousVector

function
Usage: (->HeterogeneousVector types)

    
    
    Source
  


->Intersection

function
Usage: (->Intersection types)

    
    
    Source
  


->KwArgs

function
Usage: (->KwArgs mandatory optional)

    
    
    Source
  


->KwArgsSeq

function
Usage: (->KwArgsSeq 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
  


->NotType

function
Usage: (->NotType type)

    
    
    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
  


->Protocol

function
Usage: (->Protocol the-var variances poly? on-class methods)

    
    
    Source
  


->RClass

function
Usage: (->RClass variances poly? the-class replacements unchecked-ancestors)

    
    
    Source
  


->Scope

function
Usage: (->Scope body)

    
    
    Source
  


->TApp

function
Usage: (->TApp rator rands)

    
    
    Source
  


->TCError

function
Usage: (->TCError)

    
    
    Source
  


->TCResult

function
Usage: (->TCResult t fl o flow)

    
    
    Source
  


->Top

function
Usage: (->Top)

    
    
    Source
  


->TopFunction

function
Usage: (->TopFunction)

    
    
    Source
  


->TypeFn

function
Usage: (->TypeFn nbound variances bbnds scope)

    
    
    Source
  


->Union

function
Usage: (->Union types)

    
    
    Source
  


->Value

function
Usage: (->Value val)

    
    
    Source
  


TempFilterSet

var

    
Can't import FilterSet here, so an alias will do for now

clojure.core.typed.filter_rep.FilterSet


Variance

var

    
Keywords that represent a certain variance

(U ':constant ':covariant ':contravariant ':invariant ':dotted)


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 mandatory-kws optional-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


map->AnyValue

function
Usage: (map->AnyValue {:as m#, :keys []})

    
    
    Source
  


map->App

function
Usage: (map->App {:as m#, :keys [rator rands]})

    
    
    Source
  


map->B

function
Usage: (map->B {:as m#, :keys [idx]})

    
    
    Source
  


map->Bounds

function
Usage: (map->Bounds {:as m#, :keys [upper-bound lower-bound higher-kind]})

    
    
    Source
  


map->CountRange

function
Usage: (map->CountRange {:as m#, :keys [lower upper]})

    
    
    Source
  


map->DataType

function
Usage: (map->DataType {:as m#, :keys [the-class variances poly? fields record?]})

    
    
    Source
  


map->DottedPretype

function
Usage: (map->DottedPretype {:as m#, :keys [pre-type name]})

    
    
    Source
  


map->F

function
Usage: (map->F {:as m#, :keys [name]})

    
    
    Source
  


map->FlowSet

function
Usage: (map->FlowSet {:as m#, :keys [normal]})

    
    
    Source
  


map->FnIntersection

function
Usage: (map->FnIntersection {:as m#, :keys [types]})

    
    
    Source
  


map->Function

function
Usage: (map->Function {:as m#, :keys [dom rng rest drest kws]})

    
    
    Source
  


map->GTRange

function
Usage: (map->GTRange {:as m#, :keys [n]})

    
    
    Source
  


map->HeterogeneousList

function
Usage: (map->HeterogeneousList {:as m#, :keys [types]})

    
    
    Source
  


map->HeterogeneousMap

function
Usage: (map->HeterogeneousMap {:as m#, :keys [types absent-keys other-keys?]})

    
    
    Source
  


map->HeterogeneousSeq

function
Usage: (map->HeterogeneousSeq {:as m#, :keys [types]})

    
    
    Source
  


map->HeterogeneousVector

function
Usage: (map->HeterogeneousVector {:as m#, :keys [types]})

    
    
    Source
  


map->Intersection

function
Usage: (map->Intersection {:as m#, :keys [types]})

    
    
    Source
  


map->KwArgs

function
Usage: (map->KwArgs {:as m#, :keys [mandatory optional]})

    
    
    Source
  


map->KwArgsSeq

function
Usage: (map->KwArgsSeq {:as m#, :keys [mandatory optional]})

    
    
    Source
  


map->LTRange

function
Usage: (map->LTRange {:as m#, :keys [n]})

    
    
    Source
  


map->ListDots

function
Usage: (map->ListDots {:as m#, :keys [pre-type bound]})

    
    
    Source
  


map->Mu

function
Usage: (map->Mu {:as m#, :keys [scope]})

    
    
    Source
  


map->Name

function
Usage: (map->Name {:as m#, :keys [id]})

    
    
    Source
  


map->NotType

function
Usage: (map->NotType {:as m#, :keys [type]})

    
    
    Source
  


map->Poly

function
Usage: (map->Poly {:as m#, :keys [nbound bbnds scope actual-frees]})

    
    
    Source
  


map->PolyDots

function
Usage: (map->PolyDots {:as m#, :keys [nbound bbnds scope]})

    
    
    Source
  


map->PrimitiveArray

function
Usage: (map->PrimitiveArray {:as m#, :keys [jtype input-type output-type]})

    
    
    Source
  


map->Projection

function
Usage: (map->Projection {:as m#, :keys [afn ts]})

    
    
    Source
  


map->Protocol

function
Usage: (map->Protocol {:as m#, :keys [the-var variances poly? on-class methods]})

    
    
    Source
  


map->RClass

function
Usage: (map->RClass {:as m#, :keys [variances poly? the-class replacements unchecked-ancestors]})

    
    
    Source
  


map->Result

function
Usage: (map->Result {:as m#, :keys [t fl o]})

    
    
    Source
  


map->Scope

function
Usage: (map->Scope {:as m#, :keys [body]})

    
    
    Source
  


map->TApp

function
Usage: (map->TApp {:as m#, :keys [rator rands]})

    
    
    Source
  


map->TCError

function
Usage: (map->TCError {:as m#, :keys []})

    
    
    Source
  


map->TCResult

function
Usage: (map->TCResult {:as m#, :keys [t fl o flow]})

    
    
    Source
  


map->Top

function
Usage: (map->Top {:as m#, :keys []})

    
    
    Source
  


map->TopFunction

function
Usage: (map->TopFunction {:as m#, :keys []})

    
    
    Source
  


map->TypeFn

function
Usage: (map->TypeFn {:as m#, :keys [nbound variances bbnds scope]})

    
    
    Source
  


map->Union

function
Usage: (map->Union {:as m#, :keys [types]})

    
    
    Source
  


map->Value

function
Usage: (map->Value {:as m#, :keys [val]})

    
    
    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


visit-bounds

function
Usage: (visit-bounds ty f)
Apply f to each element of bounds
Source

clojure.core.typed.utils





Public Variables and Functions



ann-record

macro
Usage: (ann-record nme & args)
Like ann-record, but also adds an unchecked annotation for core.contract's generated
nme? predicate.
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


with-ex-info-handlers

macro
Usage: (with-ex-info-handlers handlers & body)
Handle an ExceptionInfo e thrown in body. The first handler whos left hand
side returns true, then the right hand side is called passing (ex-info e) and e.
Source
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.