• An n-tuple is a collection of values, e.g. (1, "a", x -> x + 2).

  • A record is an n-tuple with named fields. Usually the order of fields is not significant in records.

  • Serializing is encoding an object/value to another data format, such as JSON.

    • Inverse with Deserializing (decoding)
  • Marshalling is a form of serializing that crosses the type system. Usually with regards to FFI.

  • Foreign Function Interface (FFI) is calling another language/runtime system, and converting it to the current one.

  • A Type Variable is an identifier that represents the notion of “any” type in a type declaration

    • These are used in polymorphic contexts
    • Multiple type variables in a function signature are allowed to resolve to the same type
  • Polymorphism is the generalization of a language construct to multiple types. Formally, this means a term can have multiple types.

  • Ad-Hoc Polymorphism

  • Parametric Polymorphism

  • Row Polymorphism

  • Subtype/Inclusion Polymorphism

  • Linking

  • Static Linking

  • Dynamic Linking

  • Compilation Unit

  • Module

  • Interface


  • Immutable Data Structures (Persistence)

  • Stack/Heap

  • Garbage Collection

  • Atomic

  • Dependent Types

  • Abstract Interpretation