On this page:
Rebellion
8.12

Rebellion🔗ℹ

 (require rebellion) package: rebellion

Rebellion is a collection of core Racket libraries that includes a stream processing system built on transducers and reducers, new kinds of collections such as multisets and multidicts, a suite of libraries for defining new struct-based types including record types and enum types, and much more. The goal of Rebellion is to make high quality standard libraries accessible to all Racketeers regardless of what #lang they’re using.

    1 Base Libraries

      1.1 Generative Tokens

      1.2 Immutable Strings

      1.3 Uncallable Functions

      1.4 Option Values

        1.4.1 Contracts for Option Values

      1.5 Pairs

      1.6 Results

        1.6.1 Successful Results

        1.6.2 Failed Results

      1.7 Symbols

      1.8 Variants

      1.9 Converters

        1.9.1 Predefined Converters

        1.9.2 Converter Utilities

      1.10 Comparators

        1.10.1 Constructing Comparators

        1.10.2 Predefined Comparators

        1.10.3 Comparison Constants

        1.10.4 Comparator Contracts

        1.10.5 Comparator Chaperones and Impersonators

      1.11 Equivalence Relations

      1.12 Ranges

        1.12.1 Range Data Model

          1.12.1.1 Types of Ranges

          1.12.1.2 Range Bounds

        1.12.2 Range Constructors

        1.12.3 Querying Ranges

        1.12.4 Operations on Ranges

    2 Data Types

      2.1 Interfaces Common to All Types

        2.1.1 Nominal v.s. Structural Types

        2.1.2 Struct-Based Types and Struct Type Properties

        2.1.3 Type Implementations and Generativity

        2.1.4 Defining Types

        2.1.5 Compile-Time Type Information

      2.2 Tuple Types

        2.2.1 Tuple Type Information

        2.2.2 Tuple Type Descriptors

        2.2.3 Tuple Type Bindings

        2.2.4 Tuple Chaperones and Impersonators

      2.3 Record Types

        2.3.1 Record Type Information

        2.3.2 Record Type Descriptors

        2.3.3 Record Type Bindings

      2.4 Enum Types

        2.4.1 Enum Type Information

        2.4.2 Enum Type Descriptors

        2.4.3 Enum Type Bindings

      2.5 Singleton Types

        2.5.1 Singleton Type Information

        2.5.2 Singleton Type Descriptors

        2.5.3 Singleton Type Bindings

      2.6 Wrapper Types

        2.6.1 Wrapper Type Information

        2.6.2 Wrapper Type Descriptors

        2.6.3 Wrapper Type Bindings

      2.7 Object Types

        2.7.1 Object Type Information

        2.7.2 Object Type Descriptors

        2.7.3 Object Type Bindings

        2.7.4 Object Type Chaperones and Impersonators

      2.8 Struct Descriptors

    3 Streaming Computations

      3.1 Reducers

        3.1.1 Reducer Constructors

        3.1.2 Reducer Operators

        3.1.3 Iteration and Comprehension with Reducers

        3.1.4 Reducer Contracts

        3.1.5 Reducer Chaperones and Impersonators

        3.1.6 Legacy Reduction APIs

      3.2 Transducers

        3.2.1 Transforming Elements with Transducers

        3.2.2 Removing Elements with Transducers

        3.2.3 Adding Elements with Transducers

        3.2.4 Rearranging Elements with Transducers

        3.2.5 Transducer Composition

        3.2.6 The Transduction Protocol

        3.2.7 Transducer Contracts

        3.2.8 Transducer Chaperones and Impersonators

        3.2.9 Debugging Transducers

        3.2.10 Testing Transducers

    4 Collections

      4.1 Choosing Collections

        4.1.1 To Key or Not to Key

        4.1.2 Collection Cheat Sheet

      4.2 Entries

      4.3 Lists

      4.4 Vectors

      4.5 Vector Builders

        4.5.1 Legacy APIs

      4.6 Immutable Vectors

      4.7 Sets

      4.8 Hash Tables

      4.9 Multisets

        4.9.1 Querying Multisets

        4.9.2 Persistently Updating Multisets

        4.9.3 Multiset Iteration and Comprehension

        4.9.4 Multiset Conversions

      4.10 Multidicts

        4.10.1 Persistently Updating Multidicts

        4.10.2 Querying Multidicts

        4.10.3 Multidict Conversions

        4.10.4 Multidict Iterations and Comprehensions

      4.11 Association Lists

      4.12 Sorted Sets

        4.12.1 Constructing Sorted Sets

        4.12.2 Querying Sorted Sets

        4.12.3 Sorted Set Views

          4.12.3.1 Synchronized Sorted Sets

        4.12.4 Modifying Sorted Sets

        4.12.5 Sorted Set Builders

      4.13 Sorted Maps

        4.13.1 Constructing Sorted Maps

        4.13.2 Iterating Sorted Maps

        4.13.3 Querying Sorted Maps

        4.13.4 Sorted Map Views

        4.13.5 Modifying Sorted Maps

        4.13.6 Sorted Map Builders

      4.14 Range Sets

        4.14.1 Constructing Range Sets

        4.14.2 Iterating Range Sets

        4.14.3 Querying Range Sets

        4.14.4 Range Set Views

        4.14.5 Modifying Range Sets

      4.15 Keysets

      4.16 Records

        4.16.1 Record Fields

      4.17 Tables

        4.17.1 Table Iteration and Comprehensions

    5 Concurrency

      5.1 Atomic Booleans

      5.2 Atomic Fixnums

        5.2.1 Basic Atomic Fixnum Operations

        5.2.2 Conditional Atomic Fixnum Operations

        5.2.3 Compound Atomic Fixnum Operations

      5.3 Locks

        5.3.1 A Warning About Deadlocks

        5.3.2 Read-Write Locks

    6 Binary Data

      6.1 Bits

      6.2 Bitstrings

      6.3 Bytes

      6.4 Immutable Bytestrings

    7 Module Utilities

      7.1 Module Bindings

      7.2 Phases

        7.2.1 Execution Phases

        7.2.2 The Label Phase

    8 Other Libraries

      8.1 Custom Write Implementations

      8.2 Equality and Hashing Implementations

        8.2.1 Struct Equality and Hashing

      8.3 Media

        8.3.1 Media Types

      8.4 Octet Streams

      8.5 Permutations

      8.6 Points

      8.7 Text Media

      8.8 Web Graphs

      8.9 Web Links