module test
-import Data.Func
-import qualified Data.Map as DM
-import iTasks
+import StdEnv, StdGeneric
+import Data.Array
+Start :: [{!Int}]
+Start =
+ [ appendArr {!1,2,3} {!4,5,6,7}
+ , appendArr {!} {!}
+ , appendArr {!} {!1,2,3}
+ , appendArr {!1,2,3} {!}
+ ]
/*
-Start w = doTasksWithOptions
-// (\a o->Ok o)
- (\a o->Ok {o & autoLayout=False})
- (parallel
- [(Embedded, tab "tab1")
- ,(Embedded, tab "tab2")
- ]
- [ OnAction (Action "New") (always (Embedded, tab "New tab"))
- , OnAction (Action " ") (always (Embedded, tab "New tab"))
- , OnAction (Action "Close") (never (Embedded, \_->treturn ()))
- , OnAction (Action "Dis no icon") (never (Embedded, \_->treturn ()))
- , OnAction (Action "+") (always (Embedded, \_->treturn ()))
- ]
-// <<@ ArrangeWithTabs True
- <<@ ApplyLayout (setActionIcon ('DM'.put " " "new" 'DM'.newMap))
- ) w
-
-tab title _ = tune (Title title)
- $ viewInformation [] title
- >>* [OnAction (Action "Close") (always (treturn ()))]
-*/
+derive bimap Box
+
+:: Box b a =: Box b
+
+unBox (Box b) :== b
+box b :== Box b
+
+generic gPotentialInf a :: [String] -> Box Bool a
-import StdDebug, Text.GenPrint
-Start w = doTasks (onStartup t) w
-
-null :: SDSSource () () ()
-null = nullShare
-
-t = tcpconnect "localhost" 9999 (Just 500) null
-//t = tcpconnect "localhost" 9999 Nothing null
- { onConnect = \cid host r = trace_n (printToString ("onConnect: ", cid, host, r))
- (Ok (), Nothing, [], False)
- , onData = \ data l r = trace_n (printToString ("onData: ", data, l, r))
- (Ok (), Nothing, [], False)
- , onShareChange = \ l r = trace_n (printToString ("onShareChange: ", l, r))
- (Ok (), Nothing, [], False)
- , onDisconnect = \ l r = trace_n (printToString ("onDisconnect: ", l, r))
- (Ok (), Nothing)
- , onDestroy = \ l = trace_n (printToString ("onDestroy: ", l))
- (Ok (), [])
- }
+gPotentialInf{|World|} _ = box False
+gPotentialInf{|File|} _ = box False
+gPotentialInf{|Bool|} _ = box False
+gPotentialInf{|Char|} _ = box False
+gPotentialInf{|Real|} _ = box False
+gPotentialInf{|Int|} _ = box False
+gPotentialInf{|Dynamic|} _ = box False
+gPotentialInf{|(->)|} _ _ _ = box False
+gPotentialInf{|{}|} a m = box (unBox (a m))
+gPotentialInf{|{!}|} a m = box (unBox (a m))
+gPotentialInf{|{#}|} a m = box (unBox (a m))
+gPotentialInf{|UNIT|} _ = box False
+gPotentialInf{|EITHER|} l r m = box (unBox (l m) || unBox (r m))
+gPotentialInf{|PAIR|} l r m = box (unBox (l m) || unBox (r m))
+gPotentialInf{|CONS|} x m = box (unBox (x m))
+gPotentialInf{|FIELD|} x m = box (unBox (x m))
+gPotentialInf{|RECORD of {grd_name}|} x m
+ | isMember grd_name m = box True
+ = box (unBox (x [grd_name:m]))
+gPotentialInf{|OBJECT of {gtd_name}|} x m
+ | isMember gtd_name m = box True
+ = box (unBox (x [gtd_name:m]))
+
+//derive gPotentialInf Int,Bool,Char,Real,String,File,World,Dynamic
+derive gPotentialInf (),(,),(,,),(,,,),(,,,,),(,,,,,),(,,,,,,),(,,,,,,,),(,,,,,,,,),(,,,,,,,,,),(,,,,,,,,,,),(,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,,),(,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,),(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+derive gPotentialInf {},{#},{!},[],[! ],[ !],[!!],[#],[#!]
+
+Start :: Box Bool *File
+Start = gPotentialInf{|*|} []
+*/