@@ -40,20 +40,20 @@ crawl
4040 -> ([def] -> Either a [def'])
4141 -> Expr ann def var
4242 -> Either a (Expr ann def' var)
43−crawl inputCheck outputCheck loopbackCheck defsTransform expression =
44− go expression
43+crawl inputCheck outputCheck loopbackCheck defsTransform annotatedExpression =
44+ go annotatedExpression
4545 where
46− go (A srcSpan expr) =
46+ go (A srcSpan expression) =
4747 A srcSpan <$>
48− case expr of
48+ case expression of
4949 Var x ->
5050 return (Var x)
5151
52− Lambda p e ->
53− Lambda p <$> go e
52+ Lambda pattern body ->
53+ Lambda pattern <$> go body
5454
55− Binop op e1 e2 ->
56− Binop op <$> go e1 <*> go e2
55+ Binop op leftExpr rightExpr ->
56+ Binop op <$> go leftExpr <*> go rightExpr
5757
5858 Case e cases ->
5959 Case <$> go e <*> mapM (\(p,b) -> (,) p <$> go b) cases
@@ -64,32 +64,34 @@ crawl inputCheck outputCheck loopbackCheck defsTransform expression =
6464 Literal lit ->
6565 return (Literal lit)
6666
67− Range e1 e2 ->
68− Range <$> go e1 <*> go e2
67+ Range lowExpr highExpr ->
68+ Range <$> go lowExpr <*> go highExpr
6969
70− ExplicitList es ->
71− ExplicitList <$> mapM go es
70+ ExplicitList expressions ->
71+ ExplicitList <$> mapM go expressions
7272
73− App e1 e2 ->
74− App <$> go e1 <*> go e2
73+ App funcExpr argExpr ->
74+ App <$> go funcExpr <*> go argExpr
7575
7676 MultiIf branches ->
7777 MultiIf <$> mapM (\(b,e) -> (,) <$> go b <*> go e) branches
7878
79− Access e lbl ->
80− Access <$> go e <*> return lbl
79+ Access record field ->
80+ Access <$> go record <*> return field
8181
82− Remove e lbl ->
83− Remove <$> go e <*> return lbl
82+ Remove record field ->
83+ Remove <$> go record <*> return field
8484
85− Insert e lbl v ->
86− Insert <$> go e <*> return lbl <*> go v
85+ Insert record field expr ->
86+ Insert <$> go record <*> return field <*> go expr
8787
88− Modify e fields ->
89− Modify <$> go e <*> mapM (\(k,v) -> (,) k <$> go v) fields
88+ Modify record fields ->
89+ Modify
90+ <$> go record
91+ <*> mapM (\(field,expr) -> (,) field <$> go expr) fields
9092
9193 Record fields ->
92− Record <$> mapM (\(k,v) -> (,) k <$> go v) fields
94+ Record <$> mapM (\(field,expr) -> (,) field <$> go expr) fields
9395
9496 Let defs body ->
9597 Let <$> defsTransform defs <*> go body
@@ -101,9 +103,9 @@ crawl inputCheck outputCheck loopbackCheck defsTransform expression =
101103 do inputCheck name st
102104 return $ Input name st
103105
104− Output name st signal ->
106+ Output name st expr ->
105107 do outputCheck name st
106− Output name st <$> go signal
108+ Output name st <$> go expr
107109
108110 Loopback name st maybeExpr ->
109111 do let hasExpr = maybe False (const True) maybeExpr