A walkthrough of the fundamental aspects of the design of Ribbon, from type systems to implementation.
Contents
- Algebraic Effects - Separating What from How for composable side effects
- Composable Allocation Strategies - Fine-grained, user-controlled memory management
- Domain Specific Languages - A first-class language for building languages
- Hot Module Reloading - Live coding with type-safe state preservation
- Metaprogramming - A powerful, unified, and safe system for code that writes code
- Modules - The unit of compilation and configuration for an extensible language
- Phantom Types - Zero-cost guarantees in the type system
- Row Types - The unifying theory of effects and structures
- Structural Data - Polymorphism over shape and memory layout
- Toolkit API - The language and toolchain as a unified toolkit
- Type Classes - Defining shared behavior across types
- Type Kinds - Abstracting over abstractions with higher-kinded types