(.require
 [library
  [lux (.except)
   ["$" documentation]
   [data
    ["[0]" text (.only \n)
     ["%" \\format (.only format)]]]]]
 [\\library
  ["[0]" /]])

(def .public documentation
  (.List $.Documentation)
  (list ($.module /._
                  "Fuzzy logic, implemented on top of the Rev type.")

        ($.definition /.functor)
        ($.definition /.empty)
        ($.definition /.full)
        ($.definition /.union)
        ($.definition /.intersection)
        ($.definition /.complement)
        ($.definition /.of_set)

        ($.definition (/.Fuzzy it)
          "A fuzzy set.")

        ($.definition /.membership
          ""
          [(membership set elem)])

        ($.definition /.difference
          ""
          [(difference sub base)])

        ($.definition /.of_predicate
          ""
          [(of_predicate predicate)])

        ($.definition /.predicate
          ""
          [(predicate treshold set)])

        ($.definition /.gradient
          ""
          [(gradient from to)])

        ($.definition /.triangle
          ""
          [(triangle bottom middle top)])

        ($.definition /.trapezoid
          ""
          [(trapezoid bottom middle_bottom middle_top top)])

        ($.definition /.cut
          ""
          [(cut treshold set)])
        ))
