+% Nice tables
+\usepackage{booktabs}
+
+% Automatically wrapping tables
+\usepackage{tabularx}
+
+% Use a fixed document date
+\usepackage[nodayofweek]{datetime}
+
+% Code
+\usepackage{stmaryrd} % Short arrow
+\usepackage{listings}
+% General listings settings
+\lstset{%
+ basewidth=0.43em,
+ basicstyle=\linespread{0.9}\tt\footnotesize,
+ breakatwhitespace=false,
+ breaklines=true,
+ captionpos=b,
+ columns=[c]fixed,
+ commentstyle=\sl,
+ escapeinside={(+}{+)}, % chktex 9
+ frame=L,
+ keepspaces=true,
+ keywordstyle=\bf,
+ postbreak=\mbox{\textcolor{gray}{$\hookrightarrow$}\space},
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ stringstyle=\it,
+ tabsize=4,
+ literate=%
+ {~}{$\sim$}1
+ {\\}{{$\lambda\:$}}1
+ {->}{{$\shortrightarrow$}}2
+ {<-}{{$\shortleftarrow$}}2
+ {=>}{{$\Rightarrow$}}2
+ {<=}{{$\Leftarrow$}}2
+ {'}{{`}}1
+ {...}{{$\cdots$}}1 %chktex 11
+ {a0}{{a\textsubscript{0}}}2
+ {a1}{{a\textsubscript{1}}}2
+ {a2}{{a\textsubscript{2}}}2
+% {an}{{a\textsubscript{n}}}2
+ {c0}{{c\textsubscript{0}}}2
+ {c1}{{c\textsubscript{1}}}2
+ {c2}{{c\textsubscript{2}}}2
+ {cn}{{c\textsubscript{n}}}2
+ {f0}{{f\textsubscript{0}}}2
+ {f1}{{f\textsubscript{1}}}2
+ {f2}{{f\textsubscript{2}}}2
+ {fn}{{f\textsubscript{n}}}2
+ {t0}{{t\textsubscript{0}}}2
+ {t1}{{t\textsubscript{1}}}2
+ {t2}{{t\textsubscript{2}}}2
+ {tn}{{t\textsubscript{n}}}2
+ {v0}{{v\textsubscript{0}}}2
+ {v1}{{v\textsubscript{1}}}2
+ {v2}{{v\textsubscript{2}}}2
+ {vn}{{v\textsubscript{n}}}2
+ {C0}{{C\textsubscript{0}}}2
+ {C1}{{C\textsubscript{1}}}2
+ {C2}{{C\textsubscript{2}}}2
+ {Cn}{{C\textsubscript{n}}}2
+ {R0}{{R\textsubscript{0}}}2
+ {R1}{{R\textsubscript{1}}}2
+ {R2}{{R\textsubscript{2}}}2
+ {Rn}{{R\textsubscript{n}}}2
+}
+\lstdefinestyle{haskell}{%
+ language=Haskell,
+ deletekeywords={True,False,Bool,Int,Float,Double,zip,length,Show,show,Num,Eq,print,String},
+}
+\lstdefinelanguage{Clean}{%
+ alsoletter={ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`1234567890},
+ alsoletter={~!@\#$\%^\&*-+=?<>:|\\.},
+ morekeywords={generic,implementation,definition,dynamic,module,import,from,where,in,of,case,let,infix,infixr,infixl,class,instance,with,if,derive,code,In,qualified,otherwise},
+ sensitive=true,
+ morecomment=[l]{//},
+ morecomment=[n]{/*}{*/},
+ morestring=[b]", % chktex 18
+ morestring=[s]{['}{']}, % chktex 9
+}
+\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|}
+\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=]|#1|}