\usepackage{listings} \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}, sensitive=true, morecomment=[l]{//}, morecomment=[n]{/*}{*/}, morestring=[b]", morestring=[b]', emptylines=1, basicstyle=\small, identifierstyle=\ttfamily, commentstyle=\itshape, keywordstyle=\bfseries, stringstyle=\ttfamily, numbers=none, showstringspaces=false, basewidth=0.45em, columns=[c]fixed, keepspaces=true, breaklines=false, tabsize=4, texcl=true, escapeinside={(\#}{\#)}, literate=% % Basic Clean constructs {\\}{{$\lambda\:$}}1 {A.}{{$\forall\;\,$}}1 {E.}{{$\exists\;\,$}}1 {>}{{$>$}}1 {<}{{$<$}}1 {`}{{\texttt{'}}}1 {<=}{{$\leq$}}1 {>=}{{$\geq$}}1 {<>}{{$\neq$}}1 {->}{{$\rightarrow$}}2 {<-}{{$\leftarrow$}}1 {=}{{$=$}}1 {~}{{$\sim$}}1 {*}{{$\star$}}1 {\#}{{$\sharp$}}1 {\{|}{{$\{\!|\!$}}1 {|\}}{{$\!|\!\}$}}1 {:=}{{$:=$}}2 {=:}{{$\>=:$}}3 {==}{{$==$}}2 {++}{{$+\!\!+$}}2 {+++}{{$+\!\!\!\!+\!\!\!\!+$}}2 {:==}{{$:==$}}3 {\{|*|\}}{{$\{\!|\!\!\star\!\!|\!\}$}}3 % % Basic iTask constructs {>||>}{{$\triangleright\triangleright$}}2 {>>=}{{\texttt{>>=}}}3 {>>|}{{\texttt{>>|}}}3 {?>>}{{\texttt{?>>}}}3 {!>>}{{\texttt{!>>}}}3 {-||-}{{\texttt{-||-}}}4 {.||.}{{\texttt{.||.}}}4 {.&&.}{{\texttt{.\&\&.}}}4 } \newcommand{\CleanInline}[1]{\lstinline[language=Clean]¦#1¦} \newcommand{\CI}[1]{\CleanInline{#1}} \lstdefinestyle{numbers}{numbers=left, stepnumber=1, numberstyle=\tiny, numbersep=5pt} \lstnewenvironment{CleanCode}{\lstset{language=Clean,identifierstyle=\ttfamily}}{} \lstnewenvironment{CleanCodeN}{\lstset{language=Clean,style=numbers}}{} \lstnewenvironment{CleanCodeB}{\lstset{language=Clean,frame=single}}{} \lstnewenvironment{CleanCodeNB}{\lstset{language=Clean,style=numbers,frame=single}}{}