@@ -51,74 +51,78 @@ bound boundVars =
5151
5252
5353sortDefs :: Canonical.Expr -> Canonical.Expr
54−sortDefs expr =
55− evalState (reorder expr) Set.empty
54+sortDefs expression =
55+ evalState (reorder expression) Set.empty
5656
5757
5858reorder :: Canonical.Expr -> State (Set.Set String) Canonical.Expr
59−reorder (A ann expr) =
59+reorder (A ann expression) =
6060 A ann <$>
61− case expr of
61+ case expression of
6262 -- Be careful adding and restricting freeVars
6363 Var var ->
64− freeIfLocal var >> return expr
64+ do freeIfLocal var
65+ return expression
6566
66− Lambda p e ->
67− uncurry Lambda <$> bindingReorder (p,e)
67+ Lambda pattern body ->
68+ uncurry Lambda <$> bindingReorder (pattern,body)
6869
69− Binop op e1 e2 ->
70+ Binop op leftExpr rightExpr ->
7071 do freeIfLocal op
71− Binop op <$> reorder e1 <*> reorder e2
72+ Binop op <$> reorder leftExpr <*> reorder rightExpr
7273
73− Case e cases ->
74− Case <$> reorder e <*> mapM bindingReorder cases
74+ Case expr cases ->
75+ Case <$> reorder expr <*> mapM bindingReorder cases
7576
76− Data name es ->
77+ Data name exprs ->
7778 do free name
78− Data name <$> mapM reorder es
79+ Data name <$> mapM reorder exprs
7980
8081 -- Just pipe the reorder though
8182 Literal _ ->
82− return expr
83+ return expression
8384
84− Range e1 e2 ->
85− Range <$> reorder e1 <*> reorder e2
85+ Range lowExpr highExpr ->
86+ Range <$> reorder lowExpr <*> reorder highExpr
8687
8788 ExplicitList es ->
8889 ExplicitList <$> mapM reorder es
8990
90− App e1 e2 ->
91− App <$> reorder e1 <*> reorder e2
91+ App func arg ->
92+ App <$> reorder func <*> reorder arg
9293
9394 MultiIf branches ->
94− MultiIf <$> mapM (\(e1,e2) -> (,) <$> reorder e1 <*> reorder e2) branches
95+ MultiIf <$> mapM (\(cond,branch) -> (,) <$> reorder cond <*> reorder branch) branches
9596
96− Access e lbl ->
97− Access <$> reorder e <*> return lbl
97+ Access record field ->
98+ Access <$> reorder record <*> return field
9899
99− Remove e lbl ->
100− Remove <$> reorder e <*> return lbl
100+ Remove record field ->
101+ Remove <$> reorder record <*> return field
101102
102− Insert e lbl v ->
103− Insert <$> reorder e <*> return lbl <*> reorder v
103+ Insert record field expr ->
104+ Insert <$> reorder record <*> return field <*> reorder expr
104105
105− Modify e fields ->
106− Modify <$> reorder e <*> mapM (\(k,v) -> (,) k <$> reorder v) fields
106+ Modify record fields ->
107+ Modify
108+ <$> reorder record
109+ <*> mapM (\(field,expr) -> (,) field <$> reorder expr) fields
107110
108111 Record fields ->
109− Record <$> mapM (\(k,v) -> (,) k <$> reorder v) fields
112+ Record
113+ <$> mapM (\(field,expr) -> (,) field <$> reorder expr) fields
110114
111115 GLShader _ _ _ ->
112− return expr
116+ return expression
113117
114− Input name st ->
115− return $ Input name st
118+ Input name tipe ->
119+ return $ Input name tipe
116120
117− Output name st signal ->
118− Output name st <$> reorder signal
121+ Output name tipe signal ->
122+ Output name tipe <$> reorder signal
119123
120− Loopback name st maybeExpr ->
121− Loopback name st <$>
124+ Loopback name tipe maybeExpr ->
125+ Loopback name tipe <$>
122126 maybe (return Nothing) (fmap Just . reorder) maybeExpr
123127
124128 -- Actually do some reordering