Skip to content

Commit 28f5a6c

Browse files
author
Geoffrey Broadwell
committed
First snapshot: human- and computer-parseable map of Perl6's type graph
1 parent 7179ca6 commit 28f5a6c

File tree

1 file changed

+347
-0
lines changed

1 file changed

+347
-0
lines changed

type-graph.txt

Lines changed: 347 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,347 @@
1+
# Specials
2+
pmclass CTMThunk
3+
pmclass MDThunk
4+
pmclass Perl6LexInfo
5+
pmclass Perl6LexPad
6+
7+
module PROCESS
8+
package Metamodel
9+
10+
# ???
11+
class FixupList
12+
class LongName
13+
class AST
14+
class ObjAt
15+
class Dummy
16+
class LSM
17+
class Version
18+
class Perl6doc::Grammar::Actions
19+
20+
# Compiler
21+
class Perl6::World is HLL::World
22+
class Perl6::Compiler is HLL::Compiler
23+
class Perl6::Actions is HLL::Actions
24+
class Perl6::RegexActions is QRegex::P6Regex::Actions
25+
class Perl6::ConstantFolder
26+
class Perl6::ModuleLoader
27+
class Perl6::Optimizer
28+
class Perl6::Pod
29+
30+
# Metamodel
31+
class Perl6::Metamodel::Archetypes
32+
role Perl6::Metamodel::AttributeContainer
33+
role Perl6::Metamodel::BUILDPLAN
34+
role Perl6::Metamodel::BaseType
35+
role Perl6::Metamodel::BoolificationProtocol
36+
role Perl6::Metamodel::C3MRO
37+
class Perl6::Metamodel::ClassHOW
38+
class Perl6::Metamodel::ConcreteRoleHOW
39+
class Perl6::Metamodel::ContainerDescriptor
40+
class Perl6::Metamodel::CurriedRoleHOW
41+
role Perl6::Metamodel::DefaultParent
42+
class Perl6::Metamodel::BaseDispatcher
43+
class Perl6::Metamodel::MethodDispatcher is Perl6::Metamodel::BaseDispatcher
44+
class Perl6::Metamodel::MultiDispatcher is Perl6::Metamodel::BaseDispatcher
45+
class Perl6::Metamodel::WrapDispatcher is Perl6::Metamodel::BaseDispatcher
46+
role Perl6::Metamodel::Documenting
47+
class Perl6::Metamodel::EnumHOW
48+
class Perl6::Metamodel::GenericHOW
49+
class Perl6::Metamodel::GrammarHOW
50+
role Perl6::Metamodel::MROBasedMethodDispatch
51+
role Perl6::Metamodel::MROBasedTypeChecking
52+
role Perl6::Metamodel::MethodContainer
53+
role Perl6::Metamodel::MethodDelegation
54+
role Perl6::Metamodel::Mixins
55+
class Perl6::Metamodel::ModuleHOW
56+
role Perl6::Metamodel::MultiMethodContainer
57+
role Perl6::Metamodel::MultipleInheritance
58+
role Perl6::Metamodel::Naming
59+
class Perl6::Metamodel::NativeHOW
60+
class Perl6::Metamodel::PackageHOW
61+
class Perl6::Metamodel::ParametricRoleGroupHOW
62+
class Perl6::Metamodel::ParametricRoleHOW
63+
role Perl6::Metamodel::ParrotInterop
64+
role Perl6::Metamodel::PrivateMethodContainer
65+
role Perl6::Metamodel::RoleContainer
66+
role Perl6::Metamodel::RolePunning
67+
class RoleToClassApplier
68+
class RoleToRoleApplier
69+
role Perl6::Metamodel::Stashing
70+
class Perl6::Metamodel::StaticLexPad
71+
class Perl6::Metamodel::SubsetHOW
72+
role Perl6::Metamodel::Trusting
73+
role Perl6::Metamodel::TypePretense
74+
role Perl6::Metamodel::Versioning
75+
76+
# Attributes
77+
class BOOTSTRAPATTR
78+
class Attribute
79+
80+
# Base types
81+
class Mu
82+
class Junction is Mu
83+
class Any is Mu
84+
class Scalar is Any
85+
class Proxy is Any
86+
class LazyScalar is Proxy
87+
class Cool is Any
88+
class Bool is Cool
89+
90+
# Callables
91+
role Callable[::T = Mu]
92+
class Code does Callable
93+
class Block is Code
94+
class Routine is Block
95+
class Sub is Routine
96+
class Method is Routine
97+
class Submethod is Routine
98+
class Macro is Routine
99+
100+
class Whatever
101+
class WhateverCode is Code
102+
103+
class WrapHandle
104+
role Wrapped
105+
class CallFrame
106+
class Parameter
107+
class Signature is Cool
108+
109+
# Regex and Grammars
110+
class Match is Capture is Cool
111+
class Cursor does NQPCursorRole
112+
class Grammar is Cursor
113+
class Regex is Method
114+
role CachedCompiledRegex
115+
116+
# Strings
117+
role Stringy
118+
class Str is Cool does Stringy
119+
120+
# Numbers
121+
role Numeric
122+
role Real does Numeric
123+
class Int is Cool does Real
124+
class Num is Cool does Real
125+
class Complex is Cool does Numeric
126+
127+
role Rational[::NuT, ::DeT] does Real
128+
class Rat is Cool does Rational[Int, Int]
129+
class FatRat is Cool does Rational[Int, Int]
130+
131+
# Time
132+
role Dateish
133+
class DateTime-local-timezone does Callable
134+
class DateTime does Dateish
135+
class Date does Dateish
136+
class Duration is Cool does Real
137+
class Instant is Cool does Real
138+
139+
# IO
140+
role IO::FileTestable
141+
class IO does IO::FileTestable
142+
class IO::Path is Cool does IO::FileTestable
143+
class IO::File is IO::Path
144+
class IO::Dir is IO::Path
145+
class IO::ArgFiles is IO
146+
role IO::Socket
147+
class IO::Socket::INET does IO::Socket
148+
149+
# Pod
150+
class Pod::Config
151+
class Pod::Block
152+
class Pod::Block::Code is Pod::Block
153+
class Pod::Block::Comment is Pod::Block
154+
class Pod::Block::Declarator is Pod::Block
155+
class Pod::Block::Named is Pod::Block
156+
class Pod::Block::Para is Pod::Block
157+
class Pod::Block::Table is Pod::Block
158+
class Pod::FormattingCode is Pod::Block
159+
class Pod::Heading is Pod::Block
160+
class Pod::Item is Pod::Block
161+
162+
163+
### COLLECTIONS
164+
165+
# Collections: Iteration
166+
class Iterable is Cool
167+
class Iterator is Iterable
168+
class Nil is Iterator
169+
class GatherIter is Iterator
170+
class ListIter is Iterator
171+
class MapIter is Iterator
172+
173+
# Collections: Positional
174+
role Positional[::T = Mu]
175+
class Buf does Positional
176+
class Capture
177+
class Parcel is Cool does Positional
178+
class Range is Iterable does Positional
179+
class List is Iterable does Positional
180+
class Array is List
181+
class LoL is List
182+
class Seq is List does Positional
183+
role TypedArray[::TValue] does Positional[TValue]
184+
185+
# Collections: Associative
186+
role Associative[::T = Mu]
187+
role Baggy
188+
class Bag is Iterable does Associative does Baggy
189+
class KeyBag does Associative does Baggy
190+
class Set is Iterable does Associative
191+
class KeySet is Iterable does Associative
192+
role Enumeration
193+
role NumericEnumeration
194+
role StringyEnumeration
195+
class Enum does Associative
196+
class Pair is Enum
197+
class EnumMap is Iterable does Associative
198+
class Stash
199+
class PseudoStash is EnumMap
200+
class Hash is EnumMap
201+
class KeyHash is Iterable does Associative
202+
role TypedHash[::TValue] does Associative[TValue]
203+
role TypedHash[::TValue, ::TKey] does Associative[TValue]
204+
205+
206+
### EXCEPTIONS
207+
208+
# Exceptions: Base
209+
class Failure
210+
class Exception
211+
class Backtrace is List
212+
class Backtrace::Frame
213+
214+
# Exceptions: Misc
215+
class X::AdHoc is Exception
216+
class X::Method::NotFound is Exception
217+
class X::Method::InvalidQualifier is Exception
218+
class X::OutOfRange is Exception
219+
class X::Routine::Unwrap is Exception
220+
class X::Constructor::Positional is Exception
221+
class X::Hash::Store::OddNumber is Exception
222+
class X::Phaser::PrePost is Exception
223+
class X::Sequence::Deduction is Exception
224+
class X::Assignment::RO is Exception
225+
class X::NoDispatcher is Exception
226+
class X::Localizer::NoContainer is Exception
227+
class X::Inheritance::Unsupported is Exception
228+
class X::HyperOp::NonDWIM is Exception
229+
class X::Set::Coerce is Exception
230+
class X::Eval::NoSuchLang is Exception
231+
232+
# Exceptions: Numbers
233+
class X::Numeric::Real is Exception
234+
235+
# Exceptions: Strings
236+
class X::Str::Numeric is Exception
237+
class X::Str::Match::x is Exception
238+
class X::Str::Trans::IllegalKey is Exception
239+
class X::Str::Trans::InvalidArg is Exception
240+
241+
# Exceptions: Buffers
242+
class X::Buf::AsStr is Exception
243+
class X::Buf::Pack is Exception
244+
class X::Buf::Pack::NonASCII is Exception
245+
246+
# Exceptions: Time
247+
class X::Temporal is Exception
248+
class X::Temporal::InvalidFormat is X::Temporal
249+
class X::Temporal::Truncation is X::Temporal
250+
class X::DateTime::TimezoneClash is X::Temporal
251+
252+
# Exceptions: Composition
253+
class X::Export::NameClash is Exception
254+
class X::Import::MissingSymbols is Exception
255+
class X::Composition::NotComposable is Exception
256+
class X::Mixin::NonComposable is Exception
257+
258+
# Exceptions: Type Checks
259+
class X::TypeCheck is Exception
260+
class X::TypeCheck::Binding is X::TypeCheck
261+
class X::TypeCheck::Return is X::TypeCheck
262+
class X::TypeCheck::Assignment is X::TypeCheck
263+
264+
# Exceptions: Control Flow
265+
class X::ControlFlow is Exception
266+
class X::ControlFlow::Return is X::ControlFlow
267+
268+
# Exceptions: IO
269+
role X::OS
270+
role X::IO does X::OS
271+
class X::IO::Rename is Exception does X::IO
272+
class X::IO::Copy is Exception does X::IO
273+
class X::IO::Mkdir is Exception does X::IO
274+
class X::IO::Chdir is Exception does X::IO
275+
class X::IO::Dir is Exception does X::IO
276+
class X::IO::Cwd is Exception does X::IO
277+
class X::IO::Rmdir is Exception does X::IO
278+
class X::IO::Unlink is Exception does X::IO
279+
class X::IO::Chmod is Exception does X::IO
280+
281+
# Exceptions: Compile-Time
282+
role X::Comp is Exception
283+
class X::Comp::AdHoc is X::AdHoc does X::Comp
284+
class X::NYI is Exception
285+
class X::Comp::NYI is X::NYI does X::Comp
286+
287+
class X::Signature::Placeholder does X::Comp
288+
class X::Placeholder::Block does X::Comp
289+
class X::Placeholder::Mainline does X::Comp
290+
class X::Attribute::Undeclared does X::Comp
291+
class X::Redeclaration does X::Comp
292+
class X::Undeclared does X::Comp
293+
class X::Phaser::Multiple does X::Comp
294+
class X::Obsolete does X::Comp
295+
class X::Parameter::Default does X::Comp
296+
class X::Parameter::Placeholder does X::Comp
297+
class X::Parameter::Twigil does X::Comp
298+
class X::Parameter::MultipleTypeConstraints does X::Comp
299+
class X::Parameter::WrongOrder does X::Comp
300+
class X::Signature::NameClash does X::Comp
301+
class X::Method::Private::Permission does X::Comp
302+
class X::Method::Private::Unqualified does X::Comp
303+
class X::Bind is Exception
304+
class X::Bind::NativeType does X::Comp
305+
class X::Bind::Slice is Exception
306+
class X::Bind::ZenSlice is X::Bind::Slice
307+
class X::Does::TypeObject is Exception
308+
class X::Role::Initialization is Exception
309+
class X::Value::Dynamic does X::Comp
310+
class X::Attribute::Package does X::Comp
311+
class X::Attribute::NoPackage does X::Comp
312+
class X::Declaration::Scope does X::Comp
313+
class X::Declaration::Scope::Multi is X::Declaration::Scope
314+
class X::Anon::Multi does X::Comp
315+
class X::Anon::Augment does X::Comp
316+
class X::Augment::NoSuchType does X::Comp
317+
class X::Package::Stubbed does X::Comp
318+
319+
# Exceptions: Syntax
320+
role X::Pod
321+
role X::Syntax does X::Comp
322+
class X::Syntax::Name::Null does X::Syntax
323+
class X::Syntax::UnlessElse does X::Syntax
324+
class X::Syntax::Reserved does X::Syntax
325+
class X::Syntax::P5 does X::Syntax
326+
class X::Syntax::NegatedPair does X::Syntax
327+
class X::Syntax::Variable::Numeric does X::Syntax
328+
class X::Syntax::Variable::Match does X::Syntax
329+
class X::Syntax::Variable::Twigil does X::Syntax
330+
class X::Syntax::Variable::IndirectDeclaration does X::Syntax
331+
class X::Syntax::Augment::WithoutMonkeyTyping does X::Syntax
332+
class X::Syntax::Augment::Role does X::Syntax
333+
class X::Syntax::Comment::Embedded does X::Syntax
334+
class X::Syntax::Confused does X::Syntax
335+
class X::Syntax::Malformed does X::Syntax
336+
class X::Syntax::Missing does X::Syntax
337+
class X::Syntax::SigilWithoutName does X::Syntax
338+
class X::Syntax::Self::WithoutObject does X::Syntax
339+
class X::Syntax::VirtualCall does X::Syntax
340+
class X::Syntax::NoSelf does X::Syntax
341+
class X::Syntax::Number::RadixOutOfRange does X::Syntax
342+
class X::Syntax::Regex::Adverb does X::Syntax
343+
class X::Syntax::Signature::InvocantMarker does X::Syntax
344+
class X::Syntax::Extension::Category does X::Syntax
345+
class X::Syntax::InfixInTermPosition does X::Syntax
346+
class X::Syntax::Pod::BeginWithoutIdentifier does X::Syntax does X::Pod
347+
class X::Syntax::Pod::BeginWithoutEnd does X::Syntax does X::Pod

0 commit comments

Comments
 (0)