diff options
Diffstat (limited to 'tests/lexers/clean/example.txt')
| -rw-r--r-- | tests/lexers/clean/example.txt | 2145 |
1 files changed, 2145 insertions, 0 deletions
diff --git a/tests/lexers/clean/example.txt b/tests/lexers/clean/example.txt new file mode 100644 index 00000000..fc26e7a0 --- /dev/null +++ b/tests/lexers/clean/example.txt @@ -0,0 +1,2145 @@ +---input--- +implementation module StdGeneric + +/** + * NOTE: this is a collection of different tricky parts of Clean modules (even + * though the file is simply called StdGeneric.icl). The code is taken from: + * + * - StdGeneric (StdEnv) + * - Graphics.Scalable.Image (Platform) + */ + +import StdInt, StdMisc, StdClass, StdFunc + +generic bimap a b :: Bimap .a .b + +bimapId :: Bimap .a .a +bimapId = { map_to = id, map_from = id } + +bimap{|c|} = { map_to = id, map_from = id } + +bimap{|PAIR|} bx by = { map_to= map_to, map_from=map_from } +where + map_to (PAIR x y) = PAIR (bx.map_to x) (by.map_to y) + map_from (PAIR x y) = PAIR (bx.map_from x) (by.map_from y) +bimap{|EITHER|} bl br = { map_to= map_to, map_from=map_from } +where + map_to (LEFT x) = LEFT (bl.map_to x) + map_to (RIGHT x) = RIGHT (br.map_to x) + map_from (LEFT x) = LEFT (bl.map_from x) + map_from (RIGHT x) = RIGHT (br.map_from x) + +bimap{|(->)|} barg bres = { map_to = map_to, map_from = map_from } +where + map_to f = comp3 bres.map_to f barg.map_from + map_from f = comp3 bres.map_from f barg.map_to + +bimap{|CONS|} barg = { map_to= map_to, map_from=map_from } +where + map_to (CONS x) = CONS (barg.map_to x) + map_from (CONS x) = CONS (barg.map_from x) + +bimap{|FIELD|} barg = { map_to= map_to, map_from=map_from } +where + map_to (FIELD x) = FIELD (barg.map_to x) + map_from (FIELD x) = FIELD (barg.map_from x) + +bimap{|OBJECT|} barg = { map_to= map_to, map_from=map_from } +where + map_to (OBJECT x) = OBJECT (barg.map_to x) + map_from (OBJECT x) = OBJECT (barg.map_from x) + +bimap{|Bimap|} x y = {map_to = map_to, map_from = map_from} +where + map_to {map_to, map_from} = + { map_to = comp3 y.map_to map_to x.map_from + , map_from = comp3 x.map_to map_from y.map_from + } + map_from {map_to, map_from} = + { map_to = comp3 y.map_from map_to x.map_to + , map_from = comp3 x.map_from map_from y.map_to + } + +comp3 :: !(.a -> .b) u:(.c -> .a) !(.d -> .c) -> u:(.d -> .b) +comp3 f g h + | is_id f + | is_id h + = cast g + = cast (\x -> g (h x)) + | is_id h + = cast (\x -> f (g x)) + = \x -> f (g (h x)) +where + is_id :: !.(.a -> .b) -> Bool + is_id f = code inline + { + eq_desc e_StdFunc_did 0 0 + pop_a 1 + } + + cast :: !u:a -> u:b + cast f = code inline + { + pop_a 0 + } + +getConsPath :: !GenericConsDescriptor -> [ConsPos] +getConsPath {gcd_index, gcd_type_def={gtd_num_conses}} + = doit gcd_index gtd_num_conses +where + doit i n + | n == 0 + = abort "getConsPath: zero conses\n" + | i >= n + = abort "getConsPath: cons index >= number of conses" + | n == 1 + = [] + | i < (n/2) + = [ ConsLeft : doit i (n/2) ] + | otherwise + = [ ConsRight : doit (i - (n/2)) (n - (n/2)) ] + +:: NoAttr m = NoAttr +:: DashAttr m = { dash :: ![Int] } +:: FillAttr m = { fill :: !SVGColor } +:: LineEndMarker m = { endmarker :: !Image m } +:: LineMidMarker m = { midmarker :: !Image m } +:: LineStartMarker m = { startmarker :: !Image m } +:: MaskAttr m = { mask :: !Image m } +:: OpacityAttr m = { opacity :: !Real } +:: StrokeAttr m = { stroke :: !SVGColor } +:: StrokeWidthAttr m = { strokewidth :: !Span } +:: XRadiusAttr m = { xradius :: !Span } +:: YRadiusAttr m = { yradius :: !Span } + + +instance tuneImage NoAttr where tuneImage image _ = image +instance tuneImage DashAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgDashAttr attr.DashAttr.dash)) image +instance tuneImage FillAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgFillAttr attr.FillAttr.fill)) image +instance tuneImage LineEndMarker where tuneImage image attr = Attr` (LineMarkerAttr` {LineMarkerAttr | markerImg = attr.LineEndMarker.endmarker, markerPos = LineMarkerEnd}) image +instance tuneImage LineMidMarker where tuneImage image attr = Attr` (LineMarkerAttr` {LineMarkerAttr | markerImg = attr.LineMidMarker.midmarker, markerPos = LineMarkerMid}) image +instance tuneImage LineStartMarker where tuneImage image attr = Attr` (LineMarkerAttr` {LineMarkerAttr | markerImg = attr.LineStartMarker.startmarker, markerPos = LineMarkerStart}) image +instance tuneImage MaskAttr where tuneImage image attr = Attr` (MaskAttr` attr.MaskAttr.mask) image +instance tuneImage OpacityAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgFillOpacityAttr attr.OpacityAttr.opacity)) image +instance tuneImage StrokeAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgStrokeAttr attr.StrokeAttr.stroke)) image +instance tuneImage StrokeWidthAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgStrokeWidthAttr attr.StrokeWidthAttr.strokewidth)) image +instance tuneImage XRadiusAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgXRadiusAttr attr.XRadiusAttr.xradius)) image +instance tuneImage YRadiusAttr where tuneImage image attr = Attr` (BasicImageAttr` (BasicImgYRadiusAttr attr.YRadiusAttr.yradius)) image + +instance tuneImage DraggableAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerDraggableAttr attr)) image +instance tuneImage OnClickAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnClickAttr attr)) image +instance tuneImage OnMouseDownAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnMouseDownAttr attr)) image +instance tuneImage OnMouseMoveAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnMouseMoveAttr attr)) image +instance tuneImage OnMouseOutAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnMouseOutAttr attr)) image +instance tuneImage OnMouseOverAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnMouseOverAttr attr)) image +instance tuneImage OnMouseUpAttr where tuneImage image attr = Attr` (HandlerAttr` (ImgEventhandlerOnMouseUpAttr attr)) image + +---tokens--- +'implementation' Keyword.Namespace +' ' Text.Whitespace +'module' Keyword.Namespace +' ' Text.Whitespace +'StdGeneric' Name.Class +'\n\n' Text.Whitespace + +'/*' Comment.Multi +'*' Comment.Multi +'\n ' Comment.Multi +'*' Comment.Multi +' NOTE: this is a collection of different tricky parts of Clean modules (even\n ' Comment.Multi +'*' Comment.Multi +' though the file is simply called StdGeneric.icl). The code is taken from:\n ' Comment.Multi +'*' Comment.Multi +'\n ' Comment.Multi +'*' Comment.Multi +' - StdGeneric (StdEnv)\n ' Comment.Multi +'*' Comment.Multi +' - Graphics.Scalable.Image (Platform)\n ' Comment.Multi +'*/' Comment.Multi +'\n\n' Text.Whitespace + +'import' Keyword +' ' Text.Whitespace +'StdInt' Name.Class +',' Punctuation +' ' Text.Whitespace +'StdMisc' Name.Class +',' Punctuation +' ' Text.Whitespace +'StdClass' Name.Class +',' Punctuation +' ' Text.Whitespace +'StdFunc' Name.Class +'\n\n' Text.Whitespace + +'generic' Name.Class +' ' Text.Whitespace +'bimap' Name.Class +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'b' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'Bimap' Name.Class +' ' Text.Whitespace +'.' Operator +'a' Name +' ' Text.Whitespace +'.' Operator +'b' Name +'\n\n' Text.Whitespace + +'bimapId' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'Bimap' Name.Class +' ' Text.Whitespace +'.' Operator +'a' Name +' ' Text.Whitespace +'.' Operator +'a' Name +'\n' Text.Whitespace + +'bimapId' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'id' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'id' Name +' ' Text.Whitespace +'}' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'c' Name +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'id' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'id' Name +' ' Text.Whitespace +'}' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'PAIR' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'bx' Name +' ' Text.Whitespace +'by' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'=' Operator +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'PAIR' Name.Class +' ' Text.Whitespace +'x' Name +' ' Text.Whitespace +'y' Name +')' Punctuation +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'PAIR' Name.Class +' ' Text.Whitespace +'(' Punctuation +'bx' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'by' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'y' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'PAIR' Name.Class +' ' Text.Whitespace +'x' Name +' ' Text.Whitespace +'y' Name +')' Punctuation +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'PAIR' Name.Class +' ' Text.Whitespace +'(' Punctuation +'bx' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'by' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'y' Name +')' Punctuation +'\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'EITHER' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'bl' Name +' ' Text.Whitespace +'br' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'=' Operator +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\t\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'LEFT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'LEFT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'bl' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'RIGHT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +'\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'RIGHT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'br' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'LEFT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'LEFT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'bl' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'RIGHT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'RIGHT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'br' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'(' Punctuation +'->' Operator +')' Punctuation +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'barg' Name +' ' Text.Whitespace +'bres' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'bres' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'barg' Name +'.' Operator +'map_from' Name +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'bres' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'barg' Name +'.' Operator +'map_to' Name +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'CONS' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'barg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'=' Operator +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'CONS' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'CONS' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'CONS' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'CONS' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'FIELD' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'barg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'=' Operator +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'FIELD' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'FIELD' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'FIELD' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'FIELD' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'OBJECT' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'barg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'=' Operator +'map_from' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'(' Punctuation +'OBJECT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'OBJECT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'(' Punctuation +'OBJECT' Name.Class +' ' Text.Whitespace +'x' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'OBJECT' Name.Class +' ' Text.Whitespace +'(' Punctuation +'barg' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +'\n\n' Text.Whitespace + +'bimap' Name +'{' Punctuation +'|' Operator +'Bimap' Name.Class +'|' Operator +'}' Punctuation +' ' Text.Whitespace +'x' Name +' ' Text.Whitespace +'y' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +'map_to' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'map_from' Name +'}' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'map_to' Name +' \t' Text.Whitespace +'{' Punctuation +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'}' Punctuation +' ' Text.Whitespace +'=' Operator +' \n\t\t' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'y' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'x' Name +'.' Operator +'map_from' Name +'\n\t\t' Text.Whitespace +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'x' Name +'.' Operator +'map_to' Name +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'y' Name +'.' Operator +'map_from' Name +'\n\t\t' Text.Whitespace +'}' Punctuation +'\n\t' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'{' Punctuation +'map_to' Name +',' Punctuation +' ' Text.Whitespace +'map_from' Name +'}' Punctuation +' ' Text.Whitespace +'=' Operator +' \n\t\t' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'map_to' Name +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'y' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'map_to' Name +' ' Text.Whitespace +'x' Name +'.' Operator +'map_to' Name +'\n\t\t' Text.Whitespace +',' Punctuation +' ' Text.Whitespace +'map_from' Name +' \t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'comp3' Name +' ' Text.Whitespace +'x' Name +'.' Operator +'map_from' Name +' ' Text.Whitespace +'map_from' Name +' ' Text.Whitespace +'y' Name +'.' Operator +'map_to' Name +'\n\t\t' Text.Whitespace +'}' Punctuation +'\n\n' Text.Whitespace + +'comp3' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'(' Punctuation +'.' Operator +'a' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'.' Operator +'b' Name +')' Punctuation +' ' Text.Whitespace +'u' Name +':' Operator +'(' Punctuation +'.' Operator +'c' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'.' Operator +'a' Name +')' Punctuation +' ' Text.Whitespace +'!' Operator +'(' Punctuation +'.' Operator +'d' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'.' Operator +'c' Name +')' Punctuation +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'u' Name +':' Operator +'(' Punctuation +'.' Operator +'d' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'.' Operator +'b' Name +')' Punctuation +'\n' Text.Whitespace + +'comp3' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'g' Name +' ' Text.Whitespace +'h' Name +'\n\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'is_id' Name +' ' Text.Whitespace +'f' Name +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'is_id' Name +' ' Text.Whitespace +'h' Name +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'cast' Name +' ' Text.Whitespace +'g' Name +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'cast' Name +' ' Text.Whitespace +'(' Punctuation +'\\' Operator +'x' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'g' Name +' ' Text.Whitespace +'(' Punctuation +'h' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +')' Punctuation +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'is_id' Name +' ' Text.Whitespace +'h' Name +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'cast' Name +' ' Text.Whitespace +'(' Punctuation +'\\' Operator +'x' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'(' Punctuation +'g' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +')' Punctuation +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'\\' Operator +'x' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'(' Punctuation +'g' Name +' ' Text.Whitespace +'(' Punctuation +'h' Name +' ' Text.Whitespace +'x' Name +')' Punctuation +')' Punctuation +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'is_id' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!.' Operator +'(' Punctuation +'.' Operator +'a' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'.' Operator +'b' Name +')' Punctuation +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'Bool' Name.Class +'\n\t' Text.Whitespace +'is_id' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'code inline' Keyword +'\n\t' Text.Whitespace +'{' Punctuation +'\n\t\t' Text.Whitespace +'eq_desc' Name +' ' Text.Whitespace +'e_StdFunc_did' Name +' ' Text.Whitespace +'0' Literal.Number.Integer +' ' Text.Whitespace +'0' Literal.Number.Integer +'\n\t\t' Text.Whitespace +'pop_a' Name +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n\t' Text.Whitespace +'}' Punctuation +'\n\t\n\t' Text.Whitespace +'cast' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'u' Name +':' Operator +'a' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'u' Name +':' Operator +'b' Name +'\n\t' Text.Whitespace +'cast' Name +' ' Text.Whitespace +'f' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'code inline' Keyword +'\n\t' Text.Whitespace +'{' Punctuation +'\n\t\t' Text.Whitespace +'pop_a' Name +' ' Text.Whitespace +'0' Literal.Number.Integer +'\n\t' Text.Whitespace +'}' Punctuation +'\n\n' Text.Whitespace + +'getConsPath' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'GenericConsDescriptor' Name.Class +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'[' Punctuation +'ConsPos' Name.Class +']' Punctuation +'\n' Text.Whitespace + +'getConsPath' Name +' ' Text.Whitespace +'{' Punctuation +'gcd_index' Name +',' Punctuation +' ' Text.Whitespace +'gcd_type_def' Name +'=' Operator +'{' Punctuation +'gtd_num_conses' Name +'}' Punctuation +'}' Punctuation +'\n\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'doit' Name +' ' Text.Whitespace +'gcd_index' Name +' ' Text.Whitespace +'gtd_num_conses' Name +'\n' Text.Whitespace + +'where' Keyword +'\n\t' Text.Whitespace +'doit' Name +' ' Text.Whitespace +'i' Name +' ' Text.Whitespace +'n' Name +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'n' Name +' ' Text.Whitespace +'==' Operator +' ' Text.Whitespace +'0' Literal.Number.Integer +' \t\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'abort' Name +' ' Text.Whitespace +'"' Literal.String.Double +'getConsPath: zero conses' Literal.String.Double +'\\n' Literal.String.Double +'"' Literal.String.Double +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'i' Name +' ' Text.Whitespace +'>=' Operator +' ' Text.Whitespace +'n' Name +'\t\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'abort' Name +' ' Text.Whitespace +'"' Literal.String.Double +'getConsPath: cons index >= number of conses' Literal.String.Double +'"' Literal.String.Double +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'n' Name +' ' Text.Whitespace +'==' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'[' Punctuation +']' Punctuation +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'i' Name +' ' Text.Whitespace +'<' Operator +' ' Text.Whitespace +'(' Punctuation +'n' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'[' Punctuation +' ' Text.Whitespace +'ConsLeft' Name.Class +' ' Text.Whitespace +':' Operator +' ' Text.Whitespace +'doit' Name +' ' Text.Whitespace +'i' Name +' ' Text.Whitespace +'(' Punctuation +'n' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +']' Punctuation +'\n\t\t' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'otherwise' Keyword +'\n\t\t\t' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'[' Punctuation +' ' Text.Whitespace +'ConsRight' Name.Class +' ' Text.Whitespace +':' Operator +' ' Text.Whitespace +'doit' Name +' ' Text.Whitespace +'(' Punctuation +'i' Name +' ' Text.Whitespace +'-' Operator +' ' Text.Whitespace +'(' Punctuation +'n' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'(' Punctuation +'n' Name +' ' Text.Whitespace +'-' Operator +' ' Text.Whitespace +'(' Punctuation +'n' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +')' Punctuation +' ' Text.Whitespace +']' Punctuation +'\n\t\t\t \t \t\t\t\t\t\t\t \t\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'NoAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'NoAttr' Name.Class +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'DashAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'dash' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'[' Punctuation +'Int' Name.Class +']' Punctuation +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'FillAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'fill' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'SVGColor' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'LineEndMarker' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'endmarker' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Image' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'LineMidMarker' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'midmarker' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Image' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'LineStartMarker' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'startmarker' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Image' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'MaskAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'mask' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Image' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'OpacityAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'opacity' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Real' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'StrokeAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'stroke' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'SVGColor' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'StrokeWidthAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'strokewidth' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Span' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'XRadiusAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'xradius' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Span' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n' Text.Whitespace + +'::' Operator +' ' Text.Whitespace +'YRadiusAttr' Name.Class +' ' Text.Whitespace +'m' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'{' Punctuation +' ' Text.Whitespace +'yradius' Name +' ' Text.Whitespace +'::' Operator +' ' Text.Whitespace +'!' Operator +'Span' Name.Class +' ' Text.Whitespace +'}' Punctuation +'\n\n\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'NoAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'_' Operator +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'DashAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgDashAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'DashAttr' Name.Class +'.' Operator +'dash' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'FillAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgFillAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'FillAttr' Name.Class +'.' Operator +'fill' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'LineEndMarker' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'LineMarkerAttr`' Name.Class +' ' Text.Whitespace +'{' Punctuation +'LineMarkerAttr' Name.Class +' ' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'markerImg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'attr' Name +'.' Operator +'LineEndMarker' Name.Class +'.' Operator +'endmarker' Name +',' Punctuation +' ' Text.Whitespace +'markerPos' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'LineMarkerEnd' Name.Class +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'LineMidMarker' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'LineMarkerAttr`' Name.Class +' ' Text.Whitespace +'{' Punctuation +'LineMarkerAttr' Name.Class +' ' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'markerImg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'attr' Name +'.' Operator +'LineMidMarker' Name.Class +'.' Operator +'midmarker' Name +',' Punctuation +' ' Text.Whitespace +'markerPos' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'LineMarkerMid' Name.Class +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'LineStartMarker' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'LineMarkerAttr`' Name.Class +' ' Text.Whitespace +'{' Punctuation +'LineMarkerAttr' Name.Class +' ' Text.Whitespace +'|' Operator +' ' Text.Whitespace +'markerImg' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'attr' Name +'.' Operator +'LineStartMarker' Name.Class +'.' Operator +'startmarker' Name +',' Punctuation +' ' Text.Whitespace +'markerPos' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'LineMarkerStart' Name.Class +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'MaskAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'MaskAttr`' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'MaskAttr' Name.Class +'.' Operator +'mask' Name +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OpacityAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgFillOpacityAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'OpacityAttr' Name.Class +'.' Operator +'opacity' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'StrokeAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgStrokeAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'StrokeAttr' Name.Class +'.' Operator +'stroke' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'StrokeWidthAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgStrokeWidthAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'StrokeWidthAttr' Name.Class +'.' Operator +'strokewidth' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'XRadiusAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgXRadiusAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'XRadiusAttr' Name.Class +'.' Operator +'xradius' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'YRadiusAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImageAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'BasicImgYRadiusAttr' Name.Class +' ' Text.Whitespace +'attr' Name +'.' Operator +'YRadiusAttr' Name.Class +'.' Operator +'yradius' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'DraggableAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerDraggableAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnClickAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnClickAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnMouseDownAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnMouseDownAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnMouseMoveAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnMouseMoveAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnMouseOutAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnMouseOutAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnMouseOverAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnMouseOverAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace + +'instance' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'OnMouseUpAttr' Name.Class +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'tuneImage' Name +' ' Text.Whitespace +'image' Name +' ' Text.Whitespace +'attr' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'Attr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'HandlerAttr`' Name.Class +' ' Text.Whitespace +'(' Punctuation +'ImgEventhandlerOnMouseUpAttr' Name.Class +' ' Text.Whitespace +'attr' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'image' Name +'\n' Text.Whitespace |
