<?xml version="1.0" encoding="UTF-8"?>
<mrdocs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc">
<namespace>
  <source>
  </source>
  <kind>namespace</kind>
  <id>//////////////////////////8=</id>
  <extraction>regular</extraction>
  <namespace-tranche>
    <namespaces>j5k/YyjWpJ+nEAURNJqD22JcYh0=</namespaces>
    <namespaces>eIvg7iueGIPcE8p1NVfngsp2ojw=</namespaces>
  </namespace-tranche>
</namespace>
<namespace>
  <name>beman</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>20</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>75</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>94</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>namespace</kind>
  <id>j5k/YyjWpJ+nEAURNJqD22JcYh0=</id>
  <extraction>regular</extraction>
  <parent>//////////////////////////8=</parent>
  <namespace-tranche>
    <namespaces>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</namespaces>
  </namespace-tranche>
</namespace>
<namespace>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>20</line-number>
      <column-number>16</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>75</line-number>
      <column-number>16</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>94</line-number>
      <column-number>16</column-number>
    </location>
  </source>
  <kind>namespace</kind>
  <id>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</id>
  <extraction>regular</extraction>
  <parent>j5k/YyjWpJ+nEAURNJqD22JcYh0=</parent>
  <namespace-tranche>
    <namespaces>5HzEsKRzStyLkoUmcy9wOt1Mb4o=</namespaces>
    <records>tC7EcjLfvgsszvp353seh2iQR5Q=</records>
    <records>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</records>
    <records>qm9ez48c7jM2APsMBjONlFHv85U=</records>
    <records>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</records>
    <records>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</records>
    <functions>JD1e2JKrmzHwXwixpQcF00Hfyi0=</functions>
    <functions>h7d7FYRcQ1GHFPgVi9Bey+kSfwk=</functions>
    <functions>RJcVwVLG7J/h9o/JCZLV3DxqCTg=</functions>
    <functions>zqArjaAEi8qVfzlObBlH5MKWrlo=</functions>
    <functions>d1BE23ziL5torDYlwcMppvTbJJE=</functions>
    <functions>WTsPpLiJO8U0BYvaXj8GHDIyO44=</functions>
    <functions>VgbIshRRKmNCyuTfwOcl5MmpwkM=</functions>
    <functions>lXqpsN2bfuokQhWN7H2Mr5TEESI=</functions>
    <functions>QzXoOOUPIgp2h8E2tTZ0kf1oZ+c=</functions>
    <variables>LGxPsHTRkREspc6wFZCA+H1/yPk=</variables>
    <variables>XJiUqbGEdK6DROB3Nrm3UwVrXzc=</variables>
    <concepts>9xISP7ucNqSnlc7wjTUi6kniZpI=</concepts>
  </namespace-tranche>
</namespace>
<namespace>
  <name>detail</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>22</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>95</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>256</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1484</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>namespace</kind>
  <id>5HzEsKRzStyLkoUmcy9wOt1Mb4o=</id>
  <extraction>implementation-defined</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>*</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>END [optional.syn]</literal>
      </text>
    </brief>
  </doc-comment>
  <namespace-tranche>
    <namespaces>J5FkhVha3OHaZ9BCAGbBssK4ehk=</namespaces>
    <typedefs>kZ0y6QLsbgSsCT16Lh3J/3hC3P0=</typedefs>
    <records>CCKBr7Trw4NFH3nVTXCf/PBYKig=</records>
  </namespace-tranche>
</namespace>
<record>
  <name>bad_optional_access</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>798</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>138</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>record</kind>
  <id>tC7EcjLfvgsszvp353seh2iQR5Q=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Exception thrown when trying to access the value of an empty optional</literal>
      </text>
    </brief>
  </doc-comment>
  <key-kind>class</key-kind>
  <base>
    <named>
      <name>
        <kind>identifier</kind>
        <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
        <identifier>exception</identifier>
        <name>
          <kind>identifier</kind>
          <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
          <identifier>std</identifier>
        </name>
      </name>
    </named>
  </base>
  <record-interface>
    <record-tranche>
      <functions>QdRJS2LYEGtCR5OVq6ODV0IkPhI=</functions>
      <functions>5zf/jUBz9VTOCR/B2AL4rk9LZ98=</functions>
      <functions>peMp+VnFMWLhTr406DNCmfs5tIw=</functions>
    </record-tranche>
    <record-tranche>
    </record-tranche>
    <record-tranche>
    </record-tranche>
  </record-interface>
</record>
<function>
  <name>bad_optional_access</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>804</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>QdRJS2LYEGtCR5OVq6ODV0IkPhI=</id>
  <extraction>regular</extraction>
  <parent>tC7EcjLfvgsszvp353seh2iQR5Q=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Construct a new bad optional access object</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>constructor</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>operator=</name>
  <source>
    <location>
      <short-path>bits/exception.h</short-path>
      <line-number>68</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>5zf/jUBz9VTOCR/B2AL4rk9LZ98=</id>
  <extraction>regular</extraction>
  <parent>tC7EcjLfvgsszvp353seh2iQR5Q=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>2XS5rENVk//w0+B6JjDmKiHYrzQ=</members>
  <members>HaeCnX7QGLAQKF8QmC+MWVF/f8A=</members>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
        <identifier>exception</identifier>
      </name>
    </named>
  </l-value-reference>
</overloads>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>bits/exception.h</short-path>
      <line-number>68</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>2XS5rENVk//w0+B6JjDmKiHYrzQ=</id>
  <extraction>regular</extraction>
  <is-copy-from-inherited>1</is-copy-from-inherited>
  <parent>tC7EcjLfvgsszvp353seh2iQR5Q=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Base class for all library exceptions.</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy assign from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
        <identifier>exception</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
          <identifier>exception</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>value</name>
  </param>
  <func-class>normal</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>bits/exception.h</short-path>
      <line-number>70</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>HaeCnX7QGLAQKF8QmC+MWVF/f8A=</id>
  <extraction>regular</extraction>
  <is-copy-from-inherited>1</is-copy-from-inherited>
  <parent>tC7EcjLfvgsszvp353seh2iQR5Q=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Base class for all library exceptions.</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move assign from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
        <identifier>exception</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>pAlZtrYeltB3G25UdChuBKvYgR4=</id>
          <identifier>exception</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>value</name>
  </param>
  <func-class>normal</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>what</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>811</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>peMp+VnFMWLhTr406DNCmfs5tIw=</id>
  <extraction>regular</extraction>
  <parent>tC7EcjLfvgsszvp353seh2iQR5Q=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Get the error message for bad optional access</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const char*</literal>
      </text>
    </returns>
  </doc-comment>
  <pointer>
    <named>
      <is-const>1</is-const>
      <name>
        <kind>identifier</kind>
        <identifier>char</identifier>
      </name>
    </named>
  </pointer>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-virtual>1</is-virtual>
  <is-const>1</is-const>
</function>
<record>
  <name>in_place_t</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>64</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>record</kind>
  <id>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Tag type for in-place construction</literal>
      </text>
    </brief>
  </doc-comment>
  <key-kind>struct</key-kind>
  <record-interface>
    <record-tranche>
      <functions>QTwHaQRaRJnLs7uXs46XinCKJnc=</functions>
    </record-tranche>
    <record-tranche>
    </record-tranche>
    <record-tranche>
    </record-tranche>
  </record-interface>
</record>
<function>
  <name>in_place_t</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>65</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>QTwHaQRaRJnLs7uXs46XinCKJnc=</id>
  <extraction>regular</extraction>
  <parent>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Default constructor</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>constructor</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<record>
  <name>nullopt_t</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>113</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>record</kind>
  <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Tag type for empty optional construction</literal>
      </text>
    </brief>
  </doc-comment>
  <key-kind>struct</key-kind>
  <record-interface>
    <record-tranche>
      <enums>ufNY4Im1hPXv6iQ60Eda4V5/Zh8=</enums>
      <functions>h17CgkpzRygtmAYcTitKNi6Hem0=</functions>
    </record-tranche>
    <record-tranche>
    </record-tranche>
    <record-tranche>
    </record-tranche>
  </record-interface>
  <friend>
    <id>pgYKFK/pI9e+W3RmO0EIWYyr3ww=</id>
  </friend>
  <friend>
    <id>Op32q7BeWyrksJnEaOtQxHjxWjk=</id>
  </friend>
