@@ -45,9 +45,9 @@ module' (Module.Module name path info) =
4545 (Module.Source tag settings docs exports imports decls) =
4646 info
4747 in
48− do (ValidStuff foreigns structure) <- validateDecls decls
48+ do (ValidStuff ports structure) <- validateDecls decls
4949
50− validEffects <- validateEffects tag settings foreigns (D._defs structure)
50+ validEffects <- validateEffects tag settings ports (D._defs structure)
5151
5252 return $ Module.Module name path $
5353 Module.Valid docs exports (addDefaults pkgName imports) structure validEffects
@@ -77,19 +77,19 @@ addDefaults pkgName imports =
7777validateEffects
7878 :: Module.SourceTag
7979 -> Module.SourceSettings
80− -> [A.Commented Effects.ForeignRaw]
80+ -> [A.Commented Effects.PortRaw]
8181 -> [A.Commented Valid.Def]
8282 -> Result wrn Effects.Raw
83−validateEffects tag settings@(A.A _ pairs) foreigns validDefs =
83+validateEffects tag settings@(A.A _ pairs) ports validDefs =
8484 case tag of
8585 Module.Normal ->
8686 do noSettings Error.SettingsOnNormalModule settings
87− noForeigns foreigns
87+ noPorts ports
8888 return Effects.None
8989
90− Module.Foreign _ ->
91− do noSettings Error.SettingsOnForeignModule settings
92− return (Effects.Foreign foreigns)
90+ Module.Port _ ->
91+ do noSettings Error.SettingsOnPortModule settings
92+ return (Effects.Port ports)
9393
9494 Module.Effect tagRegion ->
9595 let
@@ -99,7 +99,7 @@ validateEffects tag settings@(A.A _ pairs) foreigns validDefs =
9999 settingsDict =
100100 foldr collectSettings Map.empty pairs
101101 in
102− do noForeigns foreigns
102+ do noPorts ports
103103 managerType <- toManagerType tagRegion settingsDict
104104 (r0, r1, r2) <- checkManager tagRegion managerType validDefs
105105 return (Effects.Manager () (Effects.Info tagRegion r0 r1 r2 managerType))
@@ -115,18 +115,18 @@ noSettings errorMsg (A.A region settings) =
115115 Result.throw region errorMsg
116116
117117
118−noForeigns :: [A.Commented Effects.ForeignRaw] -> Result wrn ()
119−noForeigns foreigns =
120− case foreigns of
118+noPorts :: [A.Commented Effects.PortRaw] -> Result wrn ()
119+noPorts ports =
120+ case ports of
121121 [] ->
122122 Result.ok ()
123123
124124 _ : _ ->
125125 let
126− toError (A.A (region, _) (Effects.ForeignRaw name _)) =
127− A.A region (Error.UnexpectedForeign name)
126+ toError (A.A (region, _) (Effects.PortRaw name _)) =
127+ A.A region (Error.UnexpectedPort name)
128128 in
129− Result.throwMany (map toError foreigns)
129+ Result.throwMany (map toError ports)
130130
131131
132132toManagerType
@@ -302,7 +302,7 @@ validateDecls sourceDecls =
302302
303303data ValidStuff =
304304 ValidStuff
305− { _foreigns :: [A.Commented Effects.ForeignRaw]
305+ { _ports :: [A.Commented Effects.PortRaw]
306306 , _structure :: D.Valid
307307 }
308308
@@ -314,48 +314,48 @@ validateRawDecls commentedDecls =
314314
315315vrdHelp
316316 :: [A.Commented D.Raw]
317− -> [A.Commented Effects.ForeignRaw]
317+ -> [A.Commented Effects.PortRaw]
318318 -> D.Valid
319319 -> Result wrn ValidStuff
320−vrdHelp commentedDecls foreigns structure =
320+vrdHelp commentedDecls ports structure =
321321 case commentedDecls of
322322 [] ->
323− Result.ok (ValidStuff foreigns structure)
323+ Result.ok (ValidStuff ports structure)
324324
325325 A.A ann decl : rest ->
326326 case decl of
327327 D.Union (D.Type name tvars ctors) ->
328− vrdHelp rest foreigns (D.addUnion (A.A ann (D.Type name tvars ctors)) structure)
328+ vrdHelp rest ports (D.addUnion (A.A ann (D.Type name tvars ctors)) structure)
329329
330330 D.Alias (D.Type name tvars alias) ->
331− vrdHelp rest foreigns (D.addAlias (A.A ann (D.Type name tvars alias)) structure)
331+ vrdHelp rest ports (D.addAlias (A.A ann (D.Type name tvars alias)) structure)
332332
333333 D.Fixity fixity ->
334− vrdHelp rest foreigns (D.addInfix fixity structure)
334+ vrdHelp rest ports (D.addInfix fixity structure)
335335
336336 D.Def (A.A region def) ->
337− vrdDefHelp rest (A.A (region, snd ann) def) foreigns structure
337+ vrdDefHelp rest (A.A (region, snd ann) def) ports structure
338338
339− D.Foreign name tipe ->
340− vrdHelp rest (A.A ann (Effects.ForeignRaw name tipe) : foreigns) structure
339+ D.Port name tipe ->
340+ vrdHelp rest (A.A ann (Effects.PortRaw name tipe) : ports) structure
341341
342342
343343vrdDefHelp
344344 :: [A.Commented D.Raw]
345345 -> A.Commented Source.Def'
346− -> [A.Commented Effects.ForeignRaw]
346+ -> [A.Commented Effects.PortRaw]
347347 -> D.Valid
348348 -> Result wrn ValidStuff
349−vrdDefHelp remainingDecls (A.A ann def) foreigns structure =
349+vrdDefHelp remainingDecls (A.A ann def) ports structure =
350350 let
351− addDef validDef (ValidStuff finalForeigns struct) =
352− ValidStuff finalForeigns (D.addDef (A.A ann validDef) struct)
351+ addDef validDef (ValidStuff finalPorts struct) =
352+ ValidStuff finalPorts (D.addDef (A.A ann validDef) struct)
353353 in
354354 case def of
355355 Source.Definition pat expr ->
356356 addDef
357357 <$> validateDef pat expr Nothing
358− <*> vrdHelp remainingDecls foreigns structure
358+ <*> vrdHelp remainingDecls ports structure
359359
360360 Source.Annotation name tipe ->
361361 case remainingDecls of
@@ -363,10 +363,10 @@ vrdDefHelp remainingDecls (A.A ann def) foreigns structure =
363363 | Pattern.isVar name pat ->
364364 addDef
365365 <$> validateDef pat expr (Just tipe)
366− <*> vrdHelp rest foreigns structure
366+ <*> vrdHelp rest ports structure
367367
368368 _ ->
369− vrdHelp remainingDecls foreigns structure
369+ vrdHelp remainingDecls ports structure
370370 <* Result.throw (fst ann) (Error.TypeWithoutDefinition name)
371371
372372
@@ -523,11 +523,11 @@ expression (A.A ann sourceExpression) =
523523 Sub moduleName ->
524524 return (Sub moduleName)
525525
526− ForeignCmd name tipe ->
527− return (ForeignCmd name tipe)
526+ OutgoingPort name tipe ->
527+ return (OutgoingPort name tipe)
528528
529− ForeignSub name tipe ->
530− return (ForeignSub name tipe)
529+ IncomingPort name tipe ->
530+ return (IncomingPort name tipe)
531531
532532 Program _ _ ->
533533 error "DANGER - Program AST nodes should not be in validation phase."
@@ -564,17 +564,17 @@ validatePattern pattern =
564564
565565
566566checkDuplicates :: ValidStuff -> Result wrn ()
567−checkDuplicates (ValidStuff foreigns (D.Decls defs unions aliases _)) =
567+checkDuplicates (ValidStuff ports (D.Decls defs unions aliases _)) =
568568 let
569569 -- SIMPLE NAMES
570570
571571 defValues =
572572 concatMap (Pattern.boundVars . Valid.getPattern . A.drop) defs
573573
574− foreignValues =
575− map fromForeign foreigns
574+ portValues =
575+ map fromPort ports
576576
577− fromForeign (A.A (region, _) (Effects.ForeignRaw name _)) =
577+ fromPort (A.A (region, _) (Effects.PortRaw name _)) =
578578 A.A region name
579579
580580 -- TYPE NAMES
@@ -597,7 +597,7 @@ checkDuplicates (ValidStuff foreigns (D.Decls defs unions aliases _)) =
597597 []
598598 in
599599 F.sequenceA_
600− [ detectDuplicates Error.DuplicateValueDeclaration (foreignValues ++ defValues)
600+ [ detectDuplicates Error.DuplicateValueDeclaration (portValues ++ defValues)
601601 , detectDuplicates Error.DuplicateValueDeclaration (concat typeValues)
602602 , detectDuplicates Error.DuplicateTypeDeclaration types
603603 ]