6a done
authorMart Lubbers <mart@martlubbers.net>
Wed, 14 Oct 2015 18:04:48 +0000 (20:04 +0200)
committerMart Lubbers <mart@martlubbers.net>
Wed, 14 Oct 2015 18:04:48 +0000 (20:04 +0200)
a6/a6.pdf [new file with mode: 0644]
a6/mart/Makefile [new file with mode: 0644]
a6/mart/skeleton6a.icl [new file with mode: 0644]
a6/mart/skeleton6a.prj [new file with mode: 0644]
a6/mart/skeleton6b.icl [new file with mode: 0644]
a6/mart/skeleton6b.prj [new file with mode: 0644]

diff --git a/a6/a6.pdf b/a6/a6.pdf
new file mode 100644 (file)
index 0000000..79707fc
Binary files /dev/null and b/a6/a6.pdf differ
diff --git a/a6/mart/Makefile b/a6/mart/Makefile
new file mode 100644 (file)
index 0000000..85e6c86
--- /dev/null
@@ -0,0 +1,14 @@
+ITASKSPRJS:=skeleton6a #skeleton6b.exe
+CPM:=cpm
+
+all: $(ITASKSPRJS)
+
+%: %.prj %.icl
+       $(CPM) project $< build
+
+clean:
+       $(RM) -r \
+               $(basename $(ITASKSPRJS)) \
+               Clean\ System\ Files \
+               sapl \
+               $(addsuffix -data,$(basename $(ITASKSPRJS)))
diff --git a/a6/mart/skeleton6a.icl b/a6/mart/skeleton6a.icl
new file mode 100644 (file)
index 0000000..d6af8d4
--- /dev/null
@@ -0,0 +1,131 @@
+module skeleton6a
+
+import StdTuple, StdList, StdInt, StdChar, StdMisc, StdClass, StdString, StdFile, StdArray, Data.Maybe, Data.Map, Control.Monad, Data.Tuple, Data.Void
+import qualified Text
+from Text import class Text, instance Text String
+
+class print a :: a -> String
+
+instance print Void where print _ = "Void"
+instance print String where print s = s
+instance print Int where print i = toString i
+instance print [a] | print a where print l = 'Text'.join ", " (map print l)
+
+class parse a :: String -> Maybe a
+
+instance parse Void where parse _ = Just Void
+
+instance parse String where
+    parse s = let len = size s
+              in  Just (if (select s (len-1) == '\n') (s % (0, len - 2)) s) // remove newline
+instance parse Int where
+       parse s
+               # len = size s
+               | len > 0
+                       # s = if (select s (len-1) == '\n') (s % (0, len - 2)) s // remove newline
+                       # i = toInt s
+                       | toString i == s
+                               = Just i
+                       = Nothing
+
+instance parse [a] | parse a where parse s = foldr (\xs list -> maybe Nothing (\e -> fmap (\l -> [e:l]) list) (parse xs)) (Just []) ('Text'.split "," s)
+
+class iTasksLite a | print a & parse a & TC a
+
+:: Description   :== String
+:: StoreID a     :== String
+:: *TaskResult a :== (a, TaskState)
+:: *TaskState    = { console :: *File
+                   , store   :: Map String Dynamic
+                   }
+
+store_ :: a (StoreID a) (Map String Dynamic) -> Map String Dynamic | TC a
+store_ v sid store = put sid (dynamic v) store
+
+retrieve_ :: (StoreID a) (Map String Dynamic) -> a | TC a
+retrieve_ sid store = case get sid store of
+    Just (a :: a^) = a
+    Just _         = abort "type error\n"
+    Nothing        = abort "empty store\n"
+
+viewInformation :: Description a TaskState -> TaskResult a | iTasksLite a
+viewInformation d a ts=:{console} =
+       (a, {ts & console=console <<< d <<< ": " <<< print a <<< ".\n"})
+
+enterInformation :: Description TaskState -> TaskResult a | iTasksLite a
+enterInformation d ts=:{console}
+# (a, console) = freadline (console <<< "Enter the answer: ")
+= case parse a of
+       Just x = (x, {ts & console=console})
+       Nothing = enterInformation d {ts & console=console <<< "Wrong format, try again.\n"}
+
+store :: a (StoreID a) TaskState -> TaskResult a | iTasksLite a
+store v s ts=:{store} = (v, {ts & store=store_ v s store})
+
+retrieve :: (StoreID a) TaskState -> TaskResult a | iTasksLite a
+retrieve s ts=:{store} = (retrieve_ s store, ts)
+
+eval :: (TaskState -> TaskResult a) *File -> (a, *File) | iTasksLite a
+eval taskFunc console
+    # (r, st) = taskFunc ({store = newMap, console = console})
+    = (r, st.console)
+
+task0 :: TaskState -> TaskResult Int
+task0 st = (42, st)
+
+// The type is surrounded by parenthesis because its a constant that happens to
+// be a function
+task1 :: (TaskState -> TaskResult Int)
+task1 = viewInformation "The answer is" 42
+
+task2 :: TaskState -> TaskResult Int
+task2 st
+# (x, st) = enterInformation "Enter the answer" st
+= viewInformation "The answer is" x st
+
+task3 :: TaskState -> TaskResult Int
+task3 st
+    # (_, st) = store 1 intStore st
+    =           retrieve intStore st
+where
+    intStore :: StoreID Int
+    intStore = "intStore"
+
+task3Fail :: TaskState -> TaskResult Int
+task3Fail st = retrieve intStore st
+       where
+               intStore :: StoreID Int
+               intStore = "intStore"
+
+task3TypeFail :: TaskState -> TaskResult Int
+task3TypeFail st = retrieve intStore (snd (store "1" stringStore st))
+       where
+    intStore :: StoreID Int
+    intStore = "intStore"
+    stringStore :: StoreID String
+    stringStore = "intStore"
+
+// This gives a heap full error, because the console is never queried it just
+// continues. The strictness enforced the immediate query of the console.
+task4 :: TaskState -> TaskResult Void
+task4 st
+    # (_, st) = store [] ideaStore st
+    = addIdea st
+where
+    addIdea st
+        # (ideas, st) = retrieve ideaStore st
+          (_,     st) = viewInformation "All ideas" ideas st
+          (idea,  st) = enterInformation "Enter new idea" st
+          (_,     st) = store (ideas ++ [toString (length ideas+1) +++ ". " +++ idea]) ideaStore st
+        = addIdea st
+
+    ideaStore :: StoreID [String]
+    ideaStore = "ideas"
+
+Start world
+ #     (console, world) = stdio world
+       console                  = console <<< "Welcome to iTasksLite\n\n"
+    (r, console)     = eval task4 console
+    console          = console <<< "\nThe result of the task is " <<< print r <<< ".\n"
+       (_, world)           = fclose console world
+ = world
diff --git a/a6/mart/skeleton6a.prj b/a6/mart/skeleton6a.prj
new file mode 100644 (file)
index 0000000..592a19b
--- /dev/null
@@ -0,0 +1,676 @@
+Version: 1.4
+Global
+       ProjectRoot:    .
+       Target: StdEnv
+       Exec:   {Project}/skeleton6a
+       CodeGen
+               CheckStacks:    False
+               CheckIndexes:   True
+       Application
+               HeapSize:       2097152
+               StackSize:      512000
+               ExtraMemory:    8192
+               IntialHeapSize: 204800
+               HeapSizeMultiplier:     4096
+               ShowExecutionTime:      False
+               ShowGC: False
+               ShowStackSize:  False
+               MarkingCollector:       False
+               DisableRTSFlags:        False
+               StandardRuntimeEnv:     True
+               Profile
+                       Memory: False
+                       MemoryMinimumHeapSize:  0
+                       Time:   False
+                       Stack:  False
+               Output
+                       Output: NoReturnType
+                       Font:   Monaco
+                       FontSize:       9
+                       WriteStdErr:    False
+       Link
+               LinkMethod:     Dynamic
+               GenerateRelocations:    False
+               GenerateLinkMap:        False
+               LinkResources:  False
+               ResourceSource: 
+               GenerateDLL:    False
+               ExportedNames:  
+       Paths
+               Path:   {Project}
+               Path:   {Application}/lib/clean-platform/OS-Independent/
+               Path:   {Application}/lib/Generics
+               Path:   {Application}/lib/Dynamics
+       Precompile:     
+       Postlink:       
+MainModule
+       Name:   skeleton6a
+       Dir:    {Project}
+       Compiler
+               NeverMemoryProfile:     False
+               NeverTimeProfile:       False
+               StrictnessAnalysis:     True
+               ListTypes:      StrictExportTypes
+               ListAttributes: True
+               Warnings:       True
+               Verbose:        True
+               ReadableABC:    False
+               ReuseUniqueNodes:       True
+               Fusion: False
+OtherModules
+       Module
+               Name:   Control.Applicative
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Control.Monad
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Either
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Foldable
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Func
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Functor
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.List
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Map
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Maybe
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Monoid
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Set
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Traversable
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Tuple
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Void
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   System.IO
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text.JSON
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text.PPrint
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   GenEq
+               Dir:    {Application}/lib/Generics
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemDynamic
+               Dir:    {Application}/lib/Dynamics
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdArray
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdBool
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdChar
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdCharList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdClass
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdEnum
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdEnv
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdFile
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdFunc
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdGeneric
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdInt
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdMisc
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOrdList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOverloaded
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOverloadedList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdReal
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdStrictLists
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdString
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdTuple
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemArray
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemEnum
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemEnumStrict
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemStrictLists
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
diff --git a/a6/mart/skeleton6b.icl b/a6/mart/skeleton6b.icl
new file mode 100644 (file)
index 0000000..9e1c5cf
--- /dev/null
@@ -0,0 +1,118 @@
+module skeleton6b
+
+import StdList, StdInt, StdChar, StdMisc, StdClass, StdString, StdFile, StdArray, Data.Maybe, Data.Map, Control.Monad, Data.Tuple, Data.Void
+import qualified Text
+from Text import class Text, instance Text String
+
+class print a :: a -> String
+
+instance print Void where print _ = "Void"
+instance print String where print s = s
+instance print Int where print i = toString i
+instance print [a] | print a where print l = 'Text'.join ", " (map print l)
+
+class parse a :: String -> Maybe a
+
+instance parse Void where parse _ = Just Void
+
+instance parse String where
+    parse s = let len = size s
+              in  Just (if (select s (len-1) == '\n') (s % (0, len - 2)) s) // remove newline
+instance parse Int where
+       parse s
+               # len = size s
+               | len > 0
+                       # s = if (select s (len-1) == '\n') (s % (0, len - 2)) s // remove newline
+                       # i = toInt s
+                       | toString i == s
+                               = Just i
+                       = Nothing
+
+instance parse [a] | parse a where parse s = foldr (\xs list -> maybe Nothing (\e -> fmap (\l -> [e:l]) list) (parse xs)) (Just []) ('Text'.split "," s)
+
+class iTasksLite a | print a & parse a & TC a
+
+:: Description   :== String
+:: StoreID a     :== String
+:: Task a        = // define type here
+:: *TaskState    = { console :: !*File
+                   , store   :: Map String Dynamic
+                   }
+
+store_ :: a (StoreID a) (Map String Dynamic) -> Map String Dynamic | TC a
+store_ v sid store = put sid (dynamic v) store
+
+retrieve_ :: (StoreID a) (Map String Dynamic) -> a | TC a
+retrieve_ sid store = case get sid store of
+    Just (a :: a^) = a
+    Just _         = abort "type error\n"
+    Nothing        = abort "empty store\n"
+
+instance Functor Task where
+    fmap :: (a -> b) (Task a) -> Task b
+    fmap _ _ = undef
+
+instance Applicative Task where
+    pure :: a -> Task a
+    pure _ = undef
+
+    (<*>) infixl 4  :: (Task (a -> b)) (Task a) -> Task b
+    (<*>) _ _ = undef
+
+instance Monad Task where
+    bind :: (Task a) (a -> Task b) -> Task b
+    bind _ _ = undef
+
+eval :: (Task a) *File -> (a, *File) | iTasksLite a
+eval (Task taskFunc) console
+    # (r, {console}) = taskFunc {store = newMap, console = console}
+    = (r, console)
+
+task0 :: Task Int
+task0 = return 42
+
+/*task1 :: Task Int
+task1 = viewInformation "The answer is" 42
+
+task2 :: Task Int
+task2 =
+     enterInformation "Enter the answer"
+ >>= viewInformation "The answer is"
+
+task3 :: Task Int
+task3 =
+        store 1 intStore
+    >>| retrieve intStore
+where
+    intStore :: StoreID Int
+    intStore = "intStore"
+
+task3Fail :: Task Int
+task3Fail = retrieve intStore
+where
+    intStore :: StoreID Int
+    intStore = "intStore"
+
+task4 :: Task Void
+task4 =
+        store [] ideaStore
+    >>| addIdea
+where
+    addIdea =
+                      retrieve ideaStore
+        >>= \ideas -> viewInformation "All ideas" ideas
+        >>|           enterInformation "Enter new idea"
+        >>= \idea  -> store (ideas ++ [toString (length ideas+1) +++ ". " +++ idea]) ideaStore
+        >>|           addIdea
+
+    ideaStore :: StoreID [String]
+    ideaStore = "ideas"*/
+
+Start world
+ #     (console, world) = stdio world
+       console                  = console <<< "Welcome to iTasksLite" <<< "\n\n"
+    (r, console)     = eval task0 console
+    console          = console <<< "\n" <<< "The result of the task is " <<< print r <<< ".\n"
+       (_, world)           = fclose console world
+ = world
+
diff --git a/a6/mart/skeleton6b.prj b/a6/mart/skeleton6b.prj
new file mode 100644 (file)
index 0000000..c35a81a
--- /dev/null
@@ -0,0 +1,676 @@
+Version: 1.4
+Global
+       ProjectRoot:    .
+       Target: StdEnv
+       Exec:   {Project}/skeleton6b
+       CodeGen
+               CheckStacks:    False
+               CheckIndexes:   True
+       Application
+               HeapSize:       2097152
+               StackSize:      512000
+               ExtraMemory:    8192
+               IntialHeapSize: 204800
+               HeapSizeMultiplier:     4096
+               ShowExecutionTime:      False
+               ShowGC: False
+               ShowStackSize:  False
+               MarkingCollector:       False
+               DisableRTSFlags:        False
+               StandardRuntimeEnv:     True
+               Profile
+                       Memory: False
+                       MemoryMinimumHeapSize:  0
+                       Time:   False
+                       Stack:  False
+               Output
+                       Output: NoReturnType
+                       Font:   Monaco
+                       FontSize:       9
+                       WriteStdErr:    False
+       Link
+               LinkMethod:     Dynamic
+               GenerateRelocations:    False
+               GenerateLinkMap:        False
+               LinkResources:  False
+               ResourceSource: 
+               GenerateDLL:    False
+               ExportedNames:  
+       Paths
+               Path:   {Project}
+               Path:   {Application}/lib/clean-platform/OS-Independent/
+               Path:   {Application}/lib/Generics
+               Path:   {Application}/lib/Dynamics
+       Precompile:     
+       Postlink:       
+MainModule
+       Name:   skeleton6b
+       Dir:    {Project}
+       Compiler
+               NeverMemoryProfile:     False
+               NeverTimeProfile:       False
+               StrictnessAnalysis:     True
+               ListTypes:      StrictExportTypes
+               ListAttributes: True
+               Warnings:       True
+               Verbose:        True
+               ReadableABC:    False
+               ReuseUniqueNodes:       True
+               Fusion: False
+OtherModules
+       Module
+               Name:   Control.Applicative
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Control.Monad
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Either
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Foldable
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Func
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Functor
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.List
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Map
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Maybe
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Monoid
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Set
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Traversable
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Tuple
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Data.Void
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   System.IO
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text.JSON
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   Text.PPrint
+               Dir:    {Application}/lib/clean-platform/OS-Independent/
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   GenEq
+               Dir:    {Application}/lib/Generics
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemDynamic
+               Dir:    {Application}/lib/Dynamics
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdArray
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdBool
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdChar
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdCharList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdClass
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdEnum
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdEnv
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdFile
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdFunc
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdGeneric
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdInt
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdMisc
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOrdList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOverloaded
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOverloadedList
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdReal
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdStrictLists
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdString
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdTuple
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemArray
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemEnum
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemEnumStrict
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemStrictLists
+               Dir:    {Application}/lib/StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False