Raku Types

This is a list of all built-in Types that are documented here as part of the Raku language. Use the above menu to narrow it down topically.

Name Type Description
AST class Abstract representation of a piece of source code
Any class Thing/object
Array class Sequence of itemized values
Associative role Object that supports looking up values by key
Attribute class Member variable
Backtrace class Snapshot of the dynamic call stack
Backtrace::Frame class Single frame of a Backtrace
Bag class Immutable collection of distinct objects with integer weights
BagHash class Mutable collection of distinct objects with integer weights
Baggy role Collection of distinct weighted objects
Blob role Immutable buffer for binary data ('Binary Large OBject')
Block class Code object with its own lexical scope
Bool enum Logical boolean
Buf role Mutable buffer for binary data
CX::Done class Done control exception
CX::Emit class Emit control exception
CX::Last class Last control exception
CX::Next class Next control exception
CX::Proceed class Proceed control exception
CX::Redo class Redo control exception
CX::Return class Return control exception
CX::Succeed class Succeed control exception
CX::Take class Take control exception
CX::Warn class Control exception warning
CallFrame class Captures the current frame state
Callable role Invocable code object
Cancellation class Removal of a task from a Scheduler before normal completion
Capture class Argument list suitable for passing to a Signature
Channel class Thread-safe queue for sending values from producers to consumers
Code class Code object
Collation class Encapsulates how strings are sorted
CompUnit class CompUnit
CompUnit::Repository role CompUnit::Repository
CompUnit::Repository::FileSystem class CompUnit::Repository::FileSystem
CompUnit::Repository::Installation class CompUnit::Repository::Installation
Compiler class Information related to the compiler that is being used
Complex class Complex number
ComplexStr class Dual value complex number and string
Cool class Object that can be treated as both a string and number
CurrentThreadScheduler class Scheduler that synchronously executes code on the current thread
Date class Calendar date
DateTime class Calendar date with time
Dateish role Object that can be treated as a date
Distribution role Distribution
Distribution::Hash class Distribution::Hash
Distribution::Locally class Distribution::Locally
Distribution::Path class Distribution::Path
Distro class Distribution related information
Duration class Length of time
Encoding role Support for character encodings.
Encoding::Registry class Management of available encodings
Endian enum Indicate endianness (6.d, 2018.12 and later)
Enumeration role Working with the role behind the enum type
Exception class Anomalous event capable of interrupting normal control-flow
Failure class Delayed exception
FatRat class Rational number (arbitrary-precision)
ForeignCode class Rakudo-specific class that wraps around code in other languages (generally NQP)
Grammar class Formal grammar made up of named regexes
Hash class Mapping from strings to itemized values
HyperSeq class An object for performing batches of work in parallel with ordered output
HyperWhatever class Placeholder for multiple unspecified values/arguments
IO role Input/output related routines
IO::ArgFiles class Iterate over contents of files specified on command line
IO::CatHandle class Use multiple IO handles as if they were one
IO::Handle class Opened file or stream
IO::Notification class Asynchronous notification for file and directory changes
IO::Path class File or directory path
IO::Path::Cygwin class IO::Path pre-loaded with IO::Spec::Cygwin
IO::Path::QNX class IO::Path pre-loaded with IO::Spec::QNX
IO::Path::Unix class IO::Path pre-loaded with IO::Spec::Unix
IO::Path::Win32 class IO::Path pre-loaded with IO::Spec::Win32
IO::Pipe class Buffered inter-process string or binary stream
IO::Socket role Network socket
IO::Socket::Async class Asynchronous socket in TCP or UDP
IO::Socket::INET class TCP Socket
IO::Spec class Platform specific operations on file and directory paths
IO::Spec::Cygwin class Platform specific operations on file and directory paths for Cygwin
IO::Spec::QNX class Platform specific operations on file and directory paths QNX
IO::Spec::Unix class Platform specific operations on file and directory paths for POSIX
IO::Spec::Win32 class Platform specific operations on file and directory paths for Windows
IO::Special class Path to special I/O device
Instant class Specific moment in time
Int class Integer (arbitrary-precision)
IntStr class Dual value integer and string
Iterable role Interface for container objects that can be iterated over
Iterator role Generic API for producing a sequence of values
Junction class Logical superposition of values
Kernel class Kernel related information
Label class Tagged location in the source code
List class Sequence of values
Lock class A low-level, re-entrant, mutual exclusion lock
Lock::Async class A non-blocking, non-re-entrant, mutual exclusion lock
Macro class Compile-time routine
Map class Immutable mapping from strings to values
Match class Result of a successful regex match
Metamodel::AttributeContainer role Metaobject that can hold attributes
Metamodel::C3MRO role Metaobject that supports the C3 method resolution order
Metamodel::ClassHOW class Metaobject representing a Perl 6 class.
Metamodel::ConcreteRoleHOW class Provides an implementation of a concrete instance of a role
Metamodel::CurriedRoleHOW class Support for parameterized roles that have not been instantiated
Metamodel::EnumHOW class Metaobject representing a Perl 6 enum.
Metamodel::Finalization role Metaobject supporting object finalization
Metamodel::MROBasedMethodDispatch role Metaobject that supports resolving inherited methods
Metamodel::MethodContainer role Metaobject that supports storing and introspecting methods
Metamodel::MultipleInheritance role Metaobject that supports multiple inheritance
Metamodel::Naming role Metaobject that supports named types
Metamodel::PackageHOW class Metaobject representing a Perl 6 package.
Metamodel::ParametricRoleGroupHOW role Represents a group of roles with different parameterizations
Metamodel::ParametricRoleHOW role Represents a non-instantiated, parameterized, role.
Metamodel::Primitives class Metaobject that supports low-level type operations
Metamodel::PrivateMethodContainer role Metaobject that supports private methods
Metamodel::RoleContainer role Metaobject that supports holding/containing roles
Metamodel::RolePunning role Metaobject that supports punning of roles.
Metamodel::Trusting role Metaobject that supports trust relations between types
Metamodel::Versioning role Metaobjects that support versioning
Method class Member function
Mix class Immutable collection of distinct objects with Real weights
MixHash class Mutable collection of distinct objects with Real weights
Mixy role Collection of distinct objects with Real weights
Mu class The root of the Perl 6 type hierarchy.
NFC class Codepoint string in Normal Form C (composed)
NFD class Codepoint string in Normal Form D (decomposed)
NFKC class Codepoint string in Normal Form KC (compatibility composed)
NFKD class Codepoint string in Normal Form KD (compatibility decomposed)
Nil class Absence of a value or a benign failure
Num class Floating-point number
NumStr class Dual value floating-point number and string
Numeric class Number or object that can act as a number
ObjAt class Unique identification for an object
Order enum Human readable form for comparison operators.
Pair class Key/value pair
Parameter class Element of a Signature
Perl class Perl related information
Pod::Block class Block in a Pod document
Pod::Block::Code class Verbatim code block in a Pod document
Pod::Block::Comment class Comment in a Pod document
Pod::Block::Declarator class Declarator block in a Pod document
Pod::Block::Named class Named block in a Pod document
Pod::Block::Para class Paragraph in a Pod document
Pod::Block::Table class Table in a Pod document
Pod::Defn class Pod definition list
Pod::FormattingCode class Pod formatting code
Pod::Heading class Heading in a Pod document
Pod::Item class Item in a Pod enumeration list
Positional role Object that supports looking up values by index
PositionalBindFailover role Failover for binding to a Positional
PredictiveIterator role Iterators that can predict number of values
Proc class Running process (filehandle-based interface)
Proc::Async class Running process (asynchronous interface)
Promise class Status/result of an asynchronous computation
Proxy class Item container with custom storage and retrieval
PseudoStash class Stash type for pseudo-packages
QuantHash role Object hashes with limitation on type of value
RaceSeq class Performs batches of work in parallel without respecting original order.
Range class Interval of ordered values
Rat class Rational number (limited-precision)
RatStr class Dual value rational number and string
Rational role Number stored as numerator and denominator
Real role Non-complex number
Regex class String pattern
Routine class Code object with its own lexical scope and return handling
Routine::WrapHandle class Holds all information needed to unwrap a wrapped routine.
Scalar class A mostly transparent container used for indirections
Scheduler role Scheme for automatically assigning tasks to threads
Semaphore class Control access to shared resources by multiple threads
Seq class An iterable, lazy sequence of values
Sequence role Operations for higher-level sequences
Set class Immutable collection of distinct objects
SetHash class Mutable collection of distinct objects
Setty role Collection of distinct objects
Signature class Parameter list pattern
Slip class A kind of List that automatically flattens into an outer container
Stash class Table for "our"-scoped symbols
Str class String of characters
StrDistance class Contains the result of a string transformation.
Stringy role String or object that can act as a string
Sub class Subroutine
Submethod class Member function that is not inherited by subclasses
Supplier class Live Supply factory
Supplier::Preserving class Cached live Supply factory
Supply class Asynchronous data stream with multiple subscribers
Systemic role Information related to the build system
Tap class Subscription to a Supply
Telemetry class Collect performance state for analysis
Telemetry::Instrument::Thread class Instrument for collecting Thread data
Telemetry::Instrument::ThreadPool class Instrument for collecting ThreadPoolScheduler data
Telemetry::Instrument::Usage class Instrument for collecting getrusage data
Telemetry::Period class Performance data over a period
Telemetry::Sampler class Telemetry instrument pod
Test module Writing and running tests
Thread class Concurrent execution of code (low-level)
ThreadPoolScheduler class Scheduler that distributes work among a pool of threads
UInt class Unsigned integer (arbitrary-precision)
Uni class A string of Unicode codepoints
VM class Perl 6 Virtual Machine related information
ValueObjAt class Unique identification for value types
Variable class Object representation of a variable for use in traits
Version class Module version descriptor
Whatever class Placeholder for the value of an unspecified argument
WhateverCode class Code object constructed by Whatever-currying
X::AdHoc class Error with a custom message
X::Anon::Augment class Compilation error due to augmenting an anonymous package
X::Anon::Multi class Compilation error due to declaring an anonymous multi
X::Assignment::RO class Exception thrown when trying to assign to something read-only
X::Attribute::NoPackage class Compilation error due to declaring an attribute outside of a package
X::Attribute::Package class Compilation error due to declaring an attribute in an ineligible package
X::Attribute::Required class Compilation error due to not declaring an attribute with the is required trait
X::Attribute::Undeclared class Compilation error due to an undeclared attribute
X::Augment::NoSuchType class Compilation error due to augmenting a non-existing type
X::Bind class Error due to binding to something that is not a variable or container
X::Bind::NativeType class Compilation error due to binding to a natively typed variable
X::Bind::Slice class Error due to binding to a slice
X::Caller::NotDynamic class Error while trying to access a non dynamic variable through CALLER
X::Channel::ReceiveOnClosed class Error due to calling receive on a closed channel
X::Channel::SendOnClosed class Error due to calling send on a closed channel
X::Comp role Common role for compile-time errors
X::Composition::NotComposable class Compilation error due to composing an ineligible type
X::Constructor::Positional class Error due to passing positional arguments to a default constructor
X::Control class Role for control exceptions
X::ControlFlow class Error due to calling a loop control command in an ineligible scope
X::ControlFlow::Return class Error due to calling return outside a routine
X::DateTime::TimezoneClash class Error due to using both time zone offset and :timezone
X::Declaration::Scope class Compilation error due to a declaration with an ineligible scope
X::Declaration::Scope::Multi class Compilation error due to declaring a multi with an ineligible scope
X::Does::TypeObject class Error due to mixing into a type object
X::Dynamic::NotFound class Runtime error thrown when a dynamic variable does not exist
X::Eval::NoSuchLang class Error due to specifying an unknown language for EVAL
X::Export::NameClash class Compilation error due to exporting the same symbol twice
X::IO role IO related error
X::IO::Chdir class Error while trying to change the working directory
X::IO::Chmod class Error while trying to change file permissions
X::IO::Copy class Error while trying to copy a file
X::IO::Cwd class Error while trying to determine the current working directory
X::IO::Dir class Error while trying to get a directory's contents
X::IO::DoesNotExist class Error while doing file tests on a non existing path
X::IO::Link class Error while trying to create a link
X::IO::Mkdir class Error while trying to create a directory
X::IO::Move class Error while trying to move a file
X::IO::Rename class Error while trying to rename a file or directory
X::IO::Rmdir class Error while trying to remove a directory
X::IO::Symlink class Error while trying to create a symbolic link
X::IO::Unlink class Error while trying to remove a file
X::Inheritance::NotComposed class Error due to inheriting from a type that's not composed yet
X::Inheritance::Unsupported class Compilation error due to inheriting from an ineligible type
X::Method::InvalidQualifier class Error due to calling a qualified method from an ineligible class
X::Method::NotFound class Error due to calling a method that isn't there
X::Method::Private::Permission class Compilation error due to calling a private method without permission
X::Method::Private::Unqualified class Compilation error due to an unqualified private method call
X::Mixin::NotComposable class Error due to using an ineligible type as a mixin
X::NYI class Error due to use of an unimplemented feature
X::NoDispatcher class Error due to calling a dispatch command in an ineligible scope
X::Numeric::Real class Error while trying to coerce a number to a Real type
X::OS role Error reported by the operating system
X::Obsolete class Compilation error due to use of obsolete syntax
X::OutOfRange class Error due to indexing outside of an allowed range
X::Package::Stubbed class Compilation error due to a stubbed package that is never defined
X::Parameter::Default class Compilation error due to an unallowed default value in a signature
X::Parameter::MultipleTypeConstraints class Compilation error due to a parameter with multiple type constraints
X::Parameter::Placeholder class Compilation error due to an unallowed placeholder in a signature
X::Parameter::Twigil class Compilation error due to an unallowed twigil in a signature
X::Parameter::WrongOrder class Compilation error due to passing parameters in the wrong order
X::Phaser::Multiple class Compilation error due to multiple phasers of the same type
X::Phaser::PrePost class Error due to a false return value of a PRE/POST phaser
X::Placeholder::Block class Compilation error due to a placeholder in an ineligible block
X::Placeholder::Mainline class Compilation error due to a placeholder in the mainline
X::Pod role Pod related error
X::Proc::Async role Exception thrown by Proc::Async
X::Proc::Async::AlreadyStarted class Error due to calling start on an already started Proc::Async object
X::Proc::Async::BindOrUse class Error due to trying to bind a handle that is also used
X::Proc::Async::CharsOrBytes class Error due to tapping the same Proc::Async stream for both text and binary reading
X::Proc::Async::MustBeStarted class Error due to interacting with a Proc::Async stream before spawning its process
X::Proc::Async::OpenForWriting class Error due to writing to a read-only Proc::Async object
X::Proc::Async::TapBeforeSpawn class Error due to tapping a Proc::Async stream after spawning its process
X::Proc::Unsuccessful class Exception thrown if a Proc object is sunk after the process it ran exited unsuccessfully
X::Promise::CauseOnlyValidOnBroken class Error due to asking why an unbroken promise has been broken.
X::Promise::Vowed class Error due to directly trying to keep/break a vowed promise.
X::Redeclaration class Compilation error due to declaring an already declared symbol
X::Role::Initialization class Error due to passing an initialization value to an ineligible role
X::Scheduler::CueInNaNSeconds class Error caused by passing NaN to Scheduler.cue as :at, :in, or :every
X::Seq::Consumed class Error due to trying to reuse a consumed sequence
X::Sequence::Deduction class Error due to constructing a sequence from ineligible input
X::Signature::NameClash class Compilation error due to two named parameters with the same name
X::Signature::Placeholder class Compilation error due to placeholders in a block with a signature
X::Str::Numeric class Error while trying to coerce a string to a number
X::StubCode class Runtime error due to execution of stub code
X::Syntax role Syntax error thrown by the compiler
X::Syntax::Augment::WithoutMonkeyTyping class Compilation error due to augmenting a type without the MONKEY-TYPING pragma
X::Syntax::Comment::Embedded class Compilation error due to a malformed inline comment
X::Syntax::Confused class Compilation error due to unrecognized syntax
X::Syntax::InfixInTermPosition class Compilation error due to an infix in term position
X::Syntax::Malformed class Compilation error due to a malformed construct (usually a declarator)
X::Syntax::Missing class Compilation error due to a missing piece of syntax
X::Syntax::NegatedPair class Compilation error due to passing an argument to a negated colonpair
X::Syntax::NoSelf class Compilation error due to implicitly using a self that is not there
X::Syntax::Number::RadixOutOfRange class Compilation error due to an unallowed radix in a number literal
X::Syntax::P5 class Compilation error due to use of Perl 5-only syntax
X::Syntax::Perl5Var class Compilation error due to use of Perl 5-only default variables
X::Syntax::Regex::Adverb class Compilation error due to an unrecognized regex adverb
X::Syntax::Regex::SolitaryQuantifier class Compilation error due to a regex quantifier without preceding atom
X::Syntax::Reserved class Compilation error due to use of syntax reserved for future use
X::Syntax::Self::WithoutObject class Compilation error due to invoking self in an ineligible scope
X::Syntax::Signature::InvocantMarker class Compilation error due to a misplaced invocant marker in a signature
X::Syntax::Term::MissingInitializer class Compilation error due to declaring a term without initialization
X::Syntax::UnlessElse class Compilation error due to an unless clause followed by else
X::Syntax::Variable::Match class Compilation error due to declaring a match variable
X::Syntax::Variable::Numeric class Compilation error due to declaring a numeric symbol
X::Syntax::Variable::Twigil class Compilation error due to an unallowed twigil in a declaration
X::Temporal role Error related to DateTime or Date
X::Temporal::InvalidFormat class Error due to using an invalid format when creating a DateTime or Date
X::TypeCheck class Error due to a failed type check
X::TypeCheck::Assignment class Error due to a failed type check during assignment
X::TypeCheck::Binding class Error due to a failed type check during binding
X::TypeCheck::Return class Error due to a failed typecheck during return
X::TypeCheck::Splice class Compilation error due to a macro trying to splice a non-AST value
X::Undeclared class Compilation error due to an undeclared symbol
atomicint class Integer (native storage at the platform's atomic operation size)
int class Native integer
utf8 class Mutable uint8 buffer for utf8 binary data