This is a list of the built-in types that are documented, sorted by class/enum/module/role and by categories.

Basic classes

Unsigned integer (arbitrary-precision)

Abstract representation of a piece of source code

Dual value number and string


Code object with its own lexical scope

Captures the current frame state

Code object

Encapsulates instructions about how strings should be sorted

Information related to the compiler that is being used

Complex number

Dual value complex number and string

Object that can be treated as both a string and number

Scheduler that synchronously executes code on the current thread

Calendar date

Calendar date with time




Every one of the resources installed with a distribution

Length of time

Management of available encodings

Rational number (arbitrary-precision)

Rakudo-specific class that wraps around code in other languages (generally NQP)

An object for performing batches of work in parallel with ordered output

Placeholder for multiple unspecified values/arguments

Specific moment in time

Integer (arbitrary-precision)

Dual value integer and string

Logical superposition of values

Tagged location in the source code

A non-blocking, non-re-entrant, mutual exclusion lock

Compile-time routine

Member function

The root of the Raku type hierarchy.

Absence of a value or a benign failure

Floating-point number

Dual value floating-point number and string

Unique identification for an object

Element of a Signature

Perl related information

Item container with custom storage and retrieval

Performs batches of work in parallel without respecting original order.

Raku related information

Rational number (limited-precision)

Dual value rational number and string

Code object with its own lexical scope and return handling

Holds all information needed to unwrap a wrapped routine.

A mostly transparent container used for indirections

Parameter list pattern

String of characters

Contains the result of a string transformation.


Member function that is not inherited by subclasses

Collect performance state for analysis

Instrument for collecting Thread data

Instrument for collecting ThreadPoolScheduler data

Instrument for collecting getrusage data

Performance data over a period

Telemetry instrument pod

Unique identification for value types

Object representation of a variable for use in traits

Module version descriptor

Placeholder for the value of an unspecified argument

Code object constructed by Whatever-currying

Integer (native storage at the platform's atomic operation size)

Native integer

Namespace for holding RakuAST related classes

Number or object that can act as a number

Composite classes

Sequence of itemized values

Immutable collection of distinct objects with integer weights

Mutable collection of distinct objects with integer weights

Argument list suitable for passing to a Signature

Mapping from strings to itemized values

Sequence of values

Immutable mapping from strings to values

Immutable collection of distinct objects with Real weights

Mutable collection of distinct objects with Real weights

Codepoint string in Normal Form C (composed)

Codepoint string in Normal Form D (decomposed)

Codepoint string in Normal Form KC (compatibility composed)

Codepoint string in Normal Form KD (compatibility decomposed)

Key/value pair

Stash type for pseudo-packages

Interval of ordered values

An iterable, potentially lazy sequence of values

Immutable collection of distinct objects

Mutable collection of distinct objects

A kind of List that automatically flattens into an outer container

Table for "our"-scoped symbols

A string of Unicode codepoints

Mutable uint8 buffer for utf8 binary data

Basic enums

Logical Boolean

Indicate endianness (6.d, 2018.12 and later)

Domain-specific enums

Human readable form for comparison operators.

Module modules

Writing and running tests

Basic roles

Invocable code object

Object that can be treated as a date


Support for character encodings.

Iterators that can predict number of values

Number stored as numerator and denominator

Non-complex number

String or object that can act as a string

Composite roles

Object that supports looking up values by key

Collection of distinct weighted objects

Immutable buffer for binary data ('Binary Large OBject')

Mutable buffer for binary data

Working with the role behind the enum type

Interface for container objects that can be iterated over

Generic API for producing a sequence of values

Collection of distinct objects with Real weights

Object that supports looking up values by index

Failover for binding to a Positional

Object hashes with a limitation on the type of values

Common methods of sequences

Collection of distinct objects

Domain-specific roles



Input/output related routines

Network socket

Scheme for automatically assigning tasks to threads

Information related to the build system

Exception roles

Common role for compile-time errors

IO related error

Error reported by the operating system

Pod related error

Exception thrown by Proc::Async

Syntax error thrown by the compiler

Error related to DateTime or Date

Metamodel roles

Metaobject that can hold attributes

Metaobject that supports the C3 method resolution order

Metarole for documenting types.

Metaobject supporting object finalization

Metaobject that supports resolving inherited methods

Metaobject that supports storing and introspecting methods

Metaobject for generating mixins

Metaobject that supports multiple inheritance

Metaobject that supports named types

Represents a group of roles with different parameterizations

Represents a non-instantiated, parameterized, role.

Metaobject that supports private methods

Metaobject that supports holding/containing roles

Metaobject that supports punning of roles.

Metarole for type stashes

Metaobject that supports trust relations between types

Metaobjects that support versioning