'Are Haskell data types with only nullary or unary constructors considered as Algebraic Data Types?

To my limited knowledge Algebraic Data Types in Haskell can be of two forms namely, sums (e.g. data Bool = True | False) or products (e.g. data Pair = P Int Double). Below are some data types with nullary and unary value constructors.

data Z  = Z
data S n = S n  -- I think that this is a singleton type?
data S = S Int

Are these types considered as algebraic data types? If so what are they called?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source