@c AUTOMATICALLY GENERATED, DO NOT MODIFY

@section Section

@subsection Subsection

@strong{strong} @emph{with emphasis}
@code{var} @{in braces@}
@itemize @bullet
@item
List item one
@item
Two, multiple
lines

@item
Three
Still in list

@end itemize

Not in list
@itemize @minus
@item
Second list
Note: still in list

@end itemize

Note: not in list
@enumerate
@item
Third list
is numbered

@item
another item

@example
example
@end example

@example
multiple lines
@end example


@end enumerate

Returns: the King
Since: the first age
Notes:

@enumerate
@item
Lorem ipsum dolor sit amet

@item
Ut enim ad minim veniam

@end enumerate

Duis aute irure dolor

Example:

-> in
<- out
Examples:
@itemize @minus
@item
@strong{verbatim}
@item
@{braces@}
@end itemize



@deftp {Enum} Enum



@b{Values:}
@table @asis
@item @code{one}
The @emph{one} @{and only@}
@*@b{If:} @code{defined(IFONE)}
@item @code{two}
Not documented
@end table
@code{two} is undocumented

@b{If:} @code{defined(IFCOND)}
@end deftp



@deftp {Object} Base



@b{Members:}
@table @asis
@item @code{base1: Enum}
the first member
@end table

@end deftp



@deftp {Object} Variant1

A paragraph

Another paragraph (but no @code{var}: line)

@b{Members:}
@table @asis
@item @code{var1: string}
Not documented
@*@b{If:} @code{defined(IFSTR)}
@end table

@end deftp



@deftp {Object} Variant2



@end deftp



@deftp {Object} Object



@b{Members:}
@table @asis
@item The members of @code{Base}
@item The members of @code{Variant1} when @code{base1} is @t{"one"}
@item The members of @code{Variant2} when @code{base1} is @t{"two"} (@b{If:} @code{IFTWO})
@end table

@end deftp



@deftp {Object} SugaredUnion



@b{Members:}
@table @asis
@item @code{type}
One of @t{"one"}, @t{"two"}
@item @code{data: Variant1} when @code{type} is @t{"one"}
@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:} @code{IFTWO})
@end table

@end deftp


@subsection Another subsection


@deftypefn Command {} cmd



@b{Arguments:}
@table @asis
@item @code{arg1: int}
the first argument
@item @code{arg2: string} (optional)
the second
argument
@item @code{arg3: boolean}
Not documented
@end table

@b{Note:}
@code{arg3} is undocumented

@b{Returns:}
@code{Object}

@b{TODO:}
frobnicate

@b{Notes:}
@itemize @minus
@item
Lorem ipsum dolor sit amet
@item
Ut enim ad minim veniam

@end itemize

Duis aute irure dolor

@b{Example:}
@example
-> in
<- out
@end example

@b{Examples:}
@example
- *verbatim*
- @{braces@}
@end example

@b{Since:}
2.10

@end deftypefn



@deftypefn Command {} cmd-boxed

If you're bored enough to read this, go see a video of boxed cats

@b{Arguments:} the members of @code{Object}

@b{Example:}
@example
-> in

<- out
@end example

@end deftypefn

