Ωmega is a new programming language by Tim Sheard which is descended from Haskell and adds new facilities for defining static type constraints, such as allowing "users to write functions at the level of types, and then use those functions in the type of functions at value level". It also has "equality qualified types". See also Programming with Static Invariants in Omega and the manual for more information. Mentioned previously (in passing) on LtU.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Not to be confused

With the robot tank programming game circa Amiga vintage of the same name :-)


Or the other programming language that was named Omega.

Blaschek, G. "Type-Safe Object-Oriented Programming with Prototypes The Concept of Omega", Structured Programming 12:217-225 (1991).

A Framework for Extended Algebraic Data Types

This paper discusses the interaction between type classes and generalized algebraic data types. Their system seems nearly equivalent to Omega, with type classes with functional dependencies replacing type functions. The main difference is Omega's algebraic kind system, but a value of a "Singleton Type" is also a proof that the type argument was assembled in a certain way, so I don't see much to gain from the extendible kind system. Perhaps it's mostly intended to help avoid errors when writing out type definitions?

The technical report

The technical report associated with the above talk can be found here.

Version 1.3

As of november 13, 2006 version 1.3 has been available. As the website states: Many bug fixes. New way to handle type-functions using narrowing. New implementation of discharging static constraints. Much improved error messages.

Version 1.4

Feb. 27, 2007, Version 1.4.
A completely rewritten constraint solving mechanism. The "theorem" declaration, rewriting, backchaining, and refinement lemmas. Syntactic extension. Improved module system. Tracing directives, and bounds setting diectives. Many bug fixes and improved error messages.