forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
Types Hierarchy
vtjnash edited this page Jun 5, 2012
·
3 revisions
This is the type hierarchy of Julia's built-in types to show the relationships between the Abstract Types, Bit Types, Composite Types, Union Types, and even Types Aliases. Note that Unions and Type Constructors are intentionally listed multiple times.
Commit 06bfc23bf4 (2012-06-04 16:16:32)
+- Any
+- ...{T}
+- AbstractArray{T, N}
+ +- AbstractMatrix{T} = AbstractArray{T,2}
+ +- AbstractVector{T} = AbstractArray{T,1}
+ +- Array{T, N}
+ + +- Executable = Union(Function,Array{Union(UTF8String,ASCIIString),1})
+ + +- Matrix{T} = Array{T,2}
+ + +- StridedArray{T, N, A<:Array{T,N}} = Union(SubArray{T,N,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,N})
+ + +- StridedMatrix{T, A<:Array{T,N}} = Union(SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,2})
+ + +- StridedVecOrMat{T} = Union(Array{T,2},SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1},SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)})
+ + +- StridedVector{T, A<:Array{T,N}} = Union(SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1})
+ + +- VecOrMat{T} = Union(Array{T,2},Array{T,1})
+ + +- Vector{T} = Array{T,1}
+ +- Chars = Union(AbstractArray{Char,1},Char)
+ +- DArray{T, N, distdim}
+ + +- SubOrDArray{T, N} = Union(SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},DArray{T,N,distdim})
+ +- Indices{T<:Integer} = Union(AbstractArray{T<:Integer,1},Integer)
+ +- Ranges{T<:Real} (=AbstractArray{T<:Real, 1})
+ + +- Range{T<:Real}
+ + + +- RangeIndex = Union(Range1{Int64},Range{Int64},Int64)
+ + +- Range1{T<:Real}
+ + +- RangeIndex = Union(Range1{Int64},Range{Int64},Int64)
+ +- SubArray{T, N, A<:AbstractArray{T,N}, I<:(Union(Range1{Int64},Range{Int64},Int64)...,)}
+ +- StridedArray{T, N, A<:Array{T,N}} = Union(SubArray{T,N,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,N})
+ +- StridedMatrix{T, A<:Array{T,N}} = Union(SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,2})
+ +- StridedVecOrMat{T} = Union(Array{T,2},SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1},SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)})
+ +- StridedVector{T, A<:Array{T,N}} = Union(SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1})
+ +- SubDArray{T, N} = SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)}
+ +- SubOrDArray{T, N} = Union(SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},DArray{T,N,distdim})
+- Associative{K, V}
+ +- Dict{K, V}
+ +- EnvHash (=Associative{Union(UTF8String,ASCIIString), Union(UTF8String,ASCIIString)})
+ +- ObjectIdDict (=Associative{Any, Any})
+ +- VarTable = ObjectIdDict
+ +- WeakKeyDict{K, V}
+- Box
+- CallStack
+- Cmd
+ +- Cmds = Union(Set{Cmd},Cmd)
+- Colon
+- EachLine
+- EachSearch
+- EmptyCallStack
+- Enumerate{I}
+- Exception
+ +- ArgumentError
+ +- BackTrace
+ +- BoundsError
+ +- DisconnectException
+ +- DivideByZeroError
+ +- DomainError
+ +- EOFError
+ +- ErrorException
+ +- IOError
+ +- InexactError
+ +- InterruptException
+ +- KeyError
+ +- LoadError
+ +- MemoryError
+ +- MethodError
+ +- OverflowError
+ +- ParseError
+ +- StackOverflowError
+ +- SystemError
+ +- TypeError
+ +- UndefRefError
+- Expr
+- FDSet
+- FileDes
+- Filter{I}
+- Function
+ +- Executable = Union(Function,Array{Union(UTF8String,ASCIIString),1})
+- GORef
+- GlobalObject
+- GotoNode
+- IO
+ +- IOStream
+ +- IOTally
+- IntSet
+- IntrinsicFunction
+- LabelNode
+- LambdaStaticData
+- LineNumberNode
+- LocalProcess
+- Location
+- LongExpr
+- LongSymbol
+- LongTuple
+- Method
+- MethodTable
+- Module
+- NTuple{N, T}
+- NotFound
+- Nothing
+- Number
+ +- Complex{T<:Real}
+ + +- Complex128 (=Complex{Float64})
+ + +- Complex64 (=Complex{Float32})
+ + +- ComplexPair{T<:Real}
+ + +- ImaginaryUnit (=Complex{Int32})
+ +- Real
+ +- Float
+ + +- Float32
+ + +- Float64
+ +- Integer
+ + +- Bool
+ + +- Char
+ + + +- Chars = Union(AbstractArray{Char,1},Char)
+ + +- Indices{T<:Integer} = Union(AbstractArray{T<:Integer,1},Integer)
+ + +- Signed
+ + + +- FileOffset = Int64
+ + + +- Int = Int64
+ + + +- Int16
+ + + +- Int32
+ + + +- Int64
+ + + + +- RangeIndex = Union(Range1{Int64},Range{Int64},Int64)
+ + + + +- Region = Union((Int64...,),Int64)
+ + + +- Int8
+ + +- Unsigned
+ + +- Uint = Uint64
+ + +- Uint16
+ + +- Uint32
+ + +- Uint64
+ + +- Uint8
+ +- Rational{T<:Integer}
+- Pipe
+- PipeEnd
+ +- PipeIn
+ +- PipeOut
+- Port
+ +- Ports = Union(Set{Port},Port)
+- ProcessGroup
+- ProcessStatus
+ +- ProcessExited
+ +- ProcessNotRun
+ +- ProcessRunning
+ +- ProcessSignaled
+ +- ProcessStopped
+- Ptr{T}
+- QuoteNode
+- Regex
+- RegexMatch
+- RegexMatchIterator
+- RemoteRef
+- Reverse
+- Set{T}
+ +- Cmds = Union(Set{Cmd},Cmd)
+ +- Ports = Union(Set{Port},Port)
+- StateUpdate
+- StaticVarInfo
+- String
+ +- CharString
+ +- DirectIndexString
+ + +- ASCIIString
+ + +- ByteString = Union(UTF8String,ASCIIString)
+ +- GenericString
+ +- RepString
+ +- RevString
+ +- RopeString
+ +- SubString{T<:String}
+ +- TransformedString
+ +- UTF8String
+ +- ByteString = Union(UTF8String,ASCIIString)
+- Symbol
+- SymbolNode
+- Task
+- Top = Top
+- TopNode
+- Type{T<:Top}
+ +- AbstractKind
+ +- BitsKind
+ +- CompositeKind
+ +- TypeConstructor
+ + +- AbstractMatrix{T} = AbstractArray{T,2}
+ + +- AbstractVector{T} = AbstractArray{T,1}
+ + +- Indices{T<:Integer} = Union(AbstractArray{T<:Integer,1},Integer)
+ + +- Matrix{T} = Array{T,2}
+ + +- StridedArray{T, N, A<:Array{T,N}} = Union(SubArray{T,N,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,N})
+ + +- StridedMatrix{T, A<:Array{T,N}} = Union(SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,2})
+ + +- StridedVecOrMat{T} = Union(Array{T,2},SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1},SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)})
+ + +- StridedVector{T, A<:Array{T,N}} = Union(SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1})
+ + +- SubDArray{T, N} = SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)}
+ + +- SubOrDArray{T, N} = Union(SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},DArray{T,N,distdim})
+ + +- VecOrMat{T} = Union(Array{T,2},Array{T,1})
+ + +- Vector{T} = Array{T,1}
+ +- UnionKind
+ +- ByteString = Union(UTF8String,ASCIIString)
+ +- Chars = Union(AbstractArray{Char,1},Char)
+ +- Cmds = Union(Set{Cmd},Cmd)
+ +- Executable = Union(Function,Array{Union(UTF8String,ASCIIString),1})
+ +- Indices{T<:Integer} = Union(AbstractArray{T<:Integer,1},Integer)
+ +- None = None
+ +- Ports = Union(Set{Port},Port)
+ +- RangeIndex = Union(Range1{Int64},Range{Int64},Int64)
+ +- Region = Union((Int64...,),Int64)
+ +- StridedArray{T, N, A<:Array{T,N}} = Union(SubArray{T,N,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,N})
+ +- StridedMatrix{T, A<:Array{T,N}} = Union(SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,2})
+ +- StridedVecOrMat{T} = Union(Array{T,2},SubArray{T,2,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1},SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)})
+ +- StridedVector{T, A<:Array{T,N}} = Union(SubArray{T,1,A<:Array{T,N},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},Array{T,1})
+ +- SubOrDArray{T, N} = Union(SubArray{T,N,DArray{T,N,distdim},I<:(Union(Range1{Int64},Range{Int64},Int64)...,)},DArray{T,N,distdim})
+ +- Top = Top
+ +- VecOrMat{T} = Union(Array{T,2},Array{T,1})
+ +- Void = None
+- TypeName
+- TypeVar
+- Undef
+ +- Top = Top
+- UniqueNames
+- VersionNumber
+- WaitFor
+- WeakRef
+- WorkItem
+- Worker
+- Zip
+- _jl_Type_Array{Array{T,N}} = Type
I (vtjnash) am generating this from a script (examples/typetree.jl). If you have suggestions on better ways of representing the data, I'm all ears. I'm especially looking for a good way to add in information from modules and other files, usage of color and font that would improve readability, and perhaps some javascript magic / hover titles / hyperlinks that would be helpful.