- 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. Default Handlers
- 8.5. Effect-Oriented Programming
- 9. Library Effects
- 9.1. Assert
- 9.2. Clock
- 9.3. Console
- 9.4. Env
- 9.5. Exit
- 9.6. FileSystem
- 9.7. Http and Https
- 9.8. Logger
- 9.9. Process
- 9.10. Random
- 9.11. Sleep
- 10. Modules
- 10.1. Declaring Modules
- 10.2. Using Modules
- 10.3. Companion Modules
- 11. Traits
- 11.1. Essential Traits
- 11.2. Automatic Derivation
- 11.3. Associated Types
- 11.4. Associated Effects
- 11.5. Higher-Kinded Types
- 12. Structured Concurrency
- 13. Parallelism
- 14. Interoperability with Java
- 14.1. Creating Objects
- 14.2. Calling Methods
- 14.3. Reading and Writing Fields
- 14.4. Classes and Interfaces
- 14.5. Nested and Inner Classes
- 14.6. Exceptions
- 14.7. Boxing and Unboxing
- 14.8. Java Collections
- 15. Fixpoints
- 15.1. Stratified Negation
- 15.2. Local Predicates
- 15.3. Functional Predicates
- 15.4. Lattice Semantics
- 16. Everyday Programming
- 16.1. The Main Function
- 16.2. Printing to Standard Out
- 16.3. String Interpolation
- 16.4. Tail Recursion
- 16.5. Anonymous and Named Holes
- 16.6. Type Ascriptions
- 16.7. Redundancy
- 16.8. Debugging
- 17. Tools
- 17.1. Visual Studio Code
- 17.2. Test Framework
- 18. Build and Packages
- 18.1. Build
- 18.2. Packages
- 18.3. Publish
- 18.4. Outdated
- 19. Advanced Features
- 19.1. Checked Casts
- 19.2. Unchecked Casts
- 19.3. Bugs and Unreachable Code
- 19.4. Laziness
- 19.5. Purity Reflection
- 19.6. Type-Level Programming
- 19.7. Termination Checking
- 20. Common Problems
- 21. Frequently Asked Questions
- 22. Glossary
- 23. Additional Information
- 23.1. Research Literature
- 23.2. Blog Posts
- 23.3. Videos
- 23.4. For LLMs