Parser aangepast naar leipe arrowtypes zonder arity
authorpimjager <pim@pimjager.nl>
Thu, 7 Apr 2016 10:50:31 +0000 (12:50 +0200)
committerpimjager <pim@pimjager.nl>
Thu, 7 Apr 2016 10:50:31 +0000 (12:50 +0200)
.gitignore
AST.dcl
AST.icl
examples/example.spl
parse.icl
spl.prj [deleted file]

index 696ea94..b2b1838 100644 (file)
@@ -2,3 +2,4 @@ Clean System Files
 sapl
 spl
 spl.1
 sapl
 spl
 spl.1
+*.prj
\ No newline at end of file
diff --git a/AST.dcl b/AST.dcl
index 0d8644f..1e241dd 100644 (file)
--- a/AST.dcl
+++ b/AST.dcl
@@ -14,6 +14,8 @@ from StdOverloaded import class toString
        | BoolType
        | CharType
        | VarType
        | BoolType
        | CharType
        | VarType
+    | VoidType
+    | (->>) infixl 7 Type Type
 :: Expr 
        = VarExpr Pos VarDef
        | Op2Expr Pos Expr Op2 Expr
 :: Expr 
        = VarExpr Pos VarDef
        | Op2Expr Pos Expr Op2 Expr
@@ -29,8 +31,7 @@ from StdOverloaded import class toString
 :: Op1 = UnNegation | UnMinus
 :: Op2 = BiPlus | BiMinus | BiTimes | BiDivide | BiMod | BiEquals | BiLesser |
        BiGreater | BiLesserEq | BiGreaterEq | BiUnEqual | BiAnd | BiOr | BiCons
 :: Op1 = UnNegation | UnMinus
 :: Op2 = BiPlus | BiMinus | BiTimes | BiDivide | BiMod | BiEquals | BiLesser |
        BiGreater | BiLesserEq | BiGreaterEq | BiUnEqual | BiAnd | BiOr | BiCons
-:: FunDecl = FunDecl Pos String [String] (Maybe FunType) [VarDecl] [Stmt]
-:: FunType = FunType [Type] (Maybe Type)
+:: FunDecl = FunDecl Pos String [String] (Maybe Type) [VarDecl] [Stmt]
 :: FunCall = FunCall String [Expr]
 :: Stmt 
        = IfStmt Expr [Stmt] [Stmt]
 :: FunCall = FunCall String [Expr]
 :: Stmt 
        = IfStmt Expr [Stmt] [Stmt]
