\documentclass[11pt]{article} 
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{textcomp}
\usepackage{fullpage} 
\usepackage{url} 
\usepackage{ocamldoc}
\begin{document}
\tableofcontents
\section{Module {\tt{Variants}} : This test is here to check the latex code generated for variants}
\label{Variants}\index{Variants@\verb`Variants`}




\ocamldocvspace{0.5cm}



\label{TYPVariants.s}\begin{ocamldoccode}
type s =
  | A
  | B
\end{ocamldoccode}
\begin{ocamldoccomment}
only B is documented here


\end{ocamldoccomment}
\begin{ocamldoccode}
  | C
\end{ocamldoccode}
\index{s@\verb`s`}




\label{TYPVariants.t}\begin{ocamldoccode}
type t =
  | A
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for A.
        \begin{ocamldoccode}
0
\end{ocamldoccode}

        With three paragraphs.
        \begin{ocamldoccode}
1
\end{ocamldoccode}

        To check styling


\end{ocamldoccomment}
\begin{ocamldoccode}
  | B
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for B


\end{ocamldoccomment}
\index{t@\verb`t`}




\label{TYPVariants.u}\begin{ocamldoccode}
type u =
  | A
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for A


\end{ocamldoccomment}
\begin{ocamldoccode}
  | B of unit
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for B


\end{ocamldoccomment}
\index{u@\verb`u`}
\begin{ocamldocdescription}
Some documentation for u


\end{ocamldocdescription}




\label{TYPVariants.w}\begin{ocamldoccode}
type w =
  | A of {\char123}  x : int ;
{\char125}
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for A


\end{ocamldoccomment}
\begin{ocamldoccode}
  | B of {\char123}  y : int ;
{\char125}
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for B


\end{ocamldoccomment}
\index{w@\verb`w`}
\begin{ocamldocdescription}
With records


\end{ocamldocdescription}




\label{TYPVariants.z}\begin{ocamldoccode}
type z =
  | A of int
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for A


\end{ocamldoccomment}
\begin{ocamldoccode}
  | B of int
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for B


\end{ocamldoccomment}
\index{z@\verb`z`}
\begin{ocamldocdescription}
With args


\end{ocamldocdescription}




\label{TYPVariants.a}\begin{ocamldoccode}
type a =
  | A : a
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for A


\end{ocamldoccomment}
\index{a@\verb`a`}
\begin{ocamldocdescription}
Gadt notation


\end{ocamldocdescription}




\label{TYPVariants.b}\begin{ocamldoccode}
type b =
  | B
\end{ocamldoccode}
\begin{ocamldoccomment}
doc for B


\end{ocamldoccomment}
\index{b@\verb`b`}
\begin{ocamldocdescription}
Lonely constructor


\end{ocamldocdescription}




\label{TYPVariants.no-underscoredocumentation}\begin{ocamldoccode}
type no_documentation =
  | A
  | B
  | C
\end{ocamldoccode}
\index{no-underscoredocumentation@\verb`no_documentation`}




\label{TYPVariants.e}\begin{ocamldoccode}
type e =
  |
\end{ocamldoccode}
\index{e@\verb`e`}
\begin{ocamldocdescription}
Empty variant


\end{ocamldocdescription}


\end{document}
