Id (programming language)

The major subset of Id is a purely functional programming language with non-strict semantics.

Features include: higher-order functions, a Milner-style statically type-checked polymorphic type system with overloading, user defined types and pattern matching, and prefix and infix operators.

The MVar synchronisation variable abstraction in Haskell is based on Id's M-structures.

[3] Id supports algebraic datatypes, similar to ML, Haskell, or Miranda: Types are inferred by default, but may be annotated with a typeof declaration.

However, to avoid nonterminating construction of truly infinite structures, explicit delays must be annotated using #: