[Main website]


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.