From b3b9d5cde6cba0a8ecfbc246b3210401ff2e5d6f Mon Sep 17 00:00:00 2001 From: Charlie Gerhardus Date: Sun, 27 Sep 2015 23:24:19 +0200 Subject: [PATCH] opdracht 3 met map2 voor tuples --- a3/mart_map2/Makefile | 21 + a3/mart_map2/iTasksTest.icl | 11 + a3/mart_map2/iTasksTest.prj | 2380 ++++++++++++++++++++++++++++++++ a3/mart_map2/skeleton3a.icl | 262 ++++ a3/mart_map2/skeleton3a_wt.icl | 223 +++ a3/mart_map2/skeleton3b.icl | 102 ++ 6 files changed, 2999 insertions(+) create mode 100644 a3/mart_map2/Makefile create mode 100644 a3/mart_map2/iTasksTest.icl create mode 100644 a3/mart_map2/iTasksTest.prj create mode 100644 a3/mart_map2/skeleton3a.icl create mode 100644 a3/mart_map2/skeleton3a_wt.icl create mode 100644 a3/mart_map2/skeleton3b.icl diff --git a/a3/mart_map2/Makefile b/a3/mart_map2/Makefile new file mode 100644 index 0000000..0e68e12 --- /dev/null +++ b/a3/mart_map2/Makefile @@ -0,0 +1,21 @@ +CLEANEXES:=skeleton3a skeleton3b skeleton3a_wt +ITASKSPRJS:=iTasksTest.exe +CLM:=clm +CPM:=cpm +CLMFLAGS:=-IL ../lib/StdLib -IL ../lib/Generics + +all: $(CLEANEXES) $(ITASKSPRJS) + +%.exe: %.prj + $(CPM) project $< build + +%: %.icl + $(CLM) $(CLMFLAGS) $(basename $<) -o $@ + +clean: + $(RM) -r \ + $(CLEANEXES) \ + $(addsuffix .exe,$(basename $(ITASKSPRJS))) \ + Clean\ System\ Files \ + sapl \ + $(addsuffix -data,$(basename $(ITASKSPRJS))) diff --git a/a3/mart_map2/iTasksTest.icl b/a3/mart_map2/iTasksTest.icl new file mode 100644 index 0000000..24e00f9 --- /dev/null +++ b/a3/mart_map2/iTasksTest.icl @@ -0,0 +1,11 @@ +module iTasksTest + +import iTasks + +Start :: *World -> *World +Start world = startEngine [ publish "/" (WebApp []) (\_ -> test)] world + +test :: Task String +test = enterInformation "What is your name?" [] + >>= \name -> viewInformation "Success!" [] ("Congratulations " +++ name +++ "! You got iTasks running.") + diff --git a/a3/mart_map2/iTasksTest.prj b/a3/mart_map2/iTasksTest.prj new file mode 100644 index 0000000..b1da31f --- /dev/null +++ b/a3/mart_map2/iTasksTest.prj @@ -0,0 +1,2380 @@ +Version: 1.4 +Global + ProjectRoot: . + Target: iTasks + Exec: {Project}/iTasksTest.exe + CodeGen + CheckStacks: False + CheckIndexes: True + Application + HeapSize: 8388608 + StackSize: 4194304 + ExtraMemory: 81920 + IntialHeapSize: 1048576 + HeapSizeMultiplier: 4096 + ShowExecutionTime: False + ShowGC: False + ShowStackSize: False + MarkingCollector: False + DisableRTSFlags: False + StandardRuntimeEnv: True + Profile + Memory: False + MemoryMinimumHeapSize: 0 + Time: True + Stack: True + Output + Output: ShowConstructors + Font: Courier + FontSize: 9 + WriteStdErr: False + Link + LinkMethod: Static + GenerateRelocations: False + GenerateLinkMap: False + LinkResources: False + ResourceSource: + GenerateDLL: False + ExportedNames: + Paths + Path: {Project} + Precompile: + Postlink: +MainModule + Name: iTasksTest + 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: StdDynamic + 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: StdDebug + 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: 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 + Module + Name: TCPChannelClass + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPDef + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPEvent + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPIP + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPStringChannels + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPStringChannelsInternal + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: ostcp + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: cTCP_121. + Module + Name: tcp + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: tcp_bytestreams + Dir: {Application}/lib/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Control.Applicative + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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: Crypto.Hash.SHA1 + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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.Error + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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.Generic + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.IntMap.Base + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.IntMap.Strict + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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: Graphics.Scalable + Dir: {Application}/lib/iTasks-SDK/Dependencies/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: Graphics.Scalable.Internal + Dir: {Application}/lib/iTasks-SDK/Dependencies/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: Internet.HTTP + Dir: {Application}/lib/iTasks-SDK/Dependencies/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: Math.Random + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.CommandLine + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.FilePath + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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._Pointer + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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.CSV + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Encodings.Base64 + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Encodings.MIME + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Encodings.UrlEncoding + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.HTML + Dir: {Application}/lib/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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/iTasks-SDK/Dependencies/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.Parsers.ParserLanguage + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Parsers.Parsers + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Parsers.ParsersAccessories + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Parsers.ParsersDerived + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Parsers.ParsersKernel + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.StringAppender + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.URI + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Unicode + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Unicode.Encodings.JS + Dir: {Application}/lib/iTasks-SDK/Dependencies/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.Unicode.UChar + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Independent + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: WCsubst. + ObjectFile: bsearch. + Module + Name: System._Posix + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Linux + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.OS + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Linux-64 + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.Directory + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.Environment + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.File + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.OSError + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.Process + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: System.Time + Dir: {Application}/lib/iTasks-SDK/Dependencies/Platform/OS-Posix + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.FastString + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Linker.LazyLinker + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Linker.SaplLinkerShared + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Optimization.StrictnessPropagation + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.SaplParser + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.SaplStruct + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.SaplTokenizer + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Target.Flavour + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Target.JS.CodeGeneratorJS + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Transform.AddSelectors + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: Sapl.Transform.Let + Dir: {Application}/lib/iTasks-SDK/Dependencies/SAPL + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: dynamic_string + Dir: {Application}/lib/iTasks-SDK/Dependencies/graph_copy + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: copy_string_to_graph. + ObjectFile: copy_string_to_graph_interface. + ObjectFile: copy_graph_to_string. + ObjectFile: copy_graph_to_string_interface. + Module + Name: graph_to_sapl_string + Dir: {Application}/lib/iTasks-SDK/Dependencies/graph_copy + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: graph_to_string_with_descriptors + Dir: {Application}/lib/iTasks-SDK/Dependencies/graph_copy + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + NeededObjFiles + ObjectFile: copy_graph_to_string. + ObjectFile: copy_graph_to_string_interface. + Module + Name: sapldebug + Dir: {Application}/lib/iTasks-SDK/Dependencies/graph_copy + 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/iTasks-SDK/Patches/Dynamics + 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/iTasks-SDK/Patches/Generics + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: GenLexOrd + Dir: {Application}/lib/iTasks-SDK/Patches/Generics + 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/iTasks-SDK/Patches/StdEnv + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: TCPChannels + Dir: {Application}/lib/iTasks-SDK/Patches/TCPIP + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.DBTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.ExportTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.ImportTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.InteractionTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.SDSCombinators + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Common.TaskCombinators + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Client.Component + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Client.Editlet + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Client.Interface + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Client.Tasklet + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.IntegrationTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.LayoutCombinators + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.OptimizedCoreTasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.SDSCombinators + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.SDSs + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.TaskCombinators + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Tasks + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Core.Types + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Extensions.Admin.UserAdmin + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Extensions.Admin.WorkflowAdmin + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Extensions.SVG.SVGlet + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks.API.Extensions.User + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Client.JSStore + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Client.LinkerSupport + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Client.Override + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Client.RunOnClient + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Client.Tasklet + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.DynamicUtil + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Engine + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Generic + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Generic.Defaults + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Generic.Interaction + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Generic.Visualization + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.HtmlUtil + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.HttpUtil + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.IWorld + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.RemoteAccess + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.SDS + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.SDSService + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Serialization + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Store + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Task + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.TaskEval + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.TaskServer + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.TaskState + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.TaskStore + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Tonic + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Tonic.AbsSyn + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Tonic.Images + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Tonic.Pretty + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Tonic.Types + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.UIDefinition + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.UIDiff + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.Util + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: iTasks._Framework.WebService + Dir: {Application}/lib/iTasks-SDK/Server + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False + Module + Name: StdMaybe + Dir: {Application}/lib/iTasks-SDK/Server/lib + Compiler + NeverMemoryProfile: False + NeverTimeProfile: False + StrictnessAnalysis: True + ListTypes: StrictExportTypes + ListAttributes: True + Warnings: True + Verbose: True + ReadableABC: False + ReuseUniqueNodes: True + Fusion: False diff --git a/a3/mart_map2/skeleton3a.icl b/a3/mart_map2/skeleton3a.icl new file mode 100644 index 0000000..487c1ad --- /dev/null +++ b/a3/mart_map2/skeleton3a.icl @@ -0,0 +1,262 @@ +module skeleton3a +/* + Mart Lubbers s4109503 + Charlie Gerhardus s3050009 +*/ + +/* + Advanced Programming. + Skeleton for exercise 3.1 and 3.2. + To be used in a project with the environment Everything, + or StdEnv with an import of StdMaybe from StdLib + + Pieter Koopman, pieter@cs.ru.nl +*/ + +import StdEnv, StdMaybe + +/************* showing *******************/ + +class show_0 t where show_0 :: t [String] -> [String] + +instance show_0 Int where show_0 i c = [toString i:c] +instance show_0 Bool where show_0 b c = [toString b:c] + +instance show_0 UNIT where show_0 _ c = c + +show :: a -> [String] | show_0 a +show a = show_0 a [] + +/**************** parsing *************************/ + +:: Result a :== Maybe (a,[String]) + +class parse0 t :: [String] -> Result t + +instance parse0 Int where + parse0 [i:r] = Just (toInt i, r) + parse0 r = Nothing + +instance parse0 Bool where + parse0 [b:r] = Just (b == "True", r) + parse0 r = Nothing + +instance parse0 UNIT where + parse0 r = Just (UNIT, r) + +/**************** Example Types and conversions *************************/ + +:: T = C +:: Color = Red | Yellow | Blue +:: Tree a = Tip | Bin a (Tree a) (Tree a) + +// Binary sums and products (in generic prelude) +:: UNIT = UNIT +:: PAIR a b = PAIR a b +:: EITHER a b = LEFT a | RIGHT b +:: CONS a = CONS String a + +// Generic type representations +:: TG :== CONS UNIT +:: ColorG :== EITHER (EITHER (CONS UNIT) (CONS UNIT)) (CONS UNIT) +:: ListG a :== EITHER (CONS UNIT) (CONS (PAIR a [a])) +:: TreeG a :== EITHER (CONS UNIT) (CONS (PAIR a (PAIR (Tree a) (Tree a)))) +:: TupG a b :== CONS (PAIR a b) + +// Conversions + +fromT :: T -> TG +fromT c = CONS "C" UNIT + +fromColor :: Color -> ColorG +fromColor Red = LEFT (LEFT (CONS "Red" UNIT)) +fromColor Yellow = LEFT (RIGHT (CONS "Yellow" UNIT)) +fromColor Blue = RIGHT (CONS "Blue" UNIT) + +fromList :: [a] -> ListG a +fromList [] = LEFT(CONS "Nil" UNIT) +fromList [a:as] = RIGHT (CONS "Cons" (PAIR a as)) + +fromTree :: (Tree a) -> TreeG a +fromTree Tip = LEFT(CONS "Tip" UNIT) +fromTree (Bin a l r) = RIGHT (CONS "Bin" (PAIR a (PAIR l r))) + +fromTup :: (a,b) -> TupG a b +fromTup (a,b) = CONS "Tuple2" (PAIR a b) + +toT :: TG -> T +toT (CONS _ UNIT) = C + +toColor :: ColorG -> Color +toColor (LEFT (LEFT(CONS _ UNIT))) = Red +toColor (LEFT (RIGHT (CONS _ UNIT))) = Yellow +toColor (RIGHT (CONS _ UNIT)) = Blue + +toList :: (ListG a) -> [a] +toList (LEFT (CONS s UNIT)) = [] +toList (RIGHT (CONS s (PAIR a as))) = [a:as] + +toTree :: (TreeG a) -> Tree a +toTree (LEFT (CONS s UNIT))= Tip +toTree (RIGHT (CONS s (PAIR a (PAIR l r)))) = Bin a l r + +toTup :: (TupG a b) -> (a,b) +toTup (CONS s (PAIR a b)) = (a,b) + +/**************** to test if parse and show work properly *************************/ + +test :: t -> Bool | eq0, show_0, parse0 t +test x = case parse0 (show x) of + Just (y,[]) = eq0 x y + _ = False + +/**************** equality with a class for each kind *************************/ + +class eq0 t ::t t-> Bool +class eq1 t :: (a a -> Bool) (t a) (t a) -> Bool +class eq2 t :: (a a -> Bool) (b b -> Bool) (t a b) (t a b) -> Bool + +instance eq0 UNIT where eq0 _ _ = True +instance eq0 Int where eq0 n m = n == m + +instance eq1 CONS where eq1 f (CONS s x) (CONS t y) = s == t && f x y + +instance eq2 PAIR where eq2 f g (PAIR a b) (PAIR x y) = f a x && g b y +instance eq2 EITHER where + eq2 f g (LEFT x) (LEFT y)= f x y + eq2 f g (RIGHT x) (RIGHT y)= g x y + eq2 f g _ _ = False + +instance eq0 [a] | eq0 a where eq0 l m = eq1 eq0 l m +instance eq1 [] where eq1 f l m = eq2 (eq1 eq0) (eq1 (eq2 f (eq1 f))) (fromList l) (fromList m) + +/**************** map *************************/ + +class map0 t :: t -> t +class map1 t :: (a -> b) (t a) -> t b +class map2 t :: (a -> b) (c -> d) (t a c) -> t b d + +instance map0 Int where map0 i = i +instance map0 UNIT where map0 UNIT = UNIT + +instance map1 CONS where map1 f (CONS n x) = CONS n (f x) + +instance map2 PAIR where map2 f g (PAIR x y) = PAIR (f x) (g y) +instance map2 EITHER where + map2 f g (LEFT x) = LEFT (f x) + map2 f g (RIGHT y)= RIGHT (g y) + +/**************** End Prelude *************************/ + +/**************** please add all new code below this line *************************/ +//Show stuff +class show_1 t where show_1 :: (a [String] -> [String]) (t a) [String] -> [String] +class show_2 t where show_2 :: (a [String] -> [String]) (b [String] -> [String]) (t a b) [String] -> [String] + +instance show_1 CONS where + show_1 f (CONS s x) c = [s:f x c] +instance show_2 PAIR where + show_2 f1 f2 (PAIR x1 x2) c = f1 x1 (f2 x2 c) +instance show_2 EITHER where + show_2 f1 f2 (LEFT x1) c = f1 x1 c + show_2 f1 f2 (RIGHT x2) c = f2 x2 c + +instance show_0 Color where + show_0 x c = show_2 (show_2 (show_1 show_0) (show_1 show_0)) (show_1 show_0) (fromColor x) c + +instance show_1 Tree where + show_1 f x c = show_2 (show_1 show_0) (show_1 (show_2 f (show_2 (show_1 f) (show_1 f)))) (fromTree x) c +instance show_0 (Tree a) | show_0 a where + show_0 x c = show_1 show_0 x c + +instance show_1 [] where + show_1 f x c = show_2 (show_1 show_0) (show_1 (show_2 f (show_1 f))) (fromList x) c +instance show_0 [a] | show_0 a where + show_0 x c = show_1 show_0 x c + +instance show_0 (a, b) | show_0 a & show_0 b where + show_0 x c = show_1 (show_2 show_0 show_0) (fromTup x) c + +instance show_0 T where + show_0 x c = show_1 show_0 (fromT x) c + +//Parsing stuff +class parse1 t :: ([String] -> Result a) [String] -> Result (t a) +class parse2 t :: ([String] -> Result a) ([String] -> Result b) [String] -> Result (t a b) + +instance parse1 CONS where + parse1 f [s:r] = case f r of + Just (x, r) = Just (CONS s x, r) + _ = Nothing + parse1 _ _ = Nothing + +instance parse2 PAIR where + parse2 f1 f2 r = case f1 r of + Just (x1, r) = case f2 r of + Just (x2, r) = Just (PAIR x1 x2, r) + _ = Nothing + _ = Nothing + +instance parse2 EITHER where + parse2 f1 f2 r = case f2 r of + Just (x, r) = Just (RIGHT x, r) + _ = case f1 r of + Just (x, r) = Just (LEFT x, r) + _ = Nothing + +instance parse0 Color where + parse0 r = case parse2 (parse2 (parse1 parse0) (parse1 parse0)) (parse1 parse0) r of + Just (x, r) = Just (toColor x, r) + _ = Nothing + +instance parse1 Tree where + parse1 f r = case parse2 (parse1 parse0) (parse1 (parse2 f (parse2 (parse1 f) (parse1 f)))) r of + Just (x, r) = Just (toTree x, r) + _ = Nothing +instance parse0 (Tree a) | parse0 a where + parse0 r = parse1 parse0 r + +instance parse1 [] where + parse1 f r = case parse2 (parse1 parse0) (parse1 (parse2 f (parse1 f))) r of + Just (x, r) = Just (toList x, r) + _ = Nothing +instance parse0 [a] | parse0 a where + parse0 r = parse1 parse0 r + +instance parse0 (a, b) | parse0 a & parse0 b where + parse0 r = case parse1 (parse2 parse0 parse0) r of + Just (x, r) = Just (toTup x, r) + _ = Nothing + +instance parse0 T where + parse0 r = case parse1 parse0 r of + Just (x, r) = Just (toT x, r) + _ = Nothing + +instance eq0 Color where + eq0 c1 c2 = eq2 (eq2 (eq1 eq0) (eq1 eq0)) (eq1 eq0) (fromColor c1) (fromColor c2) +instance == Color where + (==) c1 c2 = eq0 c1 c2 + +instance map1 [] where + map1 f l = toList (map2 (map1 map0) (map1 (map2 f (map1 f))) (fromList l)) + +instance map1 Tree where + map1 f t = toTree (map2 (map1 map0) (map1 (map2 f (map2 (map1 f) (map1 f)))) (fromTree t)) + +instance map2 (,) where + map2 f1 f2 t = toTup y where + y = map1 (map2 f1 f2) x where + x = fromTup t + +Start = ( + map1 fac aTree, + map1 fac aList, + map2 (map1 fac) (map1 fac) (aList, aTree), + map1 (\x.(x, fac x)) aList + ) + where + fac 1 = 1 + fac n = n * (fac (n-1)) + aTree = Bin 2 Tip (Bin 4 Tip Tip) + aList = [1..10] diff --git a/a3/mart_map2/skeleton3a_wt.icl b/a3/mart_map2/skeleton3a_wt.icl new file mode 100644 index 0000000..3a92faf --- /dev/null +++ b/a3/mart_map2/skeleton3a_wt.icl @@ -0,0 +1,223 @@ +module skeleton3a_wt +/* + Mart Lubbers s4109503 + Charlie Gerhardus s3050009 +*/ + +/* + Advanced Programming. + Skeleton for exercise 3.1 and 3.2. + To be used in a project with the environment Everything, + or StdEnv with an import of StdMaybe from StdLib + + Pieter Koopman, pieter@cs.ru.nl +*/ + +import StdEnv, StdMaybe + +/************* showing *******************/ + +class show_0 t where show_0 :: t [String] -> [String] +class show_1 t where show_1 :: (a [String] -> [String]) (t a) [String] -> [String] +class show_2 t where show_2 :: (a [String] -> [String]) (b [String] -> [String]) (t a b) [String] -> [String] + +instance show_0 Int where show_0 i c = [IntTag :toString i:c] +instance show_0 Bool where show_0 b c = [BoolTag:toString b:c] + +instance show_0 UNIT where show_0 unit c = [UNITTag:c] +instance show_1 CONS where + show_1 f (CONS s x) c = [CONSTag,s:f x c] +instance show_2 PAIR where + show_2 f1 f2 (PAIR x1 x2) c = [PAIRTag:f1 x1 (f2 x2 c)] +instance show_2 EITHER where + show_2 f1 f2 (LEFT x1) c = [LEFTTag:f1 x1 c] + show_2 f1 f2 (RIGHT x2) c = [RIGHTTag:f2 x2 c] + +instance show_0 Color where + show_0 x c = show_2 (show_2 (show_1 show_0) (show_1 show_0)) (show_1 show_0) (fromColor x) c + +instance show_1 Tree where + show_1 f x c = show_2 (show_1 show_0) (show_1 (show_2 f (show_2 (show_1 f) (show_1 f)))) (fromTree x) c +instance show_0 (Tree a) | show_0 a where + show_0 x c = show_1 show_0 x c + +instance show_1 [] where + show_1 f x c = show_2 (show_1 show_0) (show_1 (show_2 f (show_1 f))) (fromList x) c +instance show_0 [a] | show_0 a where + show_0 x c = show_1 show_0 x c + +instance show_0 (a, b) | show_0 a & show_0 b where + show_0 x c = show_1 (show_2 show_0 show_0) (fromTup x) c + +instance show_0 T where + show_0 x c = show_1 show_0 (fromT x) c + +IntTag :== "Int" +BoolTag :== "Bool" +UNITTag :== "UNIT" +PAIRTag :== "PAIR" +LEFTTag :== "LEFT" +RIGHTTag :== "RIGHT" +CONSTag :== "CONS" + +show :: a -> [String] | show_0 a +show a = show_0 a [] + +/**************** parsing *************************/ + +:: Result a :== Maybe (a,[String]) + +class parse0 t :: [String] -> Result t +class parse1 t :: ([String] -> Result a) [String] -> Result (t a) +class parse2 t :: ([String] -> Result a) ([String] -> Result b) [String] -> Result (t a b) + +instance parse0 Int where + parse0 [IntTag,i:r] = Just (toInt i, r) + parse0 r = Nothing + +instance parse0 Bool where + parse0 [BoolTag,b:r] = Just (b == "True", r) + parse0 r = Nothing + +instance parse0 UNIT where + parse0 [UNITTag:r] = Just (UNIT, r) + parse0 r = Nothing + +instance parse1 CONS where + parse1 f [CONSTag,s:r] = case f r of + Just (x, r) = Just (CONS s x, r) + _ = Nothing + parse1 _ _ = Nothing + +instance parse2 PAIR where + parse2 f1 f2 [PAIRTag:r] = case f1 r of + Just (x1, r) = case f2 r of + Just (x2, r) = Just (PAIR x1 x2, r) + _ = Nothing + _ = Nothing + parse2 _ _ _ = Nothing + +instance parse2 EITHER where + parse2 f1 f2 [LEFTTag:r] = case f1 r of + Just (x, r) = Just (LEFT x, r) + _ = Nothing + parse2 f1 f2 [RIGHTTag:r] = case f2 r of + Just (x, r) = Just (RIGHT x, r) + _ = Nothing + +instance parse0 Color where + parse0 r = case parse2 (parse2 (parse1 parse0) (parse1 parse0)) (parse1 parse0) r of + Just (x, r) = Just (toColor x, r) + _ = Nothing + +instance parse1 Tree where + parse1 f r = case parse2 (parse1 parse0) (parse1 (parse2 f (parse2 (parse1 f) (parse1 f)))) r of + Just (x, r) = Just (toTree x, r) + _ = Nothing +instance parse0 (Tree a) | parse0 a where + parse0 r = parse1 parse0 r + +instance parse1 [] where + parse1 f r = case parse2 (parse1 parse0) (parse1 (parse2 f (parse1 f))) r of + Just (x, r) = Just (toList x, r) + _ = Nothing +instance parse0 [a] | parse0 a where + parse0 r = parse1 parse0 r + +instance parse0 (a, b) | parse0 a & parse0 b where + parse0 r = case parse1 (parse2 parse0 parse0) r of + Just (x, r) = Just (toTup x, r) + _ = Nothing + +instance parse0 T where + parse0 r = case parse1 parse0 r of + Just (x, r) = Just (toT x, r) + _ = Nothing + +/**************** Example Types and conversions *************************/ + +:: T = C +:: Color = Red | Yellow | Blue +:: Tree a = Tip | Bin a (Tree a) (Tree a) + +// Binary sums and products (in generic prelude) +:: UNIT = UNIT +:: PAIR a b = PAIR a b +:: EITHER a b = LEFT a | RIGHT b +:: CONS a = CONS String a + +// Generic type representations +:: TG :== CONS UNIT +:: ColorG :== EITHER (EITHER (CONS UNIT) (CONS UNIT)) (CONS UNIT) +:: ListG a :== EITHER (CONS UNIT) (CONS (PAIR a [a])) +:: TreeG a :== EITHER (CONS UNIT) (CONS (PAIR a (PAIR (Tree a) (Tree a)))) +:: TupG a b :== CONS (PAIR a b) + +// Conversions + +fromT :: T -> TG +fromT c = CONS "C" UNIT + +fromColor :: Color -> ColorG +fromColor Red = LEFT (LEFT (CONS "Red" UNIT)) +fromColor Yellow = LEFT (RIGHT (CONS "Yellow" UNIT)) +fromColor Blue = RIGHT (CONS "Blue" UNIT) + +fromList :: [a] -> ListG a +fromList [] = LEFT(CONS "Nil" UNIT) +fromList [a:as] = RIGHT (CONS "Cons" (PAIR a as)) + +fromTree :: (Tree a) -> TreeG a +fromTree Tip = LEFT(CONS "Tip" UNIT) +fromTree (Bin a l r) = RIGHT (CONS "Bin" (PAIR a (PAIR l r))) + +fromTup :: (a,b) -> TupG a b +fromTup (a,b) = CONS "Tuple2" (PAIR a b) + +toT :: TG -> T +toT (CONS _ UNIT) = C + +toColor :: ColorG -> Color +toColor (LEFT (LEFT(CONS _ UNIT))) = Red +toColor (LEFT (RIGHT (CONS _ UNIT))) = Yellow +toColor (RIGHT (CONS _ UNIT)) = Blue + +toList :: (ListG a) -> [a] +toList (LEFT (CONS s UNIT)) = [] +toList (RIGHT (CONS s (PAIR a as))) = [a:as] + +toTree :: (TreeG a) -> Tree a +toTree (LEFT (CONS s UNIT))= Tip +toTree (RIGHT (CONS s (PAIR a (PAIR l r)))) = Bin a l r + +toTup :: (TupG a b) -> (a,b) +toTup (CONS s (PAIR a b)) = (a,b) + +/**************** to test if parse and show work properly *************************/ + +test :: t -> Bool | eq0, show_0, parse0 t +test x = case parse0 (show x) of + Just (y,[]) = eq0 x y + _ = False + +/**************** equality with a class for each kind *************************/ + +class eq0 t ::t t-> Bool +class eq1 t :: (a a -> Bool) (t a) (t a) -> Bool +class eq2 t :: (a a -> Bool) (b b -> Bool) (t a b) (t a b) -> Bool + +instance eq0 UNIT where eq0 _ _ = True +instance eq0 Int where eq0 n m = n == m + +instance eq1 CONS where eq1 f (CONS s x) (CONS t y) = s == t && f x y + +instance eq2 PAIR where eq2 f g (PAIR a b) (PAIR x y) = f a x && g b y +instance eq2 EITHER where + eq2 f g (LEFT x) (LEFT y)= f x y + eq2 f g (RIGHT x) (RIGHT y)= g x y + eq2 f g _ _ = False + +instance eq0 [a] | eq0 a where eq0 l m = eq1 eq0 l m +instance eq1 [] where eq1 f l m = eq2 (eq1 eq0) (eq1 (eq2 f (eq1 f))) (fromList l) (fromList m) + +Start = "Hi" diff --git a/a3/mart_map2/skeleton3b.icl b/a3/mart_map2/skeleton3b.icl new file mode 100644 index 0000000..a0675f9 --- /dev/null +++ b/a3/mart_map2/skeleton3b.icl @@ -0,0 +1,102 @@ +module skeleton3b + +/* + Advanced Programming. + Skeleton for exercise 3.3 and 3.4. + To be used in a project with the environment Everything, + or StdEnv with an import of StdMaybe from StdLib + + Pieter Koopman, pieter@cs.ru.nl +*/ + +import StdEnv, StdGeneric, StdMaybe, GenEq + +//------------------ show -------------- +generic show_ a :: a [String] -> [String] + +show_{|Int|} i c = [toString i:c] +show_{|Bool|} b c = [toString b:c] +show_{|UNIT|} _ c = c + +show a = show_{|*|} a [] + +//------------------ parse -------------- + +:: Result a :== Maybe (a, [String]) + +generic parse a :: [String] -> Result a + +parse{|Bool|} ["True" :r] = Just (True ,r) +parse{|Bool|} ["False":r] = Just (False,r) +parse{|Bool|} _ = Nothing + +//------------------ some data types -------------- + +:: T = C +:: Color = Red | Yellow | Blue +:: Tree a = Tip | Bin a (Tree a) (Tree a) + +//------------------ general useful -------------- + +instance + String where (+) s t = s+++t +derive bimap Maybe, [] + +//------------------ to test if parse and show work properly -------------- + +test :: t -> Bool | gEq{|*|}, show_{|*|}, parse{|*|} t +test x + = case parse{|*|} (show x) of + Just (y,[]) = x === y + _ = False + +/***** End Prelude, add all new code below this line *************************/ +//Show stuff +show_{|OBJECT|} f (OBJECT x) c = f x c +show_{|CONS of {gcd_name, gcd_arity}|} f (CONS x) c +| gcd_arity == 0 = [gcd_name:f x c] +| otherwise = ["(":gcd_name:f x [")":c]] +show_{|PAIR|} f1 f2 (PAIR x1 x2) c = f1 x1 (f2 x2 c) +show_{|EITHER|} f _ (LEFT x) c = f x c +show_{|EITHER|} _ f (RIGHT x) c = f x c +show_{|(,)|} f1 f2 (x1, x2) c = ["("] ++ f1 x1 [",":f2 x2 c]++[")"] + +derive show_ T, [], Color, Tree + +//Parse stuff (monads would make this more neat) +parse{|Int|} [i:r] = Just (toInt i, r) +parse{|Int|} _ = Nothing +parse{|UNIT|} r = Just (UNIT, r) +parse{|OBJECT|} f r = case f r of + Just (x, r) = Just (OBJECT x, r) + _ = Nothing +parse{|CONS of {gcd_name, gcd_arity}|} f r +| gcd_arity == 0 = case r of + [gcd_name:r] = case f r of + Just (x, r) = Just (CONS x, r) + _ = Nothing + _ = Nothing +| otherwise = case r of + ["(",gcd_name:r] = case f r of + Just (x, r) = Just (CONS x, r % (0, (length r) - 2)) + _ = Nothing + _ = Nothing +parse{|PAIR|} f1 f2 r = case f1 r of + Just (x1, r) = case f2 r of + Just (x2, r) = Just (PAIR x1 x2, r) + _ = Nothing + _ = Nothing +parse{|EITHER|} f1 f2 r = case f2 r of + Just (x, r) = Just (RIGHT x, r) + _ = case f1 r of + Just (x, r) = Just (LEFT x, r) + _ = Nothing +parse{|(,)|} f1 f2 ["(":r] = case f1 r of + Just (x1, r) = case r of + [",":r] = case f2 r of + Just (x2, r) = Just ((x1, x2), r % (0, (length r) - 2)) + _ = Nothing + _ = Nothing + _ = Nothing + +derive parse T, [], Color, Tree +Start = show 42 -- 2.20.1