[ UseDirective "x" , IncludeDirective "y" , TopLevelScope ModuleDef { moduleName = Ident "test" , moduleArgs = [ ( Ident "y" , Nothing ) , ( Ident "x" , Just (ENum 1.0) ) ] , moduleBody = [ Module (Ident "circle") [ NamedArgument (Ident "r") (ENum 1.0) ] Nothing , Module (Ident "circle") [ NamedArgument (Ident "r") (ENum 1.0) ] Nothing , FuncDef { funcName = Ident "x" , funcArgs = [ Ident "a" , Ident "b" ] , funcBody = EPlus (EVar (Ident "a")) (EVar (Ident "b")) } , Module (Ident "cube") [ Argument (EVec [ ENum 1.0 , ENum 2.0 , ENum 3.0 ]) ] Nothing ] } ]