anchor.diff:         findSingle (x: x == 3) "none" "multiple" [ 1 9 ]
          => "none"
     */
  -  findSingle = pred: default: multiple: list:
  +  findSingle =
  +    # Predicate
  +    pred:
  +    # Default value to return if element was not found.
  +    default:
  +    # Default value to return if more than one element was found
  +    multiple:
  +    # Input list
  +    list:
       let found = filter pred list; len = length found;
       in if len == 0 then default
         else if len != 1 then multiple
         else head found;
   
     /* Find the first element in the list matching the specified
  -     predicate or returns `default' if no such element exists.
  +     predicate or return `default` if no such element exists.
  +
  +     Type: findFirst :: (a -> bool) -> a -> [a] -> a
   
        Example:
          findFirst (x: x > 3) 7 [ 1 6 4 ]
  
positive.code: 
    /* Remove duplicate elements from the list. O(n^2) complexity.
  
       Example:
  
         unique [ 3 2 3 4 ]
         => [ 3 2 4 ]
     */
  
negative.code: 
    /* Return a list of integers from `first' up to and including `last'.
  
       Type: range :: int -> int -> [int]
  
       Example:
         range 2 4
         => [ 2 3 4 ]
         range 3 2
         => [ ]
    */
    range =
      # First integer in the range
      first:
      # Last integer in the range
      last:
      if first > last then
        []
      else
        genList (n: first + n) (last - first + 1);
  
    /* Splits the elements of a list in two lists, `right` and
       `wrong`, depending on the evaluation of a predicate.
  
       Type: (a -> bool) -> [a] -> { right :: [a], wrong :: [a] }
  
       Example:
         partition (x: x > 2) [ 5 1 2 3 4 ]
  