1.
What is Chalk?
1.1.
Walkthrough
1.2.
Crates
1.3.
REPL
2.
Contribution guide
3.
Representing and manipulating types
3.1.
The Interner
3.2.
Rust types
3.2.1.
Alias types
3.2.2.
Application types
3.3.
Rust lifetimes
3.4.
Operations
3.4.1.
TypeFoldable and the TypeFolder trait
4.
Lowering Rust IR to logic
4.1.
Goals and clauses
4.2.
Type equality and unification
4.3.
Implied bounds
4.4.
Lowering rules
4.5.
Opaque types (impl Trait)
4.6.
Well known traits
4.7.
Well-formedness checking
4.8.
Coherence
5.
Canonical queries
5.1.
Canonicalization
6.
Chalk engine
6.1.
Major concepts
6.2.
Logic
6.2.1.
Coinduction
6.3.
SLG Solver
7.
Chalk recursive solver
7.1.
The stack
7.2.
Inductive cycles
7.3.
The search graph and caching
7.4.
Coinduction
Appendix A: Glossary and terminology
Appendix B: Bibliography
Appendix C: Incomplete chapters
Appendix D: Publishing Chalk
Light (default)
Rust
Coal
Navy
Ayu
Operations
This chapter describes various patterns and utilities for manipulating Rust types.