@@ -27,7 +27,7 @@ pattern pat =
27 PAlias x p -> PAlias (var x) (pattern p)
27 PAlias x p -> PAlias (var x) (pattern p)
28 PData name ps -> PData name (map pattern ps)
28 PData name ps -> PData name (map pattern ps)
30−expression :: LExpr t v -> LExpr t v
30+expression :: LExpr -> LExpr
31expression (L loc expr) =
31expression (L loc expr) =
32 let f = expression in
32 let f = expression in
@@ -50,13 +50,11 @@ expression (L loc expr) =
50 Record fs -> Record (map (var *** f) fs)
50 Record fs -> Record (map (var *** f) fs)
51 Markdown uid md es -> Markdown uid md (map f es)
51 Markdown uid md es -> Markdown uid md (map f es)
53−definition :: Def t v -> Def t v
53+definition :: Def -> Def
54−definition def =
54+definition (Definition p e t) =
56− Def p e -> Def (pattern p) (expression e)
55+ Definition (pattern p) (expression e) t
57− TypeAnnotation name t -> TypeAnnotation (var name) t
59−metadataModule :: MetadataModule t v -> MetadataModule t v
57+metadataModule :: MetadataModule -> MetadataModule
60metadataModule modul =
58metadataModule modul =
62 { names = map var (names modul)
60 { names = map var (names modul)
@@ -69,7 +67,8 @@ metadataModule modul =
69 , datatypes =
67 , datatypes =
70 let makeSafe (name,tvars,ctors,ds) = (var name, tvars, map (first var) ctors, ds)
68 let makeSafe (name,tvars,ctors,ds) = (var name, tvars, map (first var) ctors, ds)
71 in map makeSafe (datatypes modul)
69 in map makeSafe (datatypes modul)
72− , ports =
70+ , sendPorts = map safePorts (sendPorts modul)
71+ , recvPorts = map safePorts (recvPorts modul)
73− let makeSafe (name,tipe,expr) = (name, tipe, expression `fmap` expr)
74+ safePorts (name,expr,tipe) = (name, expression expr, tipe)
74− in map makeSafe (ports modul)