</record>
<enum>
  <name>Tag</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>117</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>enum</kind>
  <id>ufNY4Im1hPXv6iQ60Eda4V5/Zh8=</id>
  <extraction>regular</extraction>
  <parent>qm9ez48c7jM2APsMBjONlFHv85U=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Tag enum for nullopt_t construction</literal>
      </text>
    </brief>
  </doc-comment>
  <scoped>1</scoped>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>int</identifier>
    </name>
  </named>
  <constants>JRw78BAL+lUDtNt6Ic06L50Zg0c=</constants>
</enum>
<enum-constant>
  <name>tag</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>117</line-number>
      <column-number>22</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>enum-constant</kind>
  <id>JRw78BAL+lUDtNt6Ic06L50Zg0c=</id>
  <extraction>regular</extraction>
  <parent>ufNY4Im1hPXv6iQ60Eda4V5/Zh8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>the tag value for nullopt_t::Tag</literal>
      </text>
    </brief>
  </doc-comment>
</enum-constant>
<function>
  <name>nullopt_t</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>124</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>h17CgkpzRygtmAYcTitKNi6Hem0=</id>
  <extraction>regular</extraction>
  <parent>qm9ez48c7jM2APsMBjONlFHv85U=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>constexpr for nullopt_t to be literal.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Construct a new nullopt_t object</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to construct from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>ufNY4Im1hPXv6iQ60Eda4V5/Zh8=</id>
        <identifier>Tag</identifier>
      </name>
    </named>
    <name>value</name>
  </param>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<record>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>295</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>76</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>record</kind>
  <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Optional Objects</literal>
      </text>
    </brief>
    <reference>
      <kind>reference</kind>
      <literal>make_optional</literal>
      <id>XDbVYkHspG4PB47wpWiRZOo0NlY=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator!=</literal>
      <id>2G159R1+8b1xkOK9u3FF3QDcAUY=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator!=</literal>
      <id>60GHDiC6o64xbYKp83E3A5iPrhE=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;</literal>
      <id>jqNZVersCFRVodB+gdVnvZn9RP4=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;</literal>
      <id>1H2o8wwBLBtfWFOcBX54+6RBLVU=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;=</literal>
      <id>FWQR8LQnPEO5+/SRa8W4Zc4jDlQ=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;=</literal>
      <id>+NwYIqZvYZCJp+QAWW6cbbSYqVU=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;=&gt;</literal>
      <id>Pmyd8rtgiEpg/HYz7tilkteBFhg=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;=&gt;</literal>
      <id>VgontnHUiNvzkpoRIFv2Vvc88mo=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&lt;=&gt;</literal>
      <id>ndNMB3Ehouv4lF1jzOa2IYgjEh4=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator==</literal>
      <id>ATfH0MV8EAQE6oE3e2OWsJsXhbs=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator==</literal>
      <id>h5L6UUxvyCnZSKXkcV9/2OpLB10=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator==</literal>
      <id>ldpyPTVm1Y7c/9DQKi74IcVueYs=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&gt;</literal>
      <id>hMFh4M52EIPFjJB+10a7s1LJuzw=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&gt;</literal>
      <id>0xp8ORXBP85+U8pJtrI9nkQUumg=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&gt;=</literal>
      <id>CzwIKHqqfNwhTTh8LWJ/LcPwrTA=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>operator&gt;=</literal>
      <id>8yrDHvDuwqixD59O2cuFDo+EtbE=</id>
    </reference>
    <reference>
      <kind>reference</kind>
      <literal>swap</literal>
      <id>h7d7FYRcQ1GHFPgVi9Bey+kSfwk=</id>
    </reference>
  </doc-comment>
  <key-kind>class</key-kind>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <record-interface>
    <record-tranche>
      <typedefs>PTkL6Kye5WLULoeW2qEaaj0NXeI=</typedefs>
      <typedefs>6P/n8yO8YGsPi3WuM00zv1eh5tY=</typedefs>
      <typedefs>9cDFxG5Sry1wrYATso2RP3ExqPM=</typedefs>
      <functions>Joc5jO7PnMz0+sRO5TRRi3uvKTk=</functions>
      <functions>FcTw/WouzSfU/4NAHUkpesdJRQE=</functions>
      <functions>H0T0OYCRd1fXNcRPJm+IiiMCjYM=</functions>
      <functions>L1PpAGlFJ2T91+oABQA1uTPDMfU=</functions>
      <functions>mvKIFJ/tGdm9BUEpnNp9FPQJS10=</functions>
      <functions>dFKMJ0LSrdW7QkkTxxT8sLDi3QA=</functions>
      <functions>FvMngnDbHNGC0b+W82RL9cT/1NQ=</functions>
      <functions>6t3h6GhzPqBBa77+qGG9pIlXDPw=</functions>
      <functions>MiwCdTrcx+oeEL4Su3kvyDDY0Kc=</functions>
      <functions>lOtdTot8yAZhMy5y9zq2JW5NRoE=</functions>
      <functions>HZ70UfvC+3qFRVRBS8yhqFLlBFA=</functions>
      <functions>bTJMu3zaBfwK9I2C+ofyz8wR7K8=</functions>
      <functions>LzHf/b38WjPqYjOYi4sQzApHUGg=</functions>
      <functions>jIPvTT21XtZm3hRmVVg0LlBw4Eo=</functions>
      <functions>KJUEdIU+Yl6FtpbIdVa10N5nncU=</functions>
      <functions>OsNMNIZ4UWKQoK6y5JtQHOEcLTw=</functions>
      <functions>2PRpxJIgA4IeM03nrPqgz/gWEwM=</functions>
      <variables>bhi4SqTfa4/ZxLUXrOV2W7orrjA=</variables>
      <variables>bX2YjchFyI55CEfjEgcfj+ScNCU=</variables>
    </record-tranche>
    <record-tranche>
    </record-tranche>
    <record-tranche>
      <records>/qcgW01qPkslPc2T6YxbhqJlyJc=</records>
    </record-tranche>
  </record-interface>
  <friend>
    <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
  </friend>
</record>
<typedef>
  <name>const_iterator</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>320</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>typedef</kind>
  <id>PTkL6Kye5WLULoeW2qEaaj0NXeI=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Since P3168R2: Give std::optional Range Support.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Type alias for the const iterator type of the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>CCKBr7Trw4NFH3nVTXCf/PBYKig=</id>
      <identifier>contiguous_iterator</identifier>
      <name>
        <kind>identifier</kind>
        <id>5HzEsKRzStyLkoUmcy9wOt1Mb4o=</id>
        <identifier>detail</identifier>
      </name>
    </name>
  </named>
  <is-using>1</is-using>
</typedef>
<typedef>
  <name>iterator</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>313</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>typedef</kind>
  <id>6P/n8yO8YGsPi3WuM00zv1eh5tY=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Since P3168R2: Give std::optional Range Support.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Type alias for the iterator type of the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>CCKBr7Trw4NFH3nVTXCf/PBYKig=</id>
      <identifier>contiguous_iterator</identifier>
      <name>
        <kind>identifier</kind>
        <id>5HzEsKRzStyLkoUmcy9wOt1Mb4o=</id>
        <identifier>detail</identifier>
      </name>
    </name>
  </named>
  <is-using>1</is-using>
</typedef>
<typedef>
  <name>value_type</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>306</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>typedef</kind>
  <id>9cDFxG5Sry1wrYATso2RP3ExqPM=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Type alias for the value type contained in the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>T</identifier>
    </name>
  </named>
  <is-using>1</is-using>
