summaryrefslogtreecommitdiff
path: root/tests/examplefiles/StdGeneric.icl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/StdGeneric.icl')
-rw-r--r--tests/examplefiles/StdGeneric.icl134
1 files changed, 0 insertions, 134 deletions
diff --git a/tests/examplefiles/StdGeneric.icl b/tests/examplefiles/StdGeneric.icl
deleted file mode 100644
index 891b510a..00000000
--- a/tests/examplefiles/StdGeneric.icl
+++ /dev/null
@@ -1,134 +0,0 @@
-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