A sum type is an Algebraic Data Type that represents a choice of possibilities. For example, in Haskell the Maybe type has two variants, Nothing and Just.