Established: April 13, 2012




Koka is a function-oriented programming language that seperates pure values from side-effecting computations, where the effect of every function is automatically inferred. Koka has many features that help programmers to easily change their data types and code organization correctly, while having a small language core with a familiar JavaScript like syntax.

The Koka project tries to see if effect inference can be used on larger scale programming. The language is strict (as in ML), but seperates pure values from side effecting computations (as in Haskell). Through the effect types, there is also a strong connection to its denotational semantics, where the effect type of each function has a direct translation to the type signature of the denotational function.
Recently, Koka fully supports user-defined effects through algebraic effect handlers.

  • Read the “Koka book“; consisting of an introduction and language specification.
  • Browse the Library documentation.
  • You can try out programming in Koka live at the Koka Tutorial.
  • For more technical information, see:
    • A technical report about Algebraic Effects in Koka: Algebraic Effects for Functional Programming, Aug 2016
    • A paper on the type inference system and semantics of Koka: Koka: Programming with Row Polymorphic Effect Types, Mar 2014
    • The slides of a talk presented Lang.Next. Apr 2012.
  • Browse the repository at github.com/koka-lang/koka