Koka: Programming with Row Polymorphic Effect Types
Not on the map. Why?
Abstract (arXiv)
We propose a programming model where effects are treated in a disciplined way, and where the potential side-effects of a function are apparent in its type signature. The type and effect of expressions can also be inferred automatically, and we describe a polymorphic type inference system based on Hindley-Milner style inference. A novel feature is that we support polymorphic effects through row-polymorphism using duplicate labels. Moreover, we show that our effects are not just syntactic labels but have a deep semantic connection to the program. For example, if an expression can be typed without an exn effect, then it will never throw an unhandled exception. Similar to Haskell's `runST` we show how we can safely encapsulate stateful operations. Through the state effect, we can also safely combine state with let-polymorphism without needing either imperative type variables or a syntactic value restriction. Finally, our system is implemented fully in a new language called Koka and has been used successfully on various small to medium-sized sample programs ranging from a Markdown processor to a tier-splitted chat application. You can try out Koka live at www.rise4fun.com/koka/tutorial.
Key facts. Cited by 3 papers in the map (data through 14 Oct 2026). First posted on arXiv 9 Jun 2014.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 0; 2025: 1; 2026: 1.
3 papers.
- 2023Coop: Memory is not a Commoditycited by 3
- 2025Towards Automated Formal Verification of Backend Systems with LLMscited by 1
- 2026ETAS: An Effect-Typed Language for Agent Systemscited by 0
- 2026ETAS: An Effect-Typed Language for Agent Systems20 Jul 2026
- 2025Towards Automated Formal Verification of Backend Systems with LLMs13 Apr 2025
- 2023Coop: Memory is not a Commodity1 Nov 2023