diff --git a/AST.icl b/AST.icl
index 70c1282..21f27d5 100644 (file)
--- a/AST.icl
+++ b/AST.icl
@@ -47,10 +47,6 @@ printStatements [s:ss] i = (case s of
                indent :: Int [String] -> [String]
                indent i rest = replicate i "\t" ++ rest
 
                indent :: Int [String] -> [String]
                indent i rest = replicate i "\t" ++ rest
 
-instance print FunType where
-       print (FunType at rt) = printersperse " " at ++
-               [if (isEmpty at) "" "->":maybe ["Void"] print rt]
-
 instance print VarDecl where
        print (VarDecl _ t i e) = print t ++ [" ":i:"=":print e] ++ [";"]
 
 instance print VarDecl where
        print (VarDecl _ t i e) = print t ++ [" ":i:"=":print e] ++ [";"]
 
@@ -62,6 +58,8 @@ instance print Type where
        print BoolType = print "Bool"
        print CharType = print "Char"
        print VarType = print "var"
        print BoolType = print "Bool"
        print CharType = print "Char"
        print VarType = print "var"
+    print VoidType = print "Void"
+    print (t1 ->> t2) = print t1 ++ [" -> ":print t2]
 
 instance print String where
        print s = [s]
 
 instance print String where
        print s = [s]
index b4efb27..0bf275e 100644 (file)
@@ -2,6 +2,7 @@
        Three ways to implement the f acto rial function in SPL.
        First the recursive version .
 */
        Three ways to implement the f acto rial function in SPL.
        First the recursive version .
 */
+
 facR(n) :: Int -> Int {
        if (n < 2) {
                return 1;
 facR(n) :: Int -> Int {
        if (n < 2) {
                return 1;
@@ -10,6 +11,7 @@ facR(n) :: Int -> Int {
        }
 }
 
        }
 }
 
+
 //The iterative version of the factorial function
 facl ( n ) :: Int -> Int {
        var r = 1;
 //The iterative version of the factorial function
 facl ( n ) :: Int -> Int {
        var r = 1;
@@ -43,7 +45,7 @@ facL (n) :: Int -> Int {
 }
 
 //Generates a list of integers from the first to the last argument
 }
 
 //Generates a list of integers from the first to the last argument
-fromTo (from, to) :: Int  Int -> [Int] {
+fromTo (from, to) :: Int -> Int -> [Int] {
        if(from <= to){
                return from:fromTo(from+1, to);
        } else {
        if(from <= to){
                return from:fromTo(from+1, to);
        } else {
@@ -73,7 +75,7 @@ swap(tuple) :: (a, a) -> (a, a){
 }
 
 //list append
 }
 
 //list append
-append(l1, l2) :: [t] [t] -> [t] {
+append(l1, l2) :: [t] -> [t] -> [t] {
        if(isEmpty(l1)){
                return l2;
        } else {
        if(isEmpty(l1)){
                return l2;
        } else {
index 3679124..bdb6a77 100644 (file)
--- a/parse.icl
+++ b/parse.icl
@@ -70,16 +70,11 @@ parseStmt = parseIfStmt <|> parseWhileStmt <|>
                parseOneLine :: Parser Token [Stmt]
                parseOneLine = pure <$> parseStmt
 
                parseOneLine :: Parser Token [Stmt]
                parseOneLine = pure <$> parseStmt
 
-parseFunType :: Parser Token FunType
-parseFunType = satTok DoubleColonToken *>
-       (parseInOutType <|> ((FunType []) <$> parseVoidOrType))
+parseFunType :: Parser Token Type
+parseFunType = satTok DoubleColonToken *> parseFT
        where
        where
-               parseInOutType :: Parser Token FunType
-               parseInOutType =  FunType <$> (some parseType <* satTok ArrowToken) <*> parseVoidOrType
-
-               parseVoidOrType :: Parser Token (Maybe Type)
-               parseVoidOrType = (satTok VoidToken *> pure Nothing) <|>
-                       (Just <$> parseType) <|> pure Nothing
+        parseFT :: Parser Token Type
+        parseFT = ((->>) <$> parseType <* satTok ArrowToken <*> parseFT) <|> parseType
 
 parseVarDecl :: Parser Token VarDecl
 parseVarDecl = liftM4 VarDecl
 
 parseVarDecl :: Parser Token VarDecl
 parseVarDecl = liftM4 VarDecl
@@ -93,6 +88,7 @@ parseType =
        trans1 IntTypeToken IntType <|>
        trans1 CharTypeToken CharType <|>
        trans1 BoolTypeToken BoolType <|>
        trans1 IntTypeToken IntType <|>
        trans1 CharTypeToken CharType <|>
        trans1 BoolTypeToken BoolType <|>
+    trans1 VoidToken VoidType <|>
        (ListType <$> (parseBSqBraces parseType)) <|>
        (TupleType <$> (parseTuple parseType)) <|>
        (IdType <$> parseIdent)
        (ListType <$> (parseBSqBraces parseType)) <|>
        (TupleType <$> (parseTuple parseType)) <|>
        (IdType <$> parseIdent)
diff --git a/spl.prj b/spl.prj
deleted file mode 100644 (file)
index 2539bb3..0000000
--- a/spl.prj
+++ /dev/null
@@ -1,842 +0,0 @@
-Version: 1.4
-Global
-       ProjectRoot:    .
-       Target: CleanPlatform
-       Exec:   {Project}/spl
-       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: NoConsole
-                       Font:   Monaco
-                       FontSize:       9
-                       WriteStdErr:    False
-       Link
-               LinkMethod:     Static
-               GenerateRelocations:    False
-               GenerateSymbolTable:    False
-               GenerateLinkMap:        False
-               LinkResources:  False
-               ResourceSource: 
-               GenerateDLL:    False
-               ExportedNames:  
-       Paths
-               Path:   {Project}
-       Precompile:     
-       Postlink:       
-MainModule
-       Name:   spl
-       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:   AST
-               Dir:    {Project}
-               Compiler
-                       NeverMemoryProfile:     False
-                       NeverTimeProfile:       False
-                       StrictnessAnalysis:     True
-                       ListTypes:      StrictExportTypes
-                       ListAttributes: True
-                       Warnings:       True
-                       Verbose:        True
-                       ReadableABC:    False
-                       ReuseUniqueNodes:       True
-                       Fusion: False
-       Module
-               Name:   lex
-               Dir:    {Project}
-               Compiler
-                       NeverMemoryProfile:     False
-                       NeverTimeProfile:       False
-                       StrictnessAnalysis:     True
-                       ListTypes:      StrictExportTypes
-                       ListAttributes: True
-                       Warnings:       True
-                       Verbose:        True
-                       ReadableABC:    False
-                       ReuseUniqueNodes:       True
-                       Fusion: False
-       Module
-               Name:   parse
-               Dir:    {Project}
-               Compiler
-                       NeverMemoryProfile:     False
-                       NeverTimeProfile:       False
-                       StrictnessAnalysis:     True
-                       ListTypes:      StrictExportTypes
-                       ListAttributes: True
-                       Warnings:       True
-                       Verbose:        True
-                       ReadableABC:    False
-                       ReuseUniqueNodes:       True
-                       Fusion: False
-       Module
-               Name:   sem
-               Dir:    {Project}
-               Compiler
-                       NeverMemoryProfile:     False
-                       NeverTimeProfile:       False
-                       StrictnessAnalysis:     True
-                       ListTypes:      StrictExportTypes
-                       ListAttributes: True
-                       Warnings:       True
-                       Verbose:        True
-                       ReadableABC:    False
-                       ReuseUniqueNodes:       True
-                       Fusion: False
-       Module
-               Name:   yard
-               Dir:    {Project}
-               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:   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:   GenPrint
-               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:   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
-       Module
-               Name:   StdMaybe
-               Dir:    {Application}/lib/StdLib
-               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/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:   Control.Monad.State
-               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.Trans
-               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.Functor.Identity
-               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.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.CommandLine
-               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:   System._Pointer
-               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:   System.OS
-               Dir:    {Application}/lib/clean-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