content: \documentclass[fleqn]{article}
  
  \usepackage[german]{babel}
  \usepackage{moreverb}
  \usepackage{boxedminipage}
  \parindent0cm
  
  \newcommand{\Show}[1]{\listinginput{1}{#1.snip}\input{#1.tex}}
  
  %-------------------------------=  --------------------------------------------
  
  %include ../lhs2TeX.fmt
  
  %-------------------------------=  --------------------------------------------
  
  \begin{document}
  
  %-------------------------------=  --------------------------------------------
  \section{String gaps}
  %-------------------------------=  --------------------------------------------
  
  \Show{gap}
  
  %-------------------------------=  --------------------------------------------
  \section{Identifiers}
  %-------------------------------=  --------------------------------------------
  
  \Show{idents}
  
  %-------------------------------=  --------------------------------------------
  \section{Operators}
  %-------------------------------=  --------------------------------------------
  
  \Show{operators}
  
  %-------------------------------=  --------------------------------------------
  \section{Special symbols}
  %-------------------------------=  --------------------------------------------
  
  \Show{special}
  
  %-------------------------------=  --------------------------------------------
  \section{Spacing}
  %-------------------------------=  --------------------------------------------
  
  \Show{spacing}
  \Show{braces}
  
  %-------------------------------=  --------------------------------------------
  \section{Indentation}
  %-------------------------------=  --------------------------------------------
  
  \Show{indentation}
  %
  \NB Die senkrechten Striche sind im ersten Beispiel etwas einger"uckt,
  da \verb|\mid| als Operator gesetzt wird. Schlie"st man die linke Seite
  in \verb|{..}| ein, dann wird |weird| nicht richtig gesetzt. Die rechte
  Seite \emph{wird} in \verb|{..}| eingeschlossen, damit |list| und
  |main| richtig gesetzt werden (auf diese Weise verliert \verb|\mid|
  seinen Status als Operator).
  
  %-------------------------------=  --------------------------------------------
  \section{Format directives}
  %-------------------------------=  --------------------------------------------
  
  \Show{format}
  \Show{parens}
  
  %-------------------------------=  --------------------------------------------
  \section{Errors}
  %-------------------------------=  --------------------------------------------
  
  \Show{errors}
  
  %-------------------------------=  --------------------------------------------
  \section{Meta-Haskell}
  %-------------------------------=  --------------------------------------------
  
  Erfordert \verb|-l'meta = True'| Kommandozeilenoption (wichtig: \emph{vor}
  \verb@-i lhs2TeX.fmt@ angeben).
  %
  \Show{meta}
  
  %-------------------------------=  --------------------------------------------
  \section{Comments}
  %-------------------------------=  --------------------------------------------
  
  \Show{comments}
  
  %-------------------------------=  --------------------------------------------
  \section{Verbatim}
  %-------------------------------=  --------------------------------------------
  
  \verb|khadrkh| und \verb*|kjhsfd  kjghsdf|.
  %
  \begin{verbatim}
  bass  sdakh asd asd
  \end{verbatim}
  %
  \begin{verbatim*}
  bass  sdakh asd asd
  \end{verbatim*}
  
  %-------------------------------=  --------------------------------------------
  \section{Active commands}
  %-------------------------------=  --------------------------------------------
  
  |product [1..20]| yields \eval{product [1..20]}.
  %if False
  
  > default (Integer)
  
  > group n			=  map (take n)
  >				.  takeWhile (not . null)
  >				.  iterate (drop n)
  > rows				=  concat
  >				.  intersperse " \\\\\n"
  >				.  map (\(n, s) -> show n ++ " & " ++ s)
  >				.  zip [1 ..]
  >				.  group 60
  > intersperse s []		=  []
  > intersperse s [a]		=  [a]
  > intersperse s (a1 : a2 : as)	=  a1 : s : intersperse s (a2 : as)
  > out n				=  putStr (rows (show n))
  
  %endif
  |product [1..200]| yields
  \[
  \begin{array}{rl}
      \perform{out (product [1..200])}
  \end{array}
  \]
  
  > twice f a			=  f (f a)
  
  \eval{:type twice} und \eval{:type twice twice} haben den gleichen
  Typ.
  
  %-------------------------------=  --------------------------------------------
  \section{Active commands with @ghci@}
  %-------------------------------=  --------------------------------------------
  
  %options ghci -fglasgow-exts -fno-monomorphism-restriction
  |product [1..20]| yields \eval{product [1..20]}.
  %if False
  
  > main = undefined
  
  %endif
  |product [1..200]| yields
  \[
  \begin{array}{rl}
      \perform{out (product [1..200])}
  \end{array}
  \]
  
  < twice f a			=  f (f a)
  
  %format forall = "\forall "
  %format .      = "."
  \eval{:type twice} und \eval{:type twice twice} haben den gleichen
  Typ.
  
  \end{document}
  