</typedef>
<overloads>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>346</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>328</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>334</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>340</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>352</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>367</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>377</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>386</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>395</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>402</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>Joc5jO7PnMz0+sRO5TRRi3uvKTk=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructors</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The arguments to use for in-place construction.</literal>
      </text>
      <name>args</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The initializer list to use for in-place construction.</literal>
      </text>
      <name>il</name>
    </param>
  </doc-comment>
  <func-class>constructor</func-class>
  <members>Zhjc/C178ql0VoS0WbGc63PBiZs=</members>
  <members>bKq1AF+Kqr5E1zby//xLZ/vtdz0=</members>
  <members>zjwlTzPSGuDcl1XH3xBpPP3Iyao=</members>
  <members>Srnj0nZvtQ0Vg6tuFkyHkrxRq0A=</members>
  <members>VlioDaayzdTPTqtW3i1MjotUJ0Q=</members>
  <members>tjPjq+UzTo5gunm94e3lfvW+Z+s=</members>
  <members>bmNRp4gaMqyt7FQwM2uJmG9eYcY=</members>
  <members>Qy6ehjKGaqZ4DYsbt/Aqg0LzFzU=</members>
  <members>CQaBRu9zdyHdATIkvGyP50Saa1A=</members>
  <members>KnG9lJXbUtQ6Ml1KAXAYNGMcF0c=</members>
  <members>f0M4hRrue0gdE2D1UxzRPEsJB9Q=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>815</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>328</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>Zhjc/C178ql0VoS0WbGc63PBiZs=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Default constructs an empty optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>346</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>bKq1AF+Kqr5E1zby//xLZ/vtdz0=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Defaulted if T is trivially copy constructible.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Copy constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy construct from</literal>
      </text>
      <name>other</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>other</name>
  </param>
  <func-class>constructor</func-class>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_copy_constructible_v&lt;T&gt;</requires>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>821</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>340</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>zjwlTzPSGuDcl1XH3xBpPP3Iyao=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Copy constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy construct from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>constructor</func-class>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; (!std::is_trivially_copy_constructible_v&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>861</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>395</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>Srnj0nZvtQ0Vg6tuFkyHkrxRq0A=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Converting copy constructor.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy construct from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>constructor</func-class>
  <requires>(detail::enable_from_other&lt;T, U, const U&amp;&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>358</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>VlioDaayzdTPTqtW3i1MjotUJ0Q=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Defaulted if T is trivially move constructible.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Move constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move construct from</literal>
      </text>
      <name>other</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>other</name>
  </param>
  <func-class>constructor</func-class>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_move_constructible_v&lt;T&gt;</requires>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>830</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>352</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>tjPjq+UzTo5gunm94e3lfvW+Z+s=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Move constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move construct from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <func-class>constructor</func-class>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; (!std::is_trivially_move_constructible_v&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>872</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>402</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>bmNRp4gaMqyt7FQwM2uJmG9eYcY=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Converting move constructor.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move construct from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>constructor</func-class>
  <requires>(detail::enable_from_other&lt;T, U, U &amp;&amp;&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>818</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>334</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>Qy6ehjKGaqZ4DYsbt/Aqg0LzFzU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an empty optional.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to construct from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>value</name>
  </param>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>854</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>386</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>CQaBRu9zdyHdATIkvGyP50Saa1A=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> is convertible to </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T,</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> this is an explicit constructor.</literal>
      </text>
    </paragraph>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value with </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u,</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> forwarding it if necessary.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move construct from</literal>
      </text>
      <name>u</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <type-targ>
        <kind>type</kind>
        <named>
          <name>
            <kind>identifier</kind>
            <identifier>T</identifier>
          </name>
        </named>
      </type-targ>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>constructor</func-class>
  <requires>detail::enable_forward_value&lt;T, U&gt;</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>841</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>367</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>KnG9lJXbUtQ6Ml1KAXAYNGMcF0c=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value in-place using the given arguments.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value in-place using the given arguments.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The arguments to use for in-place construction.</literal>
      </text>
      <name>args</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</id>
        <identifier>in_place_t</identifier>
      </name>
    </named>
  </param>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>constructor</func-class>
  <requires>std::is_constructible_v&lt;T, Args...&gt;</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>847</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>377</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>f0M4hRrue0gdE2D1UxzRPEsJB9Q=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value in-place using the given arguments.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The initializer list to use for in-place construction.</literal>
      </text>
      <name>il</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The arguments to use for in-place construction.</literal>
      </text>
      <name>args</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</id>
        <identifier>in_place_t</identifier>
      </name>
    </named>
  </param>
  <param>
    <named>
      <name>
        <kind>specialization</kind>
        <id>3tT5Y8vozttMWXrA/fNw4NcDYTE=</id>
        <identifier>initializer_list</identifier>
        <name>
          <kind>identifier</kind>
          <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
          <identifier>std</identifier>
        </name>
      </name>
    </named>
    <name>il</name>
  </param>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>constructor</func-class>
  <requires>std::is_constructible_v&lt;T, std::initializer_list&lt;U&gt;&amp;, Args&amp;&amp;...&gt;</requires>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>~optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>411</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>418</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>FcTw/WouzSfU/4NAHUkpesdJRQE=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Destructors</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>destructor</func-class>
  <members>tNWsjIl4//E01XnPER/rOsCvKcQ=</members>
  <members>6gKCYxiLeMGhYhMv5DhlEhY4My0=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>~optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>411</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>tNWsjIl4//E01XnPER/rOsCvKcQ=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Destructs the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>destructor</func-class>
  <requires>std::is_trivially_destructible_v&lt;T&gt;</requires>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>~optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>883</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>418</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>6gKCYxiLeMGhYhMv5DhlEhY4My0=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Destroys the optional and its value if it has one.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>destructor</func-class>
  <requires>(!std::is_trivially_destructible_v&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>439</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>425</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>430</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>447</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>466</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>474</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>481</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>H0T0OYCRd1fXNcRPJm+IiiMCjYM=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operators</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to assign.</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the value to assign.</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>YXp2p9DjakNd/Nfgc/Eokq4VaDk=</members>
  <members>k8cdSVuTO7L981AeVsi5iVPuWvQ=</members>
  <members>gCgVIPTPPbmIn0fBP9VnLAlxElg=</members>
  <members>3EIpANtjbuOdwW0BfFALQwwM3+Q=</members>
  <members>uH7ciUxmBTttG/DqP2YZ3+8X2Ck=</members>
  <members>eL7IMxbcyX+8S5/QHpN3PO9McYA=</members>
  <members>9TJuUJPhuRU5eLJWznHZWhzNts4=</members>
  <members>toQhTlIOSw5rtEzgtk9m4yXc6Ww=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>439</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>YXp2p9DjakNd/Nfgc/Eokq4VaDk=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Copy assigns the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy assign from</literal>
      </text>
      <name>other</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>other</name>
  </param>
  <func-class>normal</func-class>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_copy_assignable_v&lt;T&gt; &amp;&amp;
                     std::is_trivially_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_copy_assignable_v&lt;T&gt;</requires>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>899</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>430</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>k8cdSVuTO7L981AeVsi5iVPuWvQ=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Copy assigns the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy assign from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
  <requires>std::is_copy_constructible_v&lt;T&gt; &amp;&amp; std::is_copy_assignable_v&lt;T&gt; &amp;&amp;
             (!std::is_trivially_copy_assignable_v&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>949</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>474</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>gCgVIPTPPbmIn0fBP9VnLAlxElg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Converting copy assignment operator.</literal>
      </text>
    </paragraph>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Copies the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if there is one. Otherwise resets the contained value in </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>*this</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assigns the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one, destroying the old value if there</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy assign from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(detail::enable_assign_from_other&lt;T, U, const U&amp;&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>454</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>3EIpANtjbuOdwW0BfFALQwwM3+Q=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Move assigns the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move assign from</literal>
      </text>
      <name>other</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>other</name>
  </param>
  <func-class>normal</func-class>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_move_assignable_v&lt;T&gt; &amp;&amp;
                     std::is_trivially_move_constructible_v&lt;T&gt; &amp;&amp; std::is_trivially_move_assignable_v&lt;T&gt;</requires>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>913</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>447</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>uH7ciUxmBTttG/DqP2YZ3+8X2Ck=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Move assigns the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move assign from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_move_assignable_v&lt;T&gt; &amp;&amp;
             (!std::is_trivially_move_assignable_v&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>973</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>481</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>eL7IMxbcyX+8S5/QHpN3PO9McYA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Converting move assignment operator.</literal>
      </text>
    </paragraph>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Moves the value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if there is one. Otherwise resets the contained value in </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>*this</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assigns the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it has one, destroying the old value if there</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move assign from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(detail::enable_assign_from_other&lt;T, U, U&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>893</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>425</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>9TJuUJPhuRU5eLJWznHZWhzNts4=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Resets the optional to an empty state.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Reference to the current object</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to assign from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>value</name>
  </param>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>931</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>466</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>toQhTlIOSw5rtEzgtk9m4yXc6Ww=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Assigns the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, destroying the old value if there was one.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assigns the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u,</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> destroying the old value if there</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to assign.</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the value to assign.</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <type-targ>
        <kind>type</kind>
        <named>
          <name>
            <kind>identifier</kind>
            <identifier>T</identifier>
          </name>
        </named>
      </type-targ>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::enable_assign_forward&lt;T, U&gt;</requires>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1147</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>639</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>653</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>667</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>681</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>L1PpAGlFJ2T91+oABQA1uTPDMfU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>NA9XRom7f2CwVur50MWRMMXYC04=</members>
  <members>277WfRzfG5cxBIGCDqlVk7aOtiM=</members>
  <members>x2l1u6Fl4wvc6PLuvGqWXOdA5kg=</members>
  <members>jTruTbGYnUR1HK3h5SHaQRNBdCI=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1147</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>639</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>NA9XRom7f2CwVur50MWRMMXYC04=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional. The function </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1159</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>653</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>277WfRzfG5cxBIGCDqlVk7aOtiM=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional. The function </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1171</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>667</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>x2l1u6Fl4wvc6PLuvGqWXOdA5kg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional. The function </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1183</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>681</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>jTruTbGYnUR1HK3h5SHaQRNBdCI=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional. The function </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<overloads>
  <name>begin</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1040</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>519</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>525</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>mvKIFJ/tGdm9BUEpnNp9FPQJS10=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>begin</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> overloads</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const_iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <func-class>normal</func-class>
  <members>pv+K7KnyySlPo3AQ76WIs7ePQZA=</members>
  <members>C5wvIvznNi22pgCxl7FBkGXcscQ=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>begin</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1040</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>519</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>pv+K7KnyySlPo3AQ76WIs7ePQZA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an iterator to the beginning of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>6P/n8yO8YGsPi3WuM00zv1eh5tY=</id>
      <identifier>iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>begin</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1045</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>525</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>C5wvIvznNi22pgCxl7FBkGXcscQ=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a const iterator to the beginning of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const_iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>PTkL6Kye5WLULoeW2qEaaj0NXeI=</id>
      <identifier>const_iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<overloads>
  <name>emplace</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>995</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>491</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>502</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>dFKMJ0LSrdW7QkkTxxT8sLDi3QA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>emplace</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> overloads</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The argument list to use in emplacement construction.</literal>
      </text>
      <name>args</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The initializer list to use in emplacement construction.</literal>
      </text>
      <name>il</name>
    </param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>SnAdjJOjL2qmtWOeZJ9YbDmpYds=</members>
  <members>grnlkdMGLaN7D0qVZcL705iZffs=</members>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
</overloads>
<function>
  <name>emplace</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>995</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>491</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>SnAdjJOjL2qmtWOeZJ9YbDmpYds=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value in-place, destroying the current one if there is one.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value in-place, destroying the current one if there</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The argument list to use in emplacement construction.</literal>
      </text>
      <name>args</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>emplace</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1004</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>502</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>grnlkdMGLaN7D0qVZcL705iZffs=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the value in-place using the given arguments, destroying the current one if there</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The initializer list to use in emplacement construction.</literal>
      </text>
      <name>il</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The argument list to use in emplacement construction.</literal>
      </text>
      <name>args</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <named>
      <name>
        <kind>specialization</kind>
        <id>3tT5Y8vozttMWXrA/fNw4NcDYTE=</id>
        <identifier>initializer_list</identifier>
        <name>
          <kind>identifier</kind>
          <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
          <identifier>std</identifier>
        </name>
      </name>
    </named>
    <name>il</name>
  </param>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>end</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1049</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>531</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>537</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>FvMngnDbHNGC0b+W82RL9cT/1NQ=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>end</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> overloads</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const_iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <func-class>normal</func-class>
  <members>Ugv+ETWxMvjfi/e9XWjWACaLnFw=</members>
  <members>Ls0HIy99miTA/QgUABSE+fQB7k8=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>end</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1049</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>531</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>Ugv+ETWxMvjfi/e9XWjWACaLnFw=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an iterator to the end of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>6P/n8yO8YGsPi3WuM00zv1eh5tY=</id>
      <identifier>iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>end</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1054</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>537</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>Ls0HIy99miTA/QgUABSE+fQB7k8=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a const iterator to the end of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const_iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>PTkL6Kye5WLULoeW2qEaaj0NXeI=</id>
      <identifier>const_iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>has_value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1094</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>584</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>6t3h6GhzPqBBa77+qGG9pIlXDPw=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Returns whether or not the optional has a value</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns whether or not the optional has a value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>bool</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<overloads>
  <name>operator*</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1073</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>556</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>563</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>570</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>MiwCdTrcx+oeEL4Su3kvyDDY0Kc=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const T&amp;</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <func-class>normal</func-class>
  <members>kmoqjyIKIMVvJTzxOMl6UkWHFuA=</members>
  <members>aOc/ApjaFfvs1c9RgpjDL2tCCy8=</members>
  <members>kXz4cG41Hyr9eJl1BYCzC6k0pmg=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>operator*</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1073</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>556</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>kmoqjyIKIMVvJTzxOMl6UkWHFuA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator*</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1078</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>563</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>aOc/ApjaFfvs1c9RgpjDL2tCCy8=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <is-const>1</is-const>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>operator*</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1083</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>570</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>kXz4cG41Hyr9eJl1BYCzC6k0pmg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <r-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </r-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>operator-&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1062</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>543</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>550</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>lOtdTot8yAZhMy5y9zq2JW5NRoE=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a pointer to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T*</literal>
      </text>
    </returns>
  </doc-comment>
  <func-class>normal</func-class>
  <members>kzDMgarFg/H4UbLFeOJUy/jpuMg=</members>
  <members>YEhKE5e5IdAl/MYWXeFZRW0Iq4o=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>operator-&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1062</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>543</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>kzDMgarFg/H4UbLFeOJUy/jpuMg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a pointer to the contained value</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a pointer to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>a pointer to the contained value.</literal>
      </text>
    </returns>
  </doc-comment>
  <pointer>
    <named>
      <is-const>1</is-const>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </pointer>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>operator-&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1067</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>550</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>YEhKE5e5IdAl/MYWXeFZRW0Iq4o=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a pointer to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T*</literal>
      </text>
    </returns>
  </doc-comment>
  <pointer>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </pointer>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>or_else</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1249</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>736</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>748</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>HZ70UfvC+3qFRVRBS8yhqFLlBFA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>or_else</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> overloads</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&lt;T&gt;</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to call if the optional is disengaged.</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable type returning an optional.</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>VzK/XB5ufz22S7P4PYexyKFHYyM=</members>
  <members>QC9hfotSzRKPcqxIF7lVmbQlJVk=</members>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>or_else</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1249</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>736</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>VzK/XB5ufz22S7P4PYexyKFHYyM=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the contained value if it has one, or the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the optional if it does not.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&lt;T&gt;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to call if the optional is disengaged.</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable type returning an optional.</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(std::invocable&lt;F&gt; &amp;&amp; std::copy_constructible&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>or_else</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1270</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>748</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>QC9hfotSzRKPcqxIF7lVmbQlJVk=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the contained value if it has one, or the result of calling </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it does not.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&lt;T&gt;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to call if the optional is disengaged.</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable type returning an optional.</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(std::invocable&lt;F&gt; &amp;&amp; std::move_constructible&lt;T&gt;)</requires>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>reset</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1282</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>757</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>bTJMu3zaBfwK9I2C+ofyz8wR7K8=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Resets the optional to an empty state, destroying the contained value if there is one.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>swap</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1019</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>511</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>LzHf/b38WjPqYjOYi4sQzApHUGg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Swaps this optional with the other.</literal>
      </text>
    </paragraph>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>If neither optionals have a value, nothing happens. If both have a value, the values are swapped. If one has a value, it is moved to the other and the movee is left valueless.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Swaps this optional with the other.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The optional to swap with.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1196</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>692</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>703</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>714</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>725</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>jIPvTT21XtZm3hRmVVg0LlBw4Eo=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the contained value, or an empty optional if there is no contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable to apply to the contained value.</literal>
      </text>
      <name>f</name>
    </param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>el6M1DCXjliDpUuaK7cN4p1aKmY=</members>
  <members>0a6dSB0m3FNv5idHuDHC8O2tn0c=</members>
  <members>EKUZGEh0j0oxo12rDBwrUGU+ulg=</members>
  <members>cMMSO7neVan/uAs9oQ6RkVGr6bY=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1196</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>692</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>el6M1DCXjliDpUuaK7cN4p1aKmY=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Carries out some operation on the contained object if there is one.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the contained value, or an empty optional if there is no contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable to apply to the contained value.</literal>
      </text>
      <name>f</name>
    </param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1207</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>703</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>0a6dSB0m3FNv5idHuDHC8O2tn0c=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the contained value, or an empty optional if there is no contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable to apply to the contained value.</literal>
      </text>
      <name>f</name>
    </param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1218</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>714</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>EKUZGEh0j0oxo12rDBwrUGU+ulg=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the contained value, or an empty optional if there is no contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable to apply to the contained value.</literal>
      </text>
      <name>f</name>
    </param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1229</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>725</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>cMMSO7neVan/uAs9oQ6RkVGr6bY=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an optional containing the result of applying </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> to the contained value, or an empty optional if there is no contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>An invocable to apply to the contained value.</literal>
      </text>
      <name>f</name>
    </param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<overloads>
  <name>value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1101</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>591</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>598</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>605</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>KJUEdIU+Yl6FtpbIdVa10N5nncU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const T&amp;</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <func-class>normal</func-class>
  <members>05X03ZzuWSaQiySn36G9bywpUZU=</members>
  <members>mcQbBSKEPph1cKveoe/9PQvnqiE=</members>
  <members>KnsmxZwrhjrKCjkda/+P/Fc0rRU=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1101</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>591</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>05X03ZzuWSaQiySn36G9bywpUZU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise throws bad_optional_access</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1105</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>598</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>mcQbBSKEPph1cKveoe/9PQvnqiE=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>const T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <is-const>1</is-const>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1109</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>605</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>KnsmxZwrhjrKCjkda/+P/Fc0rRU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <r-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </r-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>value_or</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1123</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>614</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>623</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>OsNMNIZ4UWKQoK6y5JtQHOEcLTw=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise returns </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to return in the empty case</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the alternate value</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>V0wguEJ9dQ433WZNSWfVBc3A1PE=</members>
  <members>t8AuvKSjgknA59MPMMvD5F4AGhw=</members>
  <named>
    <name>
      <kind>specialization</kind>
      <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
      <identifier>remove_cv_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
</overloads>
<function>
  <name>value_or</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1123</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>614</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>V0wguEJ9dQ433WZNSWfVBc3A1PE=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise returns </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise returns </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to return in the empty case</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the alternate value</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
      <identifier>remove_cv_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <type-targ>
        <kind>type</kind>
        <named>
          <name>
            <kind>specialization</kind>
            <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
            <identifier>remove_cv_t</identifier>
            <name>
              <kind>identifier</kind>
              <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
              <identifier>std</identifier>
            </name>
          </name>
        </named>
      </type-targ>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>value_or</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1134</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>623</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>t8AuvKSjgknA59MPMMvD5F4AGhw=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise returns </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to return in the empty case</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the alternate value</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
      <identifier>remove_cv_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <type-targ>
        <kind>type</kind>
        <named>
          <name>
            <kind>specialization</kind>
            <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
            <identifier>remove_cv_t</identifier>
            <name>
              <kind>identifier</kind>
              <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
              <identifier>std</identifier>
            </name>
          </name>
        </named>
      </type-targ>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator bool</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1088</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>577</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>2PRpxJIgA4IeM03nrPqgz/gWEwM=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Converts the optional to a boolean indicating whether it has a value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>bool</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <func-class>conversion</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<variable>
  <name>_</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>766</line-number>
      <column-number>9</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>variable</kind>
  <id>bhi4SqTfa4/ZxLUXrOV2W7orrjA=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>The empty state of the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>/qcgW01qPkslPc2T6YxbhqJlyJc=</id>
      <identifier>empty</identifier>
    </name>
  </named>
  <initializer>{}</initializer>
  <is-record-field>1</is-record-field>
  <is-variant>1</is-variant>
</variable>
<variable>
  <name>value_</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>772</line-number>
      <column-number>9</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>variable</kind>
  <id>bX2YjchFyI55CEfjEgcfj+ScNCU=</id>
  <extraction>regular</extraction>
  <parent>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>The contained value of the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>T</identifier>
    </name>
  </named>
  <is-record-field>1</is-record-field>
  <is-variant>1</is-variant>
</variable>
<record>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1519</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>record</kind>
  <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>A specialization of </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>optional</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> for references.</literal>
      </text>
    </brief>
  </doc-comment>
  <key-kind>class</key-kind>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <type-targ>
      <kind>type</kind>
      <l-value-reference>
        <named>
          <name>
            <kind>identifier</kind>
            <identifier>T</identifier>
          </name>
        </named>
      </l-value-reference>
    </type-targ>
    <primary>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</primary>
  </template>
  <record-interface>
    <record-tranche>
      <typedefs>ImzGgmBJunwnXoDQix9uN5onnAc=</typedefs>
      <typedefs>HKgHcnmvhPobNd+aXdcalJHeiv8=</typedefs>
      <functions>OyGv5DjXxr0vruShL/Adef053mA=</functions>
      <functions>wjY4EUwBn1tkTLFIZIdPmL64peM=</functions>
      <functions>9eNQ8WCb/7kyLSIotNCdoVrE2zU=</functions>
      <functions>+CIsV+Wu2L3LpDdj+cSlI+ffohE=</functions>
      <functions>X1AIJ9Ah4bgrav3VQir5ICrhAsA=</functions>
      <functions>8T8ZZPRS4VgGFjx2enhcNW85hRw=</functions>
      <functions>UNJe5kObJeo3tPH32c0hMzSV3gs=</functions>
      <functions>aY62oe+NUw8aeR3uvpBwzQEUSHQ=</functions>
      <functions>rmdpui0fPtFx6oMCmgOLFa8hNGU=</functions>
      <functions>l21I05K2PgxKkWyfKHQF5ICcKyY=</functions>
      <functions>lQfRDUtH/pSoPlleSfx2qW38Xa8=</functions>
      <functions>C7IX7rHsnHDv4WObAGfzwOLKpII=</functions>
      <functions>0sezOtQcwTaucSDTeDMFLP2y+a8=</functions>
      <functions>5MuSAu0AgI9arI/EDEmzoWAAxVo=</functions>
      <functions>VAB1HjckTR+EtBS0EQS3k1yoFN4=</functions>
      <functions>HdkiHX5giyu1EfpJ1/OhYmg/pkw=</functions>
      <functions>OosCP+eHvPFAql3lYwgG+tuIvl4=</functions>
    </record-tranche>
    <record-tranche>
    </record-tranche>
    <record-tranche>
    </record-tranche>
  </record-interface>
  <friend>
    <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
  </friend>
</record>
<typedef>
  <name>iterator</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1530</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>typedef</kind>
  <id>ImzGgmBJunwnXoDQix9uN5onnAc=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the iterator for the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>CCKBr7Trw4NFH3nVTXCf/PBYKig=</id>
      <identifier>contiguous_iterator</identifier>
      <name>
        <kind>identifier</kind>
        <id>5HzEsKRzStyLkoUmcy9wOt1Mb4o=</id>
        <identifier>detail</identifier>
      </name>
    </name>
  </named>
  <is-using>1</is-using>
</typedef>
<typedef>
  <name>value_type</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1525</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>typedef</kind>
  <id>HKgHcnmvhPobNd+aXdcalJHeiv8=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the value contained in the optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>T</identifier>
    </name>
  </named>
  <is-using>1</is-using>
</typedef>
<overloads>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1538</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1559</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1608</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1624</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1640</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1657</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>OyGv5DjXxr0vruShL/Adef053mA=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructors</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to construct from.</literal>
      </text>
      <name>u</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to construct in-place from.</literal>
      </text>
      <name>arg</name>
    </param>
  </doc-comment>
  <func-class>constructor</func-class>
  <members>cLfu7gTNAV5I5oKU2pDiU9UgguU=</members>
  <members>o9GpKj7SPAjriVk/EiFzGmbsZWY=</members>
  <members>CCXlx4U/aRVorHvd3DujDiYba2M=</members>
  <members>ddYkMYmFrfRtoHicIP5sSZ1r6Mc=</members>
  <members>tJbnKoQ0dxqqiw31K7/V/+ng46Y=</members>
  <members>lMAp5H0PM4a48bguNHmICzLWecs=</members>
  <members>qPFYWT1nF6uPdmg/JBagMY2wpYE=</members>
  <members>aJ7YQT0oJAirrxOxw+smqxZFMbI=</members>
  <members>pG6X8tBLgkEbXap1K1x+1d96kvs=</members>
  <members>JrxleJZYawtLhjnzwFBB6mIDqUI=</members>
  <members>LF45qjKfjPRK2+C+JFfKRJojcbc=</members>
  <members>yStSSFKaZkGo+AdvR1sk+lBG2E0=</members>
  <members>JR0R0D2x2blR9SUd9+o049txEus=</members>
  <members>WEMFUlotZ/mnzGGNGVTs/NF2SUw=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1538</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>cLfu7gTNAV5I5oKU2pDiU9UgguU=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Default constructor.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>constructor</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1551</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>o9GpKj7SPAjriVk/EiFzGmbsZWY=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an empty optional if the rhs is empty, otherwise constructs the contained value from the rhs.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Copy constructor.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to copy construct from</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>constructor</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1543</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>CCXlx4U/aRVorHvd3DujDiYba2M=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an empty optional.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to construct from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>value</name>
  </param>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1674</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>ddYkMYmFrfRtoHicIP5sSZ1r6Mc=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, U&amp;&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-deleted>1</is-deleted>
  <is-deleted-as-written>1</is-deleted-as-written>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1943</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1608</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>tJbnKoQ0dxqqiw31K7/V/+ng46Y=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The optional to construct from.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&amp;&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1690</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>lMAp5H0PM4a48bguNHmICzLWecs=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&amp;&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-deleted>1</is-deleted>
  <is-deleted-as-written>1</is-deleted-as-written>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1953</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1624</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>qPFYWT1nF6uPdmg/JBagMY2wpYE=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The optional to construct from.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&amp;&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&amp;&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1572</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>aJ7YQT0oJAirrxOxw+smqxZFMbI=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it is convertible to </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Construct from a U</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to construct from.</literal>
      </text>
      <name>u</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, in_place_t&gt;) &amp;&amp;
                  !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, optional&gt;) &amp;&amp;
                  !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1586</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>pG6X8tBLgkEbXap1K1x+1d96kvs=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from a U, but deletes the constructor if</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to move construct from</literal>
      </text>
      <name>u</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, in_place_t&gt;) &amp;&amp;
                  !(std::is_same_v&lt;std::remove_cvref_t&lt;U&gt;, optional&gt;) &amp;&amp;
                  detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-deleted>1</is-deleted>
  <is-deleted-as-written>1</is-deleted-as-written>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1706</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>JrxleJZYawtLhjnzwFBB6mIDqUI=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-deleted>1</is-deleted>
  <is-deleted-as-written>1</is-deleted-as-written>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1963</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1640</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>LF45qjKfjPRK2+C+JFfKRJojcbc=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The optional to construct from.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1722</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>yStSSFKaZkGo+AdvR1sk+lBG2E0=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
                  !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-deleted>1</is-deleted>
  <is-deleted-as-written>1</is-deleted-as-written>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1973</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1657</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>JR0R0D2x2blR9SUd9+o049txEus=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from the rhs if it has a value, otherwise constructs an empty optional. If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> can be constructed from a temporary, this constructor is deleted to prevent binding a temporary to a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs an optional from another optional of type U.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The optional to construct from.</literal>
      </text>
      <name>rhs</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type contained the right hand side optional.</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, const U&gt; &amp;&amp; !std::is_same_v&lt;std::remove_cv_t&lt;T&gt;, optional&lt;U&gt;&gt; &amp;&amp;
              !std::is_same_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, const U&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1927</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1559</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>WEMFUlotZ/mnzGGNGVTs/NF2SUw=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>In-place constructor.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to construct in-place from.</literal>
      </text>
      <name>arg</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</id>
        <identifier>in_place_t</identifier>
      </name>
    </named>
  </param>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Arg</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>arg</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>Arg</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, Arg&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, Arg&gt;)</requires>
  </template>
  <func-class>constructor</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>~optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1734</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>wjY4EUwBn1tkTLFIZIdPmL64peM=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Does not destroy the contained value, as it is a reference.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Destructor.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>destructor</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<overloads>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1757</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1746</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>overloads</kind>
  <id>9eNQ8WCb/7kyLSIotNCdoVrE2zU=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operators</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to assign.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <func-class>normal</func-class>
  <members>TFL+XmGLwky00X4OCkEmF/A2uPY=</members>
  <members>4kuemHPFlUG4YOumwfEoqFBK5Xs=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1757</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>TFL+XmGLwky00X4OCkEmF/A2uPY=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>If </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>rhs</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> has a value, assigns it to the contained value. Otherwise resets the contained value in </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>*this</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Assignment operator.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to assign.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
  <is-defaulted>1</is-defaulted>
  <is-explicitly-defaulted>1</is-explicitly-defaulted>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>operator=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1984</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1746</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>4kuemHPFlUG4YOumwfEoqFBK5Xs=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Destroys the current value if there is one, and leaves the optional in an empty state.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Nullopt assignment operator.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The object to assign from</literal>
      </text>
      <name>value</name>
    </param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>specialization</kind>
        <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
        <identifier>optional</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>value</name>
  </param>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>and_then</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2060</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1865</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>+CIsV+Wu2L3LpDdj+cSlI+ffohE=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional. The function </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>auto</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <auto>
  </auto>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>begin</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2007</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1787</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>X1AIJ9Ah4bgrav3VQir5ICrhAsA=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an iterator to the beginning of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>ImzGgmBJunwnXoDQix9uN5onnAc=</id>
      <identifier>iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>emplace</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1991</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1769</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>8T8ZZPRS4VgGFjx2enhcNW85hRw=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>Constructs the contained value from </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if it is convertible to </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>T&amp;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Emplaces a new value in the optional, destroying the current one if the optional is engaged.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to emplace.</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the value to emplace.</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_constructible_v&lt;T&amp;, U&gt; &amp;&amp; !detail::reference_constructs_from_temporary_v&lt;T&amp;, U&gt;)</requires>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>end</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2012</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1794</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>UNJe5kObJeo3tPH32c0hMzSV3gs=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns an iterator to the end of the optional.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>iterator</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>ImzGgmBJunwnXoDQix9uN5onnAc=</id>
      <identifier>iterator</identifier>
      <name>
        <kind>specialization</kind>
        <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
        <identifier>optional</identifier>
      </name>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>has_value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2032</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1823</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>aY62oe+NUw8aeR3uvpBwzQEUSHQ=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Checks if the optional has a value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>bool</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>operator*</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2023</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1809</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>rmdpui0fPtFx6oMCmgOLFa8hNGU=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a reference to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>operator-&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2018</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1802</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>l21I05K2PgxKkWyfKHQF5ICcKyY=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns a pointer to the contained value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T*</literal>
      </text>
    </returns>
  </doc-comment>
  <pointer>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </pointer>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>or_else</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2101</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1892</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>lQfRDUtH/pSoPlleSfx2qW38Xa8=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as the return type of </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>f,</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> which must return an optional type.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Calls a function if the optional is empty.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional</literal>
      </text>
    </returns>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&lt;T&amp;&gt;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(std::invocable&lt;F&gt;)</requires>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>reset</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2116</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1901</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>C7IX7rHsnHDv4WObAGfzwOLKpII=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Resets the optional to an empty state.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>swap</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2000</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1779</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>0sezOtQcwTaucSDTeDMFLP2y+a8=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Swaps the contents of this optional with another.</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to swap with.</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <id>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
</function>
<function>
  <name>transform</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2077</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1879</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>5MuSAu0AgI9arI/EDEmzoWAAxVo=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <paragraph>
      <kind>paragraph</kind>
      <text>
        <kind>text</kind>
        <literal>The return type is the same as </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>std::invoke_result_t&lt;F, T&amp;&gt;</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>, but wrapped in an optional.</literal>
      </text>
    </paragraph>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Applies a function to the contained value if there is one.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>optional&lt;std::invoke_result_t&lt;F, T&amp;&gt;&gt;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The invocable to apply to the contained value</literal>
      </text>
      <name>f</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the invocable</literal>
      </text>
      <name>F</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>F</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>f</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>F</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>value</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2037</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1830</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>VAB1HjckTR+EtBS0EQS3k1yoFN4=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise throws</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>T&amp;</literal>
      </text>
    </returns>
  </doc-comment>
  <l-value-reference>
    <named>
      <name>
        <kind>identifier</kind>
        <identifier>T</identifier>
      </name>
    </named>
  </l-value-reference>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>value_or</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2046</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1849</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>HdkiHX5giyu1EfpJ1/OhYmg/pkw=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Returns the contained value if there is one, otherwise returns </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>u</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal>.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>std::remove_cv_t&lt;T&gt;</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The value to return in the empty case</literal>
      </text>
      <name>u</name>
    </param>
    <t-param>
      <kind>t-param</kind>
      <text>
        <kind>text</kind>
        <literal>The type of the alternate value</literal>
      </text>
      <name>U</name>
    </t-param>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>WC8G0xFiBsDp7q5TEczwwNV9uls=</id>
      <identifier>decay_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>u</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <type-targ>
        <kind>type</kind>
        <named>
          <name>
            <kind>specialization</kind>
            <id>oBQU97IoEgHraQ81HgvCM2NsQ0s=</id>
            <identifier>remove_cv_t</identifier>
            <name>
              <kind>identifier</kind>
              <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
              <identifier>std</identifier>
            </name>
          </name>
        </named>
      </type-targ>
      <key-kind>class</key-kind>
    </type-tparam>
    <requires>(std::is_object_v&lt;T&gt; &amp;&amp; !std::is_array_v&lt;T&gt;)</requires>
  </template>
  <func-class>normal</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<function>
  <name>operator bool</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>2028</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1816</line-number>
      <column-number>5</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>OosCP+eHvPFAql3lYwgG+tuIvl4=</id>
  <extraction>regular</extraction>
  <parent>Zs/QQI/wnJbLRYvV0XBQmu3hGTg=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Converts the optional to a boolean value.</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>bool</literal>
      </text>
    </returns>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <func-class>conversion</func-class>
  <is-record-method>1</is-record-method>
  <is-const>1</is-const>
</function>
<overloads>
  <name>make_optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1454</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>232</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>237</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>241</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>JD1e2JKrmzHwXwixpQcF00Hfyi0=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Make an optional</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>XDbVYkHspG4PB47wpWiRZOo0NlY=</members>
  <members>CdeCpJt0UcmBZE6rjeg3bNrs8/c=</members>
  <members>/sr6Giocx2Y8H6bVb17M9qnkBo4=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>make_optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1454</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>232</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>XDbVYkHspG4PB47wpWiRZOo0NlY=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Make an optional</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>Optional Objects</literal>
      </text>
    </returns>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>t</name>
  </param>
  <template>
    <constant-tparam>
      <kind>constant</kind>
      <constant-targ>
        <kind>constant</kind>
        <value>0</value>
      </constant-targ>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>int</identifier>
        </name>
      </named>
    </constant-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>std::is_constructible_v&lt;std::decay_t&lt;T&gt;, T&gt;</requires>
</function>
<function>
  <name>make_optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1462</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>237</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>CdeCpJt0UcmBZE6rjeg3bNrs8/c=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>std::is_constructible_v&lt;T, Args...&gt;</requires>
</function>
<function>
  <name>make_optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1470</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>241</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>/sr6Giocx2Y8H6bVb17M9qnkBo4=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <named>
    <name>
      <kind>specialization</kind>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
      <identifier>optional</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>specialization</kind>
        <id>3tT5Y8vozttMWXrA/fNw4NcDYTE=</id>
        <identifier>initializer_list</identifier>
        <name>
          <kind>identifier</kind>
          <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
          <identifier>std</identifier>
        </name>
      </name>
    </named>
    <name>il</name>
  </param>
  <param>
    <r-value-reference>
      <is-pack-expansion>1</is-pack-expansion>
      <named>
        <name>
          <kind>identifier</kind>
          <identifier>Args</identifier>
        </name>
      </named>
    </r-value-reference>
    <name>args</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>Args</name>
      <is-parameter-pack>1</is-parameter-pack>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>std::is_constructible_v&lt;T, std::initializer_list&lt;U&gt;&amp;, Args...&gt;</requires>
</function>
<function>
  <name>swap</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1447</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>225</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>function</kind>
  <id>h7d7FYRcQ1GHFPgVi9Bey+kSfwk=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Swap</literal>
      </text>
    </brief>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>Optional Objects</literal>
      </text>
      <name>x</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>Optional Objects</literal>
      </text>
      <name>y</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>void</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>x</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>y</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>std::is_move_constructible_v&lt;T&gt; &amp;&amp; std::is_swappable_v&lt;T&gt;</requires>
</function>
<overloads>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>127</line-number>
      <column-number>5</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>141</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>163</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>169</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>173</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>RJcVwVLG7J/h9o/JCZLV3DxqCTg=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>Op32q7BeWyrksJnEaOtQxHjxWjk=</members>
  <members>h5L6UUxvyCnZSKXkcV9/2OpLB10=</members>
  <members>ATfH0MV8EAQE6oE3e2OWsJsXhbs=</members>
  <members>ldpyPTVm1Y7c/9DQKi74IcVueYs=</members>
  <members>swsGy9qcHw7Y8Qpg4+/Y3T2iZ3U=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>127</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>Op32q7BeWyrksJnEaOtQxHjxWjk=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>lhs</name>
  </param>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
</function>
<function>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1296</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>141</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>h5L6UUxvyCnZSKXkcV9/2OpLB10=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_eq_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1344</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>163</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>ATfH0MV8EAQE6oE3e2OWsJsXhbs=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
</function>
<function>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1355</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>169</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>ldpyPTVm1Y7c/9DQKi74IcVueYs=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_eq_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator==</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1362</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>173</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>swsGy9qcHw7Y8Qpg4+/Y3T2iZ3U=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Equality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_eq_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator!=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1303</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>144</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>177</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>181</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>zqArjaAEi8qVfzlObBlH5MKWrlo=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Inequality operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>60GHDiC6o64xbYKp83E3A5iPrhE=</members>
  <members>2G159R1+8b1xkOK9u3FF3QDcAUY=</members>
  <members>1SR8jKCo/+PLXmlvDiRPyiRBZPs=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator!=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1303</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>144</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>60GHDiC6o64xbYKp83E3A5iPrhE=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Inequality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are not equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_ne_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator!=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1369</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>177</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>2G159R1+8b1xkOK9u3FF3QDcAUY=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Inequality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are not equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_ne_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator!=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1376</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>181</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>1SR8jKCo/+PLXmlvDiRPyiRBZPs=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Inequality operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the objects are not equal, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_ne_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator&lt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1310</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>147</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>185</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>189</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>d1BE23ziL5torDYlwcMppvTbJJE=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>1H2o8wwBLBtfWFOcBX54+6RBLVU=</members>
  <members>jqNZVersCFRVodB+gdVnvZn9RP4=</members>
  <members>Q3zo2xz+co6fbUCszzlZM+qhN6k=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator&lt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1310</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>147</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>1H2o8wwBLBtfWFOcBX54+6RBLVU=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_lt_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&lt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1383</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>185</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>jqNZVersCFRVodB+gdVnvZn9RP4=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_lt_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&lt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1390</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>189</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>Q3zo2xz+co6fbUCszzlZM+qhN6k=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_lt_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator&lt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1324</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>153</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>201</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>205</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>WTsPpLiJO8U0BYvaXj8GHDIyO44=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than-or-equal operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>FWQR8LQnPEO5+/SRa8W4Zc4jDlQ=</members>
  <members>+NwYIqZvYZCJp+QAWW6cbbSYqVU=</members>
  <members>wDJCUq1O0t9CKaGwSJFDFgao8ow=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator&lt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1324</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>153</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>FWQR8LQnPEO5+/SRa8W4Zc4jDlQ=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_le_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&lt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1411</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>201</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>+NwYIqZvYZCJp+QAWW6cbbSYqVU=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_le_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&lt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1418</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>205</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>wDJCUq1O0t9CKaGwSJFDFgao8ow=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Less-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is less than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_le_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1317</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>150</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>193</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>197</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>VgbIshRRKmNCyuTfwOcl5MmpwkM=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>hMFh4M52EIPFjJB+10a7s1LJuzw=</members>
  <members>0xp8ORXBP85+U8pJtrI9nkQUumg=</members>
  <members>MmqVacvEYzB7Pa687CdgZ8+52JI=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1317</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>150</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>hMFh4M52EIPFjJB+10a7s1LJuzw=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_gt_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1397</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>193</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>0xp8ORXBP85+U8pJtrI9nkQUumg=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_gt_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1404</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>197</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>MmqVacvEYzB7Pa687CdgZ8+52JI=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_gt_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator&gt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1331</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>156</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>209</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>213</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>lXqpsN2bfuokQhWN7H2Mr5TEESI=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than-or-equal operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>8yrDHvDuwqixD59O2cuFDo+EtbE=</members>
  <members>CzwIKHqqfNwhTTh8LWJ/LcPwrTA=</members>
  <members>08Dphw9EwUFrQNt+fAd0HKU/v5s=</members>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
</overloads>
<function>
  <name>operator&gt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1331</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>156</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>8yrDHvDuwqixD59O2cuFDo+EtbE=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>detail::optional_ge_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&gt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1425</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>209</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>CzwIKHqqfNwhTTh8LWJ/LcPwrTA=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;U&gt;) &amp;&amp; detail::optional_ge_rel&lt;T, U&gt;</requires>
</function>
<function>
  <name>operator&gt;=</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1432</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>213</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>08Dphw9EwUFrQNt+fAd0HKU/v5s=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Greater-than-or-equal operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>true</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> if the left object is greater than or equal to the right object, </literal>
      </text>
      <code>
        <kind>code</kind>
        <text>
          <kind>text</kind>
          <literal>false</literal>
        </text>
      </code>
      <text>
        <kind>text</kind>
        <literal> otherwise</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <identifier>bool</identifier>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>T</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>lhs</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
  <requires>(!detail::is_optional&lt;T&gt;) &amp;&amp; detail::optional_ge_rel&lt;T, U&gt;</requires>
</function>
<overloads>
  <name>operator&lt;=&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>129</line-number>
      <column-number>5</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>159</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>165</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>217</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>overloads</kind>
  <id>QzXoOOUPIgp2h8E2tTZ0kf1oZ+c=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Three-way comparison operators</literal>
      </text>
    </brief>
  </doc-comment>
  <func-class>normal</func-class>
  <members>pgYKFK/pI9e+W3RmO0EIWYyr3ww=</members>
  <members>ndNMB3Ehouv4lF1jzOa2IYgjEh4=</members>
  <members>VgontnHUiNvzkpoRIFv2Vvc88mo=</members>
  <members>Pmyd8rtgiEpg/HYz7tilkteBFhg=</members>
  <auto>
  </auto>
</overloads>
<function>
  <name>operator&lt;=&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>129</line-number>
      <column-number>5</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>pgYKFK/pI9e+W3RmO0EIWYyr3ww=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Three-way comparison operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>The relative order of the objects</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>lhs</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>xNBZKqeObqzKNIkFhNPAEF16IM4=</id>
      <identifier>strong_ordering</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>lhs</name>
  </param>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>rhs</name>
  </param>
  <func-class>normal</func-class>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1338</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>159</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>ndNMB3Ehouv4lF1jzOa2IYgjEh4=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Three-way comparison operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>The relative order of the objects</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>x</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>y</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>gTfDx7VqruV4aCClmwhF4Yb7fEU=</id>
      <identifier>compare_three_way_result_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>x</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>y</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>class</key-kind>
      <name>
        <kind>specialization</kind>
        <id>I/bey6Su6zQa8r7OgVrn2KMa/sY=</id>
        <identifier>three_way_comparable_with</identifier>
        <name>
          <kind>identifier</kind>
          <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
          <identifier>std</identifier>
        </name>
      </name>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1349</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>165</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>VgontnHUiNvzkpoRIFv2Vvc88mo=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Three-way comparison operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>The relative order of the objects</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>x</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>rhs</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>xNBZKqeObqzKNIkFhNPAEF16IM4=</id>
      <identifier>strong_ordering</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>x</name>
  </param>
  <param>
    <named>
      <name>
        <kind>identifier</kind>
        <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
        <identifier>nullopt_t</identifier>
      </name>
    </named>
    <name>rhs</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <func-class>normal</func-class>
</function>
<function>
  <name>operator&lt;=&gt;</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>1439</line-number>
      <column-number>1</column-number>
    </location>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>217</line-number>
      <column-number>1</column-number>
    </location>
  </source>
  <kind>function</kind>
  <id>Pmyd8rtgiEpg/HYz7tilkteBFhg=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Three-way comparison operator</literal>
      </text>
    </brief>
    <returns>
      <kind>returns</kind>
      <text>
        <kind>text</kind>
        <literal>The relative order of the objects</literal>
      </text>
    </returns>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The left operand</literal>
      </text>
      <name>x</name>
    </param>
    <param>
      <kind>param</kind>
      <text>
        <kind>text</kind>
        <literal>The right operand</literal>
      </text>
      <name>v</name>
    </param>
    <reference>
      <kind>reference</kind>
      <literal>optional</literal>
      <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
    </reference>
  </doc-comment>
  <named>
    <name>
      <kind>specialization</kind>
      <id>gTfDx7VqruV4aCClmwhF4Yb7fEU=</id>
      <identifier>compare_three_way_result_t</identifier>
      <name>
        <kind>identifier</kind>
        <id>eIvg7iueGIPcE8p1NVfngsp2ojw=</id>
        <identifier>std</identifier>
      </name>
    </name>
  </named>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>specialization</kind>
          <id>Pvkqsm2J3WYxmvM1xBy22WjfJxg=</id>
          <identifier>optional</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>x</name>
  </param>
  <param>
    <l-value-reference>
      <named>
        <is-const>1</is-const>
        <name>
          <kind>identifier</kind>
          <identifier>U</identifier>
        </name>
      </named>
    </l-value-reference>
    <name>v</name>
  </param>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <type-tparam>
      <kind>type</kind>
      <name>U</name>
      <key-kind>typename</key-kind>
    </type-tparam>
    <requires>(!is_derived_from_optional&lt;U&gt;) &amp;&amp; std::three_way_comparable_with&lt;T, U&gt;</requires>
  </template>
  <func-class>normal</func-class>
</function>
<variable>
  <name>in_place</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>71</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>variable</kind>
  <id>LGxPsHTRkREspc6wFZCA+H1/yPk=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Tag for in-place construction</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>mwtFNA7SiRZ2GcsbxvFhVCUxbJs=</id>
      <identifier>in_place_t</identifier>
    </name>
  </named>
  <initializer>in_place{}</initializer>
  <is-inline>1</is-inline>
  <is-constexpr>1</is-constexpr>
</variable>
<variable>
  <name>nullopt</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>135</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>variable</kind>
  <id>XJiUqbGEdK6DROB3Nrm3UwVrXzc=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Tag to disengage optional objects.</literal>
      </text>
    </brief>
  </doc-comment>
  <named>
    <name>
      <kind>identifier</kind>
      <id>qm9ez48c7jM2APsMBjONlFHv85U=</id>
      <identifier>nullopt_t</identifier>
    </name>
  </named>
  <initializer>nullopt{nullopt_t::Tag::tag}</initializer>
  <is-inline>1</is-inline>
  <is-constexpr>1</is-constexpr>
</variable>
<concept>
  <name>is_derived_from_optional</name>
  <source>
    <location>
      <short-path>beman/optional/optional.hpp</short-path>
      <source-path>include/beman/optional/optional.hpp</source-path>
      <line-number>104</line-number>
      <column-number>1</column-number>
      <documented>1</documented>
    </location>
  </source>
  <kind>concept</kind>
  <id>9xISP7ucNqSnlc7wjTUi6kniZpI=</id>
  <extraction>regular</extraction>
  <parent>a5kXR3ZLcgojav1V+kZ4pHxrrv8=</parent>
  <doc-comment>
    <brief>
      <kind>brief</kind>
      <text>
        <kind>text</kind>
        <literal>Concept for checking if derived from optional.</literal>
      </text>
    </brief>
  </doc-comment>
  <template>
    <type-tparam>
      <kind>type</kind>
      <name>T</name>
      <key-kind>class</key-kind>
    </type-tparam>
  </template>
  <constraint>requires(const T&amp; t) { // exposition only
    []&lt;class U&gt;(const optional&lt;U&gt;&amp;) {}(t);
}</constraint>
</concept>
</mrdocs>
