(.using
  [library
   [lux
    ["$" documentation {"+" documentation:}]
    [data
     [text {"+" \n}
      ["%" format {"+" format}]]]]]
  [\\library
   ["[0]" /]]
  ["[0]" / "_"
   ["[1][0]" contravariant]])

(documentation: /.sum
  "Co-product (sum) composition for functors.")

(documentation: /.product
  "Product composition for functors.")

(documentation: /.composite
  "Functor composition.")

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [($.default (/.Functor !))
             ($.default (/.Fix !))
             ($.default (/.Or left right))
             ($.default (/.And left right))
             ($.default (/.Then outer inner))
             ..sum
             ..product
             ..composite]
            [/contravariant.documentation]))
