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

Programming Flix

Videos

A collection of videos about Flix.

Industry Talks

  • Magnus Madsen @ Devoxx Greece 2025: Effectful Programming in the Flix Programming Language
  • Magnus Madsen @ Goto 2023: An Introduction to Functional Imperative Programming in Flix

Research Talks

  • Magnus Madsen @ Onward 2022: The Principles of the Flix Programming Language
  • Matthew Lutze @ ICFP 2023:With or Without You: Programming with Effect Exclusion
  • Matthew Lutze @ PLDI 2024: Associated Effects: Flexible Abstractions for Effectful Programming