 However, Booleans were encoded as lists, recycling the empty list as Boolean false and the non-empty list as Boolean true.Recursion was added later as a byproduct of formalization.However, static type checking was introduced only in Version 3.