Blog
All articles. All pillars. All authors.
#031 -- FLIN's Type System: Inferred, Expressive, Safe
How we designed FLIN's type system to be inferred by default, expressive when needed, and safe at compile time -- without the verbosity tax of traditional typed languages.
#032 -- Union Types and Type Narrowing
How we implemented union types in FLIN -- the int | text | bool syntax, type narrowing through control flow, and the Rust compiler infrastructure that makes it all work.
#033 -- Generic Types in FLIN
How we implemented generic types in FLIN -- type parameters, generic functions, generic type aliases, and the lexer trick that distinguishes Option<T> from <div>.
#038 -- The Pipeline Operator: Functional Composition in FLIN
How we implemented the pipeline operator in FLIN -- the |> syntax for functional composition, its parser transformation to function calls, and the developer experience it unlocks.
#039 -- Tuples, Enums, and Structs
How we designed FLIN's three fundamental data structures -- tuples for anonymous grouping, enums for named alternatives, and entity structs for persistent records.
#040 -- Type Guards and Runtime Type Narrowing
How FLIN's is operator enables runtime type checking with compile-time type narrowing -- the bridge between dynamic values and static safety.
#023 -- Closures and Higher-Order Functions in the VM
Implementing closures and higher-order functions in FLIN's virtual machine: upvalues and capture semantics.
#024 -- How the VM Executes Views
How FLIN's VM executes views: from bytecode opcodes to HTML rendering with reactive attribute binding.
#026 -- Hot Module Reload in 42ms
FLIN's hot module reload: file changes compiled and in the browser in under 50ms, with state preserved.
#027 -- Async and Concurrency in the VM
Async execution and concurrency in FLIN's VM: WebSocket support, concurrent tasks, and event loop design.
#044 -- Labeled Loops and Or-Patterns
How we implemented labeled loops and or-patterns in FLIN -- breaking from outer loops by name, combining match arms with pipe syntax, and the compiler changes that support them.
#048 -- Temporal Integration: From Bugs to 100% Test Coverage
The honest war story of how eight sessions of debugging, auditing, and fixing brought FLIN's temporal model from a broken stub to 100% test coverage.