<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- Haskell syntax highlighting by Marcel Martin <mmar@freenet.de> -->
<language name= "Haskell" version= "1.2" kateversion= "2.3" section= "Sources" extensions= "*.hs" mimetype= "text/x-haskell" author= "Marcel Martin (mmar@freenet.de)" license= "" indenter= "haskell" >
<highlighting >
<list name= "keywords" >
<item > case </item>
<item > class </item>
<item > data </item>
<item > deriving </item>
<item > do </item>
<item > else </item>
<item > if </item>
<item > import </item>
<item > in </item>
<item > infixl </item>
<item > infixr </item>
<item > instance </item>
<item > let </item>
<item > module </item>
<item > of </item>
<item > primitive </item>
<item > then </item>
<item > type </item>
<item > where </item>
</list>
<list name= "infix operators" >
<item > quot </item>
<item > rem </item>
<item > div </item>
<item > mod </item>
<item > elem </item>
<item > notElem </item>
<item > seq </item>
</list>
<list name= "functions" >
<!--
These operators are not handled yet.
<item > !! </item>
<item > % </item>
<item > & & </item>
<item > $! </item>
<item > $ </item>
<item > * </item>
<item > ** </item>
<item > - </item>
<item > . </item>
<item > /= </item>
<item > < </item>
<item > < = </item>
<item > =< < </item>
<item > == </item>
<item > > </item>
<item > >= </item>
<item > >> </item>
<item > >>= </item>
<item > ^ </item>
<item > ^^ </item>
<item > ++ </item>
<item > || </item>
//-->
<item > FilePath </item>
<item > IOError </item>
<item > abs </item>
<item > acos </item>
<item > acosh </item>
<item > all </item>
<item > and </item>
<item > any </item>
<item > appendFile </item>
<item > approxRational </item>
<item > asTypeOf </item>
<item > asin </item>
<item > asinh </item>
<item > atan </item>
<item > atan2 </item>
<item > atanh </item>
<item > basicIORun </item>
<item > break </item>
<item > catch </item>
<item > ceiling </item>
<item > chr </item>
<item > compare </item>
<item > concat </item>
<item > concatMap </item>
<item > const </item>
<item > cos </item>
<item > cosh </item>
<item > curry </item>
<item > cycle </item>
<item > decodeFloat </item>
<item > denominator </item>
<item > digitToInt </item>
<item > div </item>
<item > divMod </item>
<item > drop </item>
<item > dropWhile </item>
<item > either </item>
<item > elem </item>
<item > encodeFloat </item>
<item > enumFrom </item>
<item > enumFromThen </item>
<item > enumFromThenTo </item>
<item > enumFromTo </item>
<item > error </item>
<item > even </item>
<item > exp </item>
<item > exponent </item>
<item > fail </item>
<item > filter </item>
<item > flip </item>
<item > floatDigits </item>
<item > floatRadix </item>
<item > floatRange </item>
<item > floor </item>
<item > fmap </item>
<item > foldl </item>
<item > foldl1 </item>
<item > foldr </item>
<item > foldr1 </item>
<item > fromDouble </item>
<item > fromEnum </item>
<item > fromInt </item>
<item > fromInteger </item>
<item > fromIntegral </item>
<item > fromRational </item>
<item > fst </item>
<item > gcd </item>
<item > getChar </item>
<item > getContents </item>
<item > getLine </item>
<item > head </item>
<item > id </item>
<item > inRange </item>
<item > index </item>
<item > init </item>
<item > intToDigit </item>
<item > interact </item>
<item > ioError </item>
<item > isAlpha </item>
<item > isAlphaNum </item>
<item > isAscii </item>
<item > isControl </item>
<item > isDenormalized </item>
<item > isDigit </item>
<item > isHexDigit </item>
<item > isIEEE </item>
<item > isInfinite </item>
<item > isLower </item>
<item > isNaN </item>
<item > isNegativeZero </item>
<item > isOctDigit </item>
<item > isPrint </item>
<item > isSpace </item>
<item > isUpper </item>
<item > iterate </item>
<item > last </item>
<item > lcm </item>
<item > length </item>
<item > lex </item>
<item > lexDigits </item>
<item > lexLitChar </item>
<item > lines </item>
<item > log </item>
<item > logBase </item>
<item > lookup </item>
<item > map </item>
<item > mapM </item>
<item > mapM_ </item>
<item > max </item>
<item > maxBound </item>
<item > maximum </item>
<item > maybe </item>
<item > min </item>
<item > minBound </item>
<item > minimum </item>
<item > mod </item>
<item > negate </item>
<item > not </item>
<item > notElem </item>
<item > null </item>
<item > numerator </item>
<item > odd </item>
<item > or </item>
<item > ord </item>
<item > otherwise </item>
<item > pi </item>
<item > pred </item>
<item > primExitWith </item>
<item > print </item>
<item > product </item>
<item > properFraction </item>
<item > putChar </item>
<item > putStr </item>
<item > putStrLn </item>
<item > quot </item>
<item > quotRem </item>
<item > range </item>
<item > rangeSize </item>
<item > read </item>
<item > readDec </item>
<item > readFile </item>
<item > readFloat </item>
<item > readHex </item>
<item > readIO </item>
<item > readInt </item>
<item > readList </item>
<item > readLitChar </item>
<item > readLn </item>
<item > readOct </item>
<item > readParen </item>
<item > readSigned </item>
<item > reads </item>
<item > readsPrec </item>
<item > realToFrac </item>
<item > recip </item>
<item > rem </item>
<item > repeat </item>
<item > replicate </item>
<item > return </item>
<item > reverse </item>
<item > round </item>
<item > scaleFloat </item>
<item > scanl </item>
<item > scanl1 </item>
<item > scanr </item>
<item > scanr1 </item>
<item > seq </item>
<item > sequence </item>
<item > sequence_ </item>
<item > show </item>
<item > showChar </item>
<item > showInt </item>
<item > showList </item>
<item > showLitChar </item>
<item > showParen </item>
<item > showSigned </item>
<item > showString </item>
<item > shows </item>
<item > showsPrec </item>
<item > significand </item>
<item > signum </item>
<item > sin </item>
<item > sinh </item>
<item > snd </item>
<item > span </item>
<item > splitAt </item>
<item > sqrt </item>
<item > subtract </item>
<item > succ </item>
<item > sum </item>
<item > tail </item>
<item > take </item>
<item > takeWhile </item>
<item > tan </item>
<item > tanh </item>
<item > threadToIOResult </item>
<item > toEnum </item>
<item > toInt </item>
<item > toInteger </item>
<item > toLower </item>
<item > toRational </item>
<item > toUpper </item>
<item > truncate </item>
<item > uncurry </item>
<item > undefined </item>
<item > unlines </item>
<item > until </item>
<item > unwords </item>
<item > unzip </item>
<item > unzip3 </item>
<item > userError </item>
<item > words </item>
<item > writeFile </item>
<item > zip </item>
<item > zip3 </item>
<item > zipWith </item>
<item > zipWith3 </item>
</list>
<list name= "type constructors" >
<item > Bool </item>
<item > Char </item>
<item > Double </item>
<item > Either </item>
<item > Float </item>
<item > IO </item>
<item > Integer </item>
<item > Int </item>
<item > Maybe </item>
<item > Ordering </item>
<item > Rational </item>
<item > Ratio </item>
<item > ReadS </item>
<item > ShowS </item>
<item > String </item>
</list>
<list name= "classes" >
<item > Bounded </item>
<item > Enum </item>
<item > Eq </item>
<item > Floating </item>
<item > Fractional </item>
<item > Functor </item>
<item > Integral </item>
<item > Ix </item>
<item > Monad </item>
<item > Num </item>
<item > Ord </item>
<item > Read </item>
<item > RealFloat </item>
<item > RealFrac </item>
<item > Real </item>
<item > Show </item>
</list>
<list name= "data constructors" >
<item > EQ </item>
<item > False </item>
<item > GT </item>
<item > Just </item>
<item > LT </item>
<item > Left </item>
<item > Nothing </item>
<item > Right </item>
<item > True </item>
</list>
<contexts >
<context attribute= "Normal Text" lineEndContext= "#stay" name= "normal" >
<Detect2Chars attribute= "Comment" context= "comment_multi_line" char= "{" char1= "-" />
<Detect2Chars attribute= "Comment" context= "comment_single_line" char= "-" char1= "-" />
<keyword attribute= "Keyword" context= "#stay" String= "keywords" />
<keyword attribute= "Class" context= "#stay" String= "classes" />
<keyword attribute= "Type Constructor" context= "#stay" String= "type constructors" />
<keyword attribute= "Function" context= "#stay" String= "functions" />
<keyword attribute= "Data Constructor" context= "#stay" String= "data constructors" />
<DetectChar attribute= "String" context= "string" char= """ />
<DetectChar attribute= "Infix Operator" context= "infix" char= "`" />
<RegExpr attribute= "Normal Text" context= "#stay" String= "\w[']+" />
<DetectChar attribute= "Char" context= "single_char" char= "'" />
<RegExpr attribute= "Function Definition" context= "#stay" String= "[a-z_]+\w*'*\s*::" />
<Float attribute= "Float" context= "#stay" />
<Int attribute= "Decimal" context= "#stay" />
</context>
<context attribute= "Comment" lineEndContext= "#pop" name= "comment_single_line" />
<context attribute= "Comment" lineEndContext= "#stay" name= "comment_multi_line" >
<Detect2Chars attribute= "Comment" context= "#pop" char= "-" char1= "}" />
</context>
<context attribute= "String" lineEndContext= "#stay" name= "string" >
<RegExpr attribute= "String" context= "#stay" String= "\\." />
<DetectChar attribute= "String" context= "#pop" char= """ />
</context>
<context attribute= "Infix Operator" lineEndContext= "#stay" name= "infix" >
<DetectChar attribute= "Infix Operator" context= "#pop" char= "`" />
</context>
<context attribute= "Char" lineEndContext= "#pop" name= "single_char" >
<RegExpr attribute= "Char" context= "#stay" String= "\\." />
<DetectChar attribute= "Char" context= "#pop" char= "'" />
</context>
<context attribute= "Function Definition" lineEndContext= "#pop" name= "function_definition" >
<DetectChar attribute= "Function Definition" context= "#pop" char= ";" />
</context>
</contexts>
<itemDatas >
<itemData name= "Normal Text" defStyleNum= "dsNormal" />
<itemData name= "Keyword" defStyleNum= "dsKeyword" />
<itemData name= "Function" defStyleNum= "dsFunction" />
<itemData name= "Function Definition" defStyleNum= "dsFunction" />
<itemData name= "Class" defStyleNum= "dsKeyword" />
<itemData name= "Decimal" defStyleNum= "dsDecVal" />
<itemData name= "Float" defStyleNum= "dsFloat" />
<itemData name= "Char" defStyleNum= "dsChar" />
<itemData name= "String" defStyleNum= "dsString" />
<itemData name= "Constructor" defStyleNum= "dsOthers" />
<itemData name= "Comment" defStyleNum= "dsComment" />
<itemData name= "Data Constructor" defStyleNum= "dsKeyword" />
<itemData name= "Type Constructor" defStyleNum= "dsDataType" />
<itemData name= "Infix Operator" defStyleNum= "dsOthers" />
</itemDatas>
</highlighting>
<general >
<comments >
<comment name= "singleLine" start= "--" />
<comment name= "multiLine" start= "{-" end= "-}" />
</comments>
<keywords casesensitive= "1" />
</general>
</language>