\lstdefinelanguage{Clean}{%
	alsoletter={ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_`1234567890},
	alsoletter={~!@\#$\%^\&*-+=?<>:|\\.},
	alsoother={.},
	alsodigit={1234567890},
	morekeywords={generic,implementation,definition,dynamic,module,import,where,in,of,case,let,infix,infixr,infixl,class,instance,with,if,derive,code,In,qualified,otherwise,from,foreign,export,ccall,stdcall},
	sensitive=true,
	morecomment=[l]{//},
	morecomment=[n]{/*}{*/},
	morestring=[b]",
	morestring=[s]{['}{']},
	literate=%
		{\_}{{\raisebox{.15ex}{\_}}}1
		{~}{{\raisebox{-.6ex}{\textasciitilde}}}1
		{...}{{$\cdots$}}1
		{->}{{$\shortrightarrow$}}2
		{=>}{{$\Rightarrow$}}2
}
