The sequential subset of Erlang supports eager evaluation, single assignment, and dynamic typing. The arguments can be primitive data types or compound data types. Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. Ports are used to communicate with the external world. Haskell features a type system with type inference and lazy evaluation.