# pl/cl-nil

In Haskell there is CT creating an algebra. In CL there is the management of nil that resembles a smart algebra, effective for many examples of CL code:

• nil is equal to false
• empty list is nil
• every value different from nil is true
• in CL every value can be considered like a boolean
• and, or and other functions working on booleans are extremely composable, because they recognize when something fail.

Probably this behaviour is similar to the Dok transaction-logic behaviour.