On this page:
Rebellion
7.7

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 Equivalence Relations

      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 Ranges

        1.11.1 Range Data Model

          1.11.1.1 Types of Ranges

          1.11.1.2 Range Bounds

        1.11.2 Range Constructors

        1.11.3 Querying Ranges

        1.11.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 Record Types

      2.3 Tuple Types

        2.3.1 Tuple Type Information

        2.3.2 Tuple Type Descriptors

        2.3.3 Dynamically Implementing Tuple Types

        2.3.4 Tuple Chaperones and Impersonators

      2.4 Enum Types

      2.5 Singleton Types

      2.6 Wrapper Types

        2.6.1 Wrapper Descriptors

        2.6.2 Wrapper Type Properties

      2.7 Object Types

        2.7.1 Object Type Information

        2.7.2 Object Type Descriptors

        2.7.3 Dynamically Implementing Object Types

        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.2 Transducers

        3.2.1 Element-Transforming Transducers

        3.2.2 Element-Removing Transducers

        3.2.3 Element-Rearranging Transducers

        3.2.4 Transducer Composition

        3.2.5 The Transduction Protocol

        3.2.6 Transducer Contracts

        3.2.7 Transducer Chaperones and Impersonators

        3.2.8 Debugging Transducers

        3.2.9 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.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 Keysets

      4.13 Records

        4.13.1 Record Fields

      4.14 Tables

        4.14.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

    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