@@ -27,7 +27,7 @@ pattern pat =
2727 PAlias x p -> PAlias (var x) (pattern p)
2828 PData name ps -> PData name (map pattern ps)
2929
30−expression :: LExpr t v -> LExpr t v
30+expression :: LExpr -> LExpr
3131expression (L loc expr) =
3232 let f = expression in
3333 L loc $
@@ -50,13 +50,11 @@ expression (L loc expr) =
5050 Record fs -> Record (map (var *** f) fs)
5151 Markdown uid md es -> Markdown uid md (map f es)
5252
53−definition :: Def t v -> Def t v
54−definition def =
55− case def of
56− Def p e -> Def (pattern p) (expression e)
57− TypeAnnotation name t -> TypeAnnotation (var name) t
53+definition :: Def -> Def
54+definition (Definition p e t) =
55+ Definition (pattern p) (expression e) t
5856
59−metadataModule :: MetadataModule t v -> MetadataModule t v
57+metadataModule :: MetadataModule -> MetadataModule
6058metadataModule modul =
6159 modul
6260 { names = map var (names modul)
@@ -69,7 +67,8 @@ metadataModule modul =
6967 , datatypes =
7068 let makeSafe (name,tvars,ctors,ds) = (var name, tvars, map (first var) ctors, ds)
7169 in map makeSafe (datatypes modul)
72− , ports =
73− let makeSafe (name,tipe,expr) = (name, tipe, expression `fmap` expr)
74− in map makeSafe (ports modul)
75− }
70+ , sendPorts = map safePorts (sendPorts modul)
71+ , recvPorts = map safePorts (recvPorts modul)
72+ }
73+ where
74+ safePorts (name,expr,tipe) = (name, expression expr, tipe)