- 1. Introduction to Flix
- 2. Getting Started
- 2.1. Hello World!
- 2.2. Next Steps
- 3. Data Types
- 3.1. Primitives
- 3.2. Tuples
- 3.3. Enums
- 3.4. Type Aliases
- 4. Functions
- 5. Immutable Data
- 5.1. Lists
- 5.2. Chains and Vectors
- 5.3. Sets and Maps
- 5.4. Records
- 6. Mutable Data
- 6.1. Regions
- 6.2. References
- 6.3. Arrays
- 6.4. Structs
- 6.5. Collections
- 7. Control Structures
- 7.1. If-Then-Else
- 7.2. Pattern Matching
- 7.3. Foreach
- 7.4. Monadic For-Yield
- 7.5. Applicative For-Yield
- 8. Effect System
- 8.1. Primitive Effects
- 8.2. Effect Polymorphism
- 8.3. Effects and Handlers
- 8.4. Library Effects
- 8.5. Effect-Oriented Programming
- 9. Modules
- 9.1. Declaring Modules
- 9.2. Using Modules
- 9.3. Companion Modules
- 10. Traits
- 10.1. Essential Traits
- 10.2. Automatic Derivation
- 10.3. Associated Types
- 10.4. Associated Effects
- 10.5. Higher-Kinded Types
- 11. Structured Concurrency
- 12. Parallelism
- 13. Interoperability with Java
- 13.1. Creating Objects
- 13.2. Calling Methods
- 13.3. Reading and Writing Fields
- 13.4. Classes and Interfaces
- 13.5. Nested and Inner Classes
- 13.6. Exceptions
- 13.7. Boxing and Unboxing
- 13.8. Java Collections
- 14. Fixpoints
- 14.1. Stratified Negation
- 14.2. Local Predicates
- 14.3. Functional Predicates
- 14.4. Lattice Semantics
- 15. Everyday Programming
- 15.1. The Main Function
- 15.2. Printing to Standard Out
- 15.3. String Interpolation
- 15.4. Tail Recursion
- 15.5. Anonymous and Named Holes
- 15.6. Type Ascriptions
- 15.7. Redundancy
- 15.8. Debugging
- 16. Tools
- 16.1. Visual Studio Code
- 16.2. Test Framework
- 17. Build and Packages
- 17.1. Build
- 17.2. Packages
- 17.3. Publish
- 17.4. Outdated
- 18. Advanced Features
- 18.1. Checked Casts
- 18.2. Unchecked Casts
- 18.3. Bugs and Unreachable Code
- 18.4. Laziness
- 18.5. Type Match
- 18.6. Purity Reflection
- 18.7. Type-Level Programming
- 19. Common Problems
- 20. Frequently Asked Questions
- 21. Glossary
- 22. Additional Information
- 22.1. Research Literature
- 22.2. Blog Posts
- 22.3. Videos
- 23. Appendix
- 23.1. Legal Identifiers
- 23.2. Operator Precedence