After code block

\begin{codelisting}

\caption{Listing caption 1}

\hypertarget{lst:code1}{%
\label{lst:code1}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 2}

\hypertarget{lst:code2}{%
\label{lst:code2}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 3}

\hypertarget{lst:code3}{%
\label{lst:code3}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 4}

\hypertarget{lst:code4}{%
\label{lst:code4}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

: Listing caption 5 (invalid)

\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

: Listing caption 6 (invalid)

Before code block

\begin{codelisting}

\caption{Listing caption 11}

\hypertarget{lst:code11}{%
\label{lst:code11}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 12}

\hypertarget{lst:code12}{%
\label{lst:code12}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 13}

\hypertarget{lst:code13}{%
\label{lst:code13}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{codelisting}

\caption{Listing caption 14}

\hypertarget{lst:code14}{%
\label{lst:code14}}%
\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

\end{codelisting}

\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}

: Listing caption 15 (invalid)

\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}

: Listing caption 16 (invalid)

\begin{Shaded}
\begin{Highlighting}[]
\OtherTok{main ::} \DataTypeTok{IO}\NormalTok{ ()}
\NormalTok{main }\OtherTok{=} \FunctionTok{putStrLn} \StringTok{"Hello World!"}
\end{Highlighting}
\end{Shaded}
