\lstdefinelanguage{lHaskell}{ language=haskell, moredelim=**[is][{\xlsthlwarning}]{|warn|}{|warn|}, moredelim=**[is][{\xlsthlerror}]{|err|}{|err|}, moredelim=**[il][{\xlsthlerror}]{|err|:}, moredelim=**[is][{\xlsthlinfo}]{|info|}{|info|}, moredelim=[is][{}]{|plain|}{|plain|}, comment=[l]{--}, deletekeywords={Maybe,Either,Maybe,Either,Nothing,Just,Left,Right,\$}, morecomment=[s]{\{-}{-\}}, escapeinside={!*}{*!}, % !! would collide with the '!!' List select operator morekeywords = {:l,:cd,:q,:r,:t,String,Char,Bool,Show}, morekeywords = [2]{<,>,->,=>,<-,>=}, morekeywords = [3]{True,False,Maybe,Either,Nothing,Just,Left,Right}, morekeywords = [4]{::,\$}, morekeywords = [5]{Prelude>,\*Main>}, alsoletter={-|~_.><=:\*'}, } \RegisterLanguage{haskell}{lHaskell}