started with 7
[ap2015.git] / a7 / mart / skeleton7.icl
1 module skeleton7
2
3 from iTasks import always,
4 hasValue,
5 :: TaskValue(..),
6 :: Task,
7 :: Stability,
8 :: TaskCont(..),
9 :: Action,
10 updateInformation,
11 viewInformation,
12 class descr,
13 instance descr String,
14 :: UpdateOption,
15 :: ViewOption(..),
16 -||-,
17 -||,
18 ||-,
19 startEngine,
20 class Publishable,
21 >>*,
22 class TFunctor,
23 instance TFunctor Task,
24 class TApplicative,
25 instance TApplicative Task,
26 instance Publishable Task,
27 Void
28 import Data.Tuple,
29 StdClass,
30 StdList,
31 iTasks._Framework.Generic,
32 Text.JSON,
33 Data.Functor,
34 Control.Applicative,
35 Control.Monad,
36 Data.Map
37 import qualified iTasks
38 import qualified Text
39 from Text import class Text, instance Text String
40 from StdFunc import o
41
42 e = Insert New (Oper New +. (Union (Integer 7) (Size (Integer 9))))
43
44 :: Expression
45 = New
46 | Insert Element Set
47 | Delete Element Set
48 | Variable Ident
49 | Union Set Set
50 | Difference Set Set
51 | Intersection Set Set
52 | Integer Int
53 | Size Set
54 | Oper Element Op Element
55 | (=.) infixl 2 Ident Expression
56
57 :: Op = +. | -. | *.
58 :: Set :== Expression
59 :: Element :== Expression
60 :: Ident :== String
61
62
63 // === State
64 :: Val = Int Int | Set Set
65 :: State :== Map String Val
66
67
68 // === semantics
69
70
71 // === simulation
72 (>>>=) :== 'iTasks'.tbind
73 (>>>|) a b :== 'iTasks'.tbind a (\_ -> b)
74 treturn :== 'iTasks'.return
75 ActionOk :== 'iTasks'.ActionOk
76 ActionQuit :== 'iTasks'.ActionQuit
77 ActionNew :== 'iTasks'.ActionNew
78
79 Start = Void