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.
Collections
7.
Control Structures
7.1.
If-Then-Else
7.2.
Pattern Matching
7.3.
Foreach
7.4.
Foreach-Yield
7.5.
Monadic For-Yield
7.6.
Applicative For-Yield
8.
Structured Concurrency
9.
Parallelism
10.
Effect System
11.
Modules
11.1.
Declaring Modules
11.2.
Using Modules
11.3.
Companion Modules
12.
Type Classes
12.1.
Essential Classes
12.2.
Automatic Derivation
12.3.
Higher-Kinded Types
13.
Laziness
14.
Fixpoints
14.1.
Stratified Negation
14.2.
Local Predicates
14.3.
Functional Predicates
14.4.
Lattice Semantics
15.
Interoperability
15.1.
Creating Objects
15.2.
Calling Methods
15.3.
Reading and Writing Fields
15.4.
Classes and Interfaces
15.5.
Nested and Inner Classes
15.6.
Exceptions
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
19.
Advanced Features
19.1.
Checked Casts
19.2.
Unchecked Casts
19.3.
Bugs and Unreachable Code
19.4.
Type Match
19.5.
Purity Reflection
19.6.
Type-Level Programming
20.
Common Problems
21.
Glossary
22.
Additional Information
22.1.
Research Literature
22.2.
Blog Posts
23.
Appendix
23.1.
Legal Identifiers
23.2.
Operator Precedence
Light (default)
Rust
Coal
Navy
Ayu
Programming Flix
Appendix
The appendix covers technical details such as:
Legal Identifiers
Operator Precedence