Tag
A 79-minute deep-dive blog post demonstrating how to implement full Haskell-like type class resolution in Java, covering type unification, witness resolution, higher-kinded types, and examples like Functor, Applicative, and Monad.
A blog post highlighting why 2026 is a landmark year for the Rust compiler, with the next-gen trait solver, the Polonius borrow checker, the parallel frontend nearing stabilization, and significant LLVM performance gains all converging at once.
A blog post showing how to eliminate a TypeScript `as unknown as` type assertion by using `Object.assign` with a real `Response` object, and explaining how intersection types with `unknown` make it type-check safely.
Ante 语言设计者介绍了一种新的借用检查方案,通过融合 group borrowing 等思想,在保持无悬垂指针安全的前提下,实现零成本的循环可变性与更宽松的共享可变性检查。
A guide on writing stateful effect handlers in the EYG programming language, covering single-effect counters, generic Update/State effects, effect bouncing for testing, and pitfalls when returning functions from effects due to recursive type errors.
A blog post explaining Haskell's Kind system, covering values, types, kinds, higher-kinded types/data, and custom kinds through the author's experience adding typed configuration to a Haskell Redis server clone.
Futhark 团队总结了其类型检查器中别名传播(alias propagation)相关开放问题的最终解决方案,重点介绍了利用参数性(parametricity)推断更精确的 freshness 类型,以改善高阶函数与别名交互时的人体工学。
Rust设计者Niko Matsakis在博客中论证,为了支持循环trait实现(cyclic trait impls),Rust的supertrait验证必须采用「模块化证明」策略(由impl自身保证supertrait成立),而「外部化证明」策略与Rust现有设计不兼容。
Vx is a systems programming language for heterogeneous computing (CPU, GPU, NPU) that encodes device memory topologies directly in its type system, using machine files and formal verification to catch data-movement and memory bugs at compile time.
Eli Bendersky applies the 'Parse, don't validate' pattern to Rust, demonstrating how to use type systems to enforce invariants and improve code clarity with examples from the standard library and crates like nonempty.
The author shares a Rust programming technique to improve type safety by creating individual types for each variant of an enum, specifically for path components, based on std::path::Component.
The article discusses how Rust can simulate named arguments using its type system with structs, offering an ergonomic alternative without new language features.
The article examines the complexities of aliasing in type systems for programming languages, using Futhark's in-place updates as an example, and warns about the design challenges it can introduce.
In the next release of ty, full support for recursive implicit type aliases is implemented using mu types.
Rust has stabilized its 'never' type after over two years of development, a feature that enables more efficient generic code and simplifies type inference in the language.
The article discusses the recent addition of the empty type in Rust, explaining the difference between empty and bottom types and how it affects type coercion in the language.
This article argues that Runtime Type Information (RTTI) has a linear cost, while Compile-Time Type Information (CTTI) can lead to exponential costs in compilation time and binary size, challenging the assumption that CTTI is zero-cost.
After over a decade of instability and failed attempts, the never type in Rust has been stabilized on nightly releases, marking a significant development for the programming language.
The Rust blog announces the enablement of the next-generation trait solver on nightly, a major compiler update that replaces core type system components, fixes over 200 issues, and is planned for stabilization.
The article argues that assembly is actually typed and presents Odin's inline assembler as the best implementation due to its deep integration with the language's type system and semantic diagnostics.