# Summary [The Puck Programming Language](../README.md) - [Basic Usage](OVERVIEW.md) - [Variables and Comments]() - [Basic Types]() - [Functions and Calls]() - [Boolean and Integer Operations]() - [Conditionals and Control Flow]() - [Error Handling]() - [Loops and Iterators]() - [Modules]() - [Compile-time Programming]() - [Async and Threading]() - [Advanced Types]() - [Syntax](SYNTAX.md) - [Indentation Rules [todo]]() - [Reserved Keywords]() - [A Formal Grammar]() - [Type System](TYPES.md) - [Basic Types]() - [Parameter Types]() - [Reference Types]() - [Abstract Types]() - [Advanced Types]() - [Module System](MODULES.md) - [Using Modules]() - [Implicit Modules]() - [Defining Module Interfaces [todo]]() - [Defining an External API [todo]]() - [Error Handling](ERRORS.md) - [Errors as Monads]() - [Errors as Catchable Exceptions]() - [Errors and Void Functions [todo]]() - [Unrecoverable Exceptions]() - [Async System](ASYNC.md) - [Threading [todo]]() - [Metaprogramming](METAPROGRAMMING.md) - [Memory Management [todo]]() - [Reference Counting Optimizations]() - [Annotations and Ownership]() - [Language Interop [draft]](INTEROP.md) - [Rust, Swift, Nim]() - [Java, Kotlin]() - [Python, Racket, C]() - [Refinement Types [draft]]() - [Dependent Types [draft]]() - [Effects System [draft]]()