File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.hs</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Haskell) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887">-- test file for Haskell syntax highlighting in KDE's Kate</span>
0008 
0009 <span style="color:#898887">-- The test file for literate Haskell can be easily created like this:</span>
0010 <span style="color:#898887">--  cat highlight.hs | sed -e "s|^|> |" -e "s|> -- ||" -e "s|^> $||" > highlight.lhs</span>
0011 <span style="color:#898887">-- You only have to manually edit the multi-line comment below.</span>
0012 
0013 <span style="color:#898887">-- this is a single-line comment</span>
0014 
0015 <span style="color:#898887">{- this is a multi-line comment</span>
0016 
0017 <span style="color:#898887">Things like "a string" or a </span><span style="color:#898887;text-decoration:underline">'c'</span><span style="color:#898887"> character shouldn't be highlighted in here.</span>
0018 
0019 <span style="color:#898887">-- I could even start a new</span>
0020 <span style="color:#898887">-- one-line comment.</span>
0021 
0022 <span style="color:#898887">-}</span>
0023 
0024 <span style="font-weight:bold">import</span> <span style="color:#0057ae">Prelude</span> <span style="color:#898887">--</span>
0025 <span style="font-weight:bold">import</span> <span style="color:#0057ae">Prelude</span> <span style="color:#898887">---</span>
0026 
0027 <span style="color:#898887">-- a data definition</span>
0028 
0029 <span style="font-weight:bold">data</span> <span style="color:#0057ae">Tree</span> a <span style="color:#006e28">=</span> <span style="color:#0057ae">Br</span> (<span style="color:#0057ae">Tree</span> a) (<span style="color:#0057ae">Tree</span> a) <span style="color:#ca60ca">|</span> <span style="color:#0057ae">Leaf</span> a <span style="color:#ca60ca">|</span> <span style="color:#0057ae">Nil</span> <span style="font-weight:bold">deriving</span> (<span style="color:#0057ae">Show</span>, <span style="color:#0057ae">Eq</span>)
0030 
0031 
0032 <span style="color:#898887">-- function definition, "funnyfunction::", </span><span style="color:#898887;text-decoration:underline">"Integer"</span><span style="color:#898887">, </span><span style="color:#898887;text-decoration:underline">"Int"</span><span style="color:#898887">, </span><span style="color:#898887;text-decoration:underline">"Bool"</span><span style="color:#898887"> should be highlighted</span>
0033 
0034 <span style="color:#006e28">funnyfunction</span><span style="color:#006e28">::</span>(<span style="color:#0057ae">Tree</span> a)<span style="color:#006e28">=></span>[a]<span style="color:#006e28">-></span><span style="color:#0057ae">Integer</span><span style="color:#006e28">-></span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">Bool</span>
0035 
0036 
0037 <span style="color:#898887">-- strings and chars</span>
0038 <span style="color:#898887">-- first line of function definitions (type declaration) should be highlighted</span>
0039 
0040 <span style="color:#006e28">strangefunction</span><span style="color:#006e28">::</span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">String</span>
0041 strangefunction <span style="color:#b08000">1</span> <span style="color:#006e28">=</span> <span style="color:#bf0303">"hello"</span>
0042 strangefunction <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#bf0303">"what's up"</span>
0043 strangefunction <span style="color:#b08000">3</span> <span style="color:#006e28">=</span> (strangefunction <span style="color:#b08000">1</span>) <span style="color:#ca60ca">++</span> <span style="color:#bf0303">", "</span> <span style="color:#ca60ca">++</span> (strangefunction <span style="color:#b08000">2</span>)
0044 strangefunction <span style="color:#b08000">4</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'a'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'b'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'c'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'"'</span><span style="color:#ca60ca">:</span>[] <span style="color:#898887">-- will return "abc"</span>
0045 strangefunction <span style="color:#b08000">5</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'\n'</span><span style="color:#ca60ca">:</span>[]
0046 strangefunction <span style="color:#b08000">6</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'\invalidhaskell'</span><span style="color:#ca60ca">:</span>[]
0047 
0048 <span style="color:#898887">-- function name including the single quote character</span>
0049 <span style="color:#898887">-- and infix operator (`div`)</span>
0050 
0051 <span style="color:#006e28">justtesting'</span><span style="color:#006e28">::</span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">Int</span>
0052 justtesting' <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">+</span><span style="color:#b08000">1</span>
0053 justtesting' <span style="color:#b08000">9</span> <span style="color:#006e28">=</span> <span style="color:#b08000">7</span> <span style="color:#006e28">`div`</span> <span style="color:#b08000">2</span>
0054 
0055 <span style="color:#898887">-- same definition as above, slightly different function name and a couple more whitespaces</span>
0056 
0057 <span style="color:#006e28">justtesting''   </span><span style="color:#006e28">::</span>    <span style="color:#0057ae">Int</span> <span style="color:#006e28">-></span> <span style="color:#0057ae">Int</span>
0058 justtesting''   <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#b08000">3</span>
0059 justtesting''   <span style="color:#b08000">9</span>    <span style="color:#006e28">=</span>   <span style="color:#b08000">3</span> <span style="color:#ca60ca">+</span> <span style="color:#b08000">9</span> <span style="color:#ca60ca">-</span> <span style="color:#b08000">9</span>
0060 
0061 <span style="color:#898887">-- the following lines are copied out of Haskell's "Prelude.hs"</span>
0062 
0063 <span style="font-weight:bold">infixl</span> <span style="color:#b08000">7</span>  <span style="color:#ca60ca">*</span>, <span style="color:#ca60ca">/</span>, <span style="color:#006e28">`quot`</span>, <span style="color:#006e28">`rem`</span>, <span style="color:#006e28">`div`</span>, <span style="color:#006e28">`mod`</span>, <span style="color:#ca60ca">:%</span>, <span style="color:#ca60ca">%</span>
0064 
0065 
0066 <span style="color:#898887">-- everything highlighted except the "a"</span>
0067 
0068 <span style="font-weight:bold">class</span> <span style="color:#0057ae">Bounded</span> a <span style="font-weight:bold">where</span>
0069     <span style="color:#644a9b">minBound</span>,<span style="color:#006e28"> maxBound </span><span style="color:#006e28">::</span> a
0070 
0071 <span style="font-weight:bold">class</span> (<span style="color:#0057ae">Num</span> a, <span style="color:#0057ae">Ord</span> a) <span style="color:#006e28">=></span> <span style="color:#0057ae">Real</span> a <span style="font-weight:bold">where</span>
0072 <span style="color:#006e28">    toRational     </span><span style="color:#006e28">::</span> a <span style="color:#006e28">-></span> <span style="color:#0057ae">Rational</span>
0073 
0074 <span style="color:#898887">-- finally, some keyword lists</span>
0075 
0076 <span style="color:#898887">-- keywords</span>
0077 
0078 <span style="font-weight:bold">case</span>, <span style="font-weight:bold">class</span>, <span style="font-weight:bold">data</span>, <span style="font-weight:bold">deriving</span>, <span style="font-weight:bold">do</span>, <span style="font-weight:bold">else</span>, <span style="font-weight:bold">family</span>, <span style="font-weight:bold">forall</span>, <span style="font-weight:bold">if</span>, <span style="font-weight:bold">in</span>, <span style="font-weight:bold">infixl</span>, <span style="font-weight:bold">infixr</span>,
0079 <span style="font-weight:bold">instance</span>, <span style="font-weight:bold">let</span>, <span style="font-weight:bold">module</span>, <span style="font-weight:bold">of</span>, <span style="font-weight:bold">pattern</span>, <span style="font-weight:bold">primitive</span>,
0080 <span style="font-weight:bold">then</span>, <span style="font-weight:bold">type</span>, <span style="font-weight:bold">where</span>
0081 
0082 <span style="color:#898887">-- infix operators</span>
0083 
0084 <span style="color:#644a9b">quot</span>, <span style="color:#644a9b">rem</span>, <span style="color:#644a9b">div</span>, <span style="color:#644a9b">mod</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">notElem</span>, <span style="color:#644a9b">seq</span>
0085 
0086 <span style="color:#898887">-- this stuff is not handled yet</span>
0087 
0088 <span style="color:#ca60ca">!!</span>, <span style="color:#ca60ca">%</span>, <span style="color:#ca60ca">&amp;&amp;</span>, <span style="color:#ca60ca">$!</span>, <span style="color:#ca60ca">$</span>, <span style="color:#ca60ca">*</span>, <span style="color:#ca60ca">**</span>, <span style="color:#ca60ca">-</span>,<span style="color:#ca60ca">.</span>, <span style="color:#ca60ca">/=</span>, <span style="color:#ca60ca">&lt;</span>, <span style="color:#ca60ca">&lt;=</span>, <span style="color:#ca60ca">=&lt;&lt;</span>, <span style="color:#ca60ca">==</span>, <span style="color:#ca60ca">></span>, <span style="color:#ca60ca">>=</span>, <span style="color:#ca60ca">>></span>, <span style="color:#ca60ca">>>=</span>, <span style="color:#ca60ca">^</span>, <span style="color:#ca60ca">^^</span>, <span style="color:#ca60ca">++</span>, <span style="color:#ca60ca">||</span>
0089 
0090 <span style="color:#898887">-- functions</span>
0091 
0092 <span style="color:#644a9b">abs</span>, <span style="color:#644a9b">acos</span>, <span style="color:#644a9b">acosh</span>, <span style="color:#644a9b">all</span>, <span style="color:#644a9b">and</span>, <span style="color:#644a9b">any</span>, <span style="color:#644a9b">appendFile</span>,
0093 <span style="color:#644a9b">approxRational</span>, <span style="color:#644a9b">asTypeOf</span>, <span style="color:#644a9b">asin</span>, <span style="color:#644a9b">asinh</span>, <span style="color:#644a9b">atan</span>, <span style="color:#644a9b">atan2</span>, <span style="color:#644a9b">atanh</span>, <span style="color:#644a9b">basicIORun</span>,
0094 <span style="color:#644a9b">break</span>, <span style="color:#644a9b">catch</span>, <span style="color:#644a9b">ceiling</span>, <span style="color:#644a9b">chr</span>, <span style="color:#644a9b">compare</span>, <span style="color:#644a9b">concat</span>, <span style="color:#644a9b">concatMap</span>, <span style="color:#644a9b">const</span>, <span style="color:#644a9b">cos</span>, <span style="color:#644a9b">cosh</span>,
0095 <span style="color:#644a9b">curry</span>, <span style="color:#644a9b">cycle</span>, <span style="color:#644a9b">decodeFloat</span>, <span style="color:#644a9b">denominator</span>, <span style="color:#644a9b">digitToInt</span>, <span style="color:#644a9b">div</span>, <span style="color:#644a9b">divMod</span>, <span style="color:#644a9b">drop</span>,
0096 <span style="color:#644a9b">dropWhile</span>, <span style="color:#644a9b">either</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">encodeFloat</span>, <span style="color:#644a9b">enumFrom</span>, <span style="color:#644a9b">enumFromThen</span>,
0097 <span style="color:#644a9b">enumFromThenTo</span>, <span style="color:#644a9b">enumFromTo</span>, <span style="color:#644a9b">error</span>, <span style="color:#644a9b">even</span>, <span style="color:#644a9b">exp</span>, <span style="color:#644a9b">exponent</span>, <span style="color:#644a9b">fail</span>, <span style="color:#644a9b">filter</span>, <span style="color:#644a9b">flip</span>,
0098 <span style="color:#644a9b">floatDigits</span>, <span style="color:#644a9b">floatRadix</span>, <span style="color:#644a9b">floatRange</span>, <span style="color:#644a9b">floor</span>, <span style="color:#644a9b">fmap</span>, <span style="color:#644a9b">foldl</span>, <span style="color:#644a9b">foldl1</span>, <span style="color:#644a9b">foldr</span>,
0099 <span style="color:#644a9b">foldr1</span>, <span style="color:#644a9b">fromDouble</span>, <span style="color:#644a9b">fromEnum</span>, <span style="color:#644a9b">fromInt</span>, <span style="color:#644a9b">fromInteger</span>, <span style="color:#644a9b">fromIntegral</span>,
0100 <span style="color:#644a9b">fromRational</span>, <span style="color:#644a9b">fst</span>, <span style="color:#644a9b">gcd</span>, <span style="color:#644a9b">getChar</span>, <span style="color:#644a9b">getContents</span>, <span style="color:#644a9b">getLine</span>, <span style="color:#644a9b">head</span>, <span style="color:#644a9b">id</span>, <span style="color:#644a9b">inRange</span>,
0101 <span style="color:#644a9b">index</span>, <span style="color:#644a9b">init</span>, <span style="color:#644a9b">intToDigit</span>, <span style="color:#644a9b">interact</span>, <span style="color:#644a9b">ioError</span>, <span style="color:#644a9b">isAlpha</span>, <span style="color:#644a9b">isAlphaNum</span>, <span style="color:#644a9b">isAscii</span>,
0102 <span style="color:#644a9b">isControl</span>, <span style="color:#644a9b">isDenormalized</span>, <span style="color:#644a9b">isDigit</span>, <span style="color:#644a9b">isHexDigit</span>, <span style="color:#644a9b">isIEEE</span>, <span style="color:#644a9b">isInfinite</span>, <span style="color:#644a9b">isLower</span>,
0103 <span style="color:#644a9b">isNaN</span>, <span style="color:#644a9b">isNegativeZero</span>, <span style="color:#644a9b">isOctDigit</span>, <span style="color:#644a9b">isPrint</span>, <span style="color:#644a9b">isSpace</span>, <span style="color:#644a9b">isUpper</span>, <span style="color:#644a9b">iterate</span>, <span style="color:#644a9b">last</span>,
0104 <span style="color:#644a9b">lcm</span>, <span style="color:#644a9b">length</span>, <span style="color:#644a9b">lex</span>, <span style="color:#644a9b">lexDigits</span>, <span style="color:#644a9b">lexLitChar</span>, <span style="color:#644a9b">lines</span>, <span style="color:#644a9b">log</span>, <span style="color:#644a9b">logBase</span>, <span style="color:#644a9b">lookup</span>, <span style="color:#644a9b">map</span>,
0105 <span style="color:#644a9b">mapM</span>, <span style="color:#644a9b">mapM_</span>, <span style="color:#644a9b">max</span>, <span style="color:#644a9b">maxBound</span>, <span style="color:#644a9b">maximum</span>, <span style="color:#644a9b">maybe</span>, <span style="color:#644a9b">min</span>, <span style="color:#644a9b">minBound</span>, <span style="color:#644a9b">minimum</span>, <span style="color:#644a9b">mod</span>,
0106 <span style="color:#644a9b">negate</span>, <span style="color:#644a9b">not</span>, <span style="color:#644a9b">notElem</span>, <span style="color:#644a9b">null</span>, <span style="color:#644a9b">numerator</span>, <span style="color:#644a9b">odd</span>, <span style="color:#644a9b">or</span>, <span style="color:#644a9b">ord</span>, <span style="color:#644a9b">otherwise</span>, <span style="color:#644a9b">pi</span>, <span style="color:#644a9b">pred</span>,
0107 <span style="color:#644a9b">primExitWith</span>, <span style="color:#644a9b">print</span>, <span style="color:#644a9b">product</span>, <span style="color:#644a9b">properFraction</span>, <span style="color:#644a9b">putChar</span>, <span style="color:#644a9b">putStr</span>, <span style="color:#644a9b">putStrLn</span>,
0108 <span style="color:#644a9b">quot</span>, <span style="color:#644a9b">quotRem</span>, <span style="color:#644a9b">range</span>, <span style="color:#644a9b">rangeSize</span>, <span style="color:#644a9b">read</span>, <span style="color:#644a9b">readDec</span>, <span style="color:#644a9b">readFile</span>, <span style="color:#644a9b">readFloat</span>,
0109 <span style="color:#644a9b">readHex</span>, <span style="color:#644a9b">readIO</span>, <span style="color:#644a9b">readInt</span>, <span style="color:#644a9b">readList</span>, <span style="color:#644a9b">readLitChar</span>, <span style="color:#644a9b">readLn</span>, <span style="color:#644a9b">readOct</span>, <span style="color:#644a9b">readParen</span>,
0110 <span style="color:#644a9b">readSigned</span>, <span style="color:#644a9b">reads</span>, <span style="color:#644a9b">readsPrec</span>, <span style="color:#644a9b">realToFrac</span>, <span style="color:#644a9b">recip</span>, <span style="color:#644a9b">rem</span>, <span style="color:#644a9b">repeat</span>, <span style="color:#644a9b">replicate</span>,
0111 <span style="color:#644a9b">return</span>, <span style="color:#644a9b">reverse</span>, <span style="color:#644a9b">round</span>, <span style="color:#644a9b">scaleFloat</span>, <span style="color:#644a9b">scanl</span>, <span style="color:#644a9b">scanl1</span>, <span style="color:#644a9b">scanr</span>, <span style="color:#644a9b">scanr1</span>, <span style="color:#644a9b">seq</span>,
0112 <span style="color:#644a9b">sequence</span>, <span style="color:#644a9b">sequence_</span>, <span style="color:#644a9b">show</span>, <span style="color:#644a9b">showChar</span>, <span style="color:#644a9b">showInt</span>, <span style="color:#644a9b">showList</span>, <span style="color:#644a9b">showLitChar</span>,
0113 <span style="color:#644a9b">showParen</span>, <span style="color:#644a9b">showSigned</span>, <span style="color:#644a9b">showString</span>, <span style="color:#644a9b">shows</span>, <span style="color:#644a9b">showsPrec</span>, <span style="color:#644a9b">significand</span>, <span style="color:#644a9b">signum</span>,
0114 <span style="color:#644a9b">sin</span>, <span style="color:#644a9b">sinh</span>, <span style="color:#644a9b">snd</span>, <span style="color:#644a9b">span</span>, <span style="color:#644a9b">splitAt</span>, <span style="color:#644a9b">sqrt</span>, <span style="color:#644a9b">subtract</span>, <span style="color:#644a9b">succ</span>, <span style="color:#644a9b">sum</span>, <span style="color:#644a9b">tail</span>, <span style="color:#644a9b">take</span>,
0115 <span style="color:#644a9b">either</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">encodeFloat</span>, <span style="color:#644a9b">enumFrom</span>, <span style="color:#644a9b">enumFromThen</span>, <span style="color:#644a9b">enumFromThenTo</span>,
0116 <span style="color:#644a9b">enumFromTo</span>, <span style="color:#644a9b">error</span>, <span style="color:#644a9b">even</span>, <span style="color:#644a9b">exp</span>, <span style="color:#644a9b">exponent</span>, <span style="color:#644a9b">fail</span>, <span style="color:#644a9b">filter</span>, <span style="color:#644a9b">flip</span>, <span style="color:#644a9b">floatDigits</span>,
0117 <span style="color:#644a9b">floatRadix</span>, <span style="color:#644a9b">floatRange</span>, <span style="color:#644a9b">floor</span>, <span style="color:#644a9b">fmap</span>, <span style="color:#644a9b">takeWhile</span>, <span style="color:#644a9b">tan</span>, <span style="color:#644a9b">tanh</span>, <span style="color:#644a9b">threadToIOResult</span>,
0118 <span style="color:#644a9b">toEnum</span>, <span style="color:#644a9b">toInt</span>, <span style="color:#644a9b">toInteger</span>, <span style="color:#644a9b">toLower</span>, <span style="color:#644a9b">toRational</span>, <span style="color:#644a9b">toUpper</span>, <span style="color:#644a9b">truncate</span>, <span style="color:#644a9b">uncurry</span>,
0119 <span style="color:#644a9b">undefined</span>, <span style="color:#644a9b">unlines</span>, <span style="color:#644a9b">until</span>, <span style="color:#644a9b">unwords</span>, <span style="color:#644a9b">unzip</span>, <span style="color:#644a9b">unzip3</span>, <span style="color:#644a9b">userError</span>, <span style="color:#644a9b">words</span>,
0120 <span style="color:#644a9b">writeFile</span>, <span style="color:#644a9b">zip</span>, <span style="color:#644a9b">zip3</span>, <span style="color:#644a9b">zipWith</span>, <span style="color:#644a9b">zipWith3</span>
0121 
0122 <span style="color:#898887">-- type constructors</span>
0123 
0124 <span style="color:#0057ae">Bool</span>, <span style="color:#0057ae">Char</span>, <span style="color:#0057ae">Double</span>, <span style="color:#0057ae">Either</span>, <span style="color:#0057ae">FilePath</span>, <span style="color:#0057ae">Float</span>, <span style="color:#0057ae">IO</span>, <span style="color:#0057ae">IOError</span>, <span style="color:#0057ae">Integer</span>, <span style="color:#0057ae">Int</span>, <span style="color:#0057ae">Maybe</span>,
0125 <span style="color:#0057ae">Ordering</span>, <span style="color:#0057ae">Rational</span>, <span style="color:#0057ae">Ratio</span>, <span style="color:#0057ae">ReadS</span>, <span style="color:#0057ae">ShowS</span>, <span style="color:#0057ae">String</span>
0126 
0127 <span style="color:#898887">-- classes</span>
0128 
0129 <span style="color:#0057ae">Bounded</span>, <span style="color:#0057ae">Enum</span>, <span style="color:#0057ae">Eq</span>, <span style="color:#0057ae">Floating</span>, <span style="color:#0057ae">Fractional</span>, <span style="color:#0057ae">Functor</span>, <span style="color:#0057ae">Integral</span>, <span style="color:#0057ae">Ix</span>, <span style="color:#0057ae">Monad</span>, <span style="color:#0057ae">Num</span>, <span style="color:#0057ae">Ord</span>, <span style="color:#0057ae">Read</span>, <span style="color:#0057ae">RealFloat</span>,
0130 <span style="color:#0057ae">RealFrac</span>, <span style="color:#0057ae">Real</span>, <span style="color:#0057ae">Show</span>
0131 
0132 <span style="color:#898887">-- data constructors</span>
0133 
0134 <span style="color:#0057ae">EQ</span>, <span style="color:#0057ae">False</span>, <span style="color:#0057ae">GT</span>, <span style="color:#0057ae">Just</span>, <span style="color:#0057ae">LT</span>, <span style="color:#0057ae">Left</span>, <span style="color:#0057ae">Nothing</span>, <span style="color:#0057ae">Right</span>, <span style="color:#0057ae">True</span>
0135 
0136 <span style="color:#898887">-- promoted data constructors</span>
0137 
0138 <span style="color:#0057ae">'True</span>
0139 
0140 <span style="color:#898887">-- pragma with compiler flags</span>
0141 
0142 <span style="color:#006e28">{-# OPTIONS_GHC -fno-warn-orphans #-}</span>
0143 
0144 <span style="color:#898887">-- multiline pragma with language extensions</span>
0145 
0146 <span style="color:#006e28">{-# LANGUAGE OverlappingInstances,</span>
0147 <span style="color:#006e28">             BangPatterns</span>
0148 <span style="color:#006e28">#-}</span>
0149 </pre></body></html>