... This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
... If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

(.require
 [library
  [lux (.except)
   ["$" documentation]]]
 [\\library
  ["[0]" /]])

(the .public documentation
  (.List $.Documentation)
  (list ($.module /._
                  "")

        ($.definition /.let
          "Locally-defined mutually-recursive functions."
          ($.example (' (let [(even? number)
                              (-> Natural Bit)
                              (when number
                                0 true
                                _ (odd? (-- number)))

                              (odd? number)
                              (-> Natural Bit)
                              (when number
                                0 false
                                _ (even? (-- number)))]
                          (and (even? 4)
                               (odd? 5))))))

        ($.definition /.def
          "Globally-defined mutually-recursive functions."
          ($.example (' (def
                         [.public (even? number)
                          (-> Natural Bit)
                          (when number
                            0 true
                            _ (odd? (-- number)))]

                         [.public (odd? number)
                          (-> Natural Bit)
                          (when number
                            0 false
                            _ (even? (-- number)))]))))
        ))
