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

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

        ($.definition /.functor)
        ($.definition /.apply)
        ($.definition /.monad)

        ($.definition (/.Writer log value)
          "Represents a value with an associated 'log' to record arbitrary information.")

        ($.definition /.write
          "Write a value to the log."
          [(write message)])

        ($.definition /.with
          "Enhances a monad with Writer functionality."
          [(with monoid monad)])

        ($.definition /.lifted
          "Wraps a monadic value with Writer machinery."
          [(lifted monoid monad)])
        ))
