@@ -263,35 +263,32 @@ declaration
263 -> D.ValidDecl
263 -> D.ValidDecl
264 -> Result.ResultErr D.CanonicalDecl
264 -> Result.ResultErr D.CanonicalDecl
265declaration env (A.A (region,_) decl) =
265declaration env (A.A (region,_) decl) =
266− let canonicalize kind _context _pattern env v =
269 A.A region <$>
266 A.A region <$>
270 case decl of
267 case decl of
271 D.Definition (Valid.Definition p e t) ->
268 D.Definition (Valid.Definition p e t) ->
272 D.Definition <$> (
269 D.Definition <$> (
273 Canonical.Definition
270 Canonical.Definition
274− <$> canonicalize pattern "definition" p env p
271+ <$> pattern env p
275 <*> expression env e
272 <*> expression env e
276− <*> T.traverse (canonicalize Canonicalize.tipe "definition" p env) t
273+ <*> T.traverse (Canonicalize.tipe env) t
279 D.Datatype name tvars ctors ->
276 D.Datatype name tvars ctors ->
280 D.Datatype name tvars <$> T.traverse canonicalize' ctors
277 D.Datatype name tvars <$> T.traverse canonicalize' ctors
282 canonicalize' (ctor,args) =
279 canonicalize' (ctor,args) =
283− (,) ctor <$> T.traverse (canonicalize Canonicalize.tipe "datatype" name env) args
280+ (,) ctor <$> T.traverse (Canonicalize.tipe env) args
285 D.TypeAlias name tvars expanded ->
282 D.TypeAlias name tvars expanded ->
286 D.TypeAlias name tvars
283 D.TypeAlias name tvars
287− <$> canonicalize Canonicalize.tipe "type alias" name env expanded
284+ <$> Canonicalize.tipe env expanded
289 D.Port validPort ->
286 D.Port validPort ->
290 Result.addModule ["Native","Port"] $
287 Result.addModule ["Native","Port"] $
291 Result.addModule ["Native","Json"] $
288 Result.addModule ["Native","Json"] $
292 case validPort of
289 case validPort of
293 D.In name tipe ->
290 D.In name tipe ->
294− canonicalize Canonicalize.tipe "port" name env tipe
291+ Canonicalize.tipe env tipe
295 `Result.andThen` \canonicalType ->
292 `Result.andThen` \canonicalType ->
296 D.Port <$> Port.check region name Nothing canonicalType
293 D.Port <$> Port.check region name Nothing canonicalType
@@ -299,7 +296,7 @@ declaration env (A.A (region,_) decl) =
299 let exprTypeResult =
296 let exprTypeResult =
301 <$> expression env expr
298 <$> expression env expr
302− <*> canonicalize Canonicalize.tipe "port" name env tipe
299+ <*> Canonicalize.tipe env tipe
304 exprTypeResult
301 exprTypeResult
305 `Result.andThen` \(expr', tipe') ->
302 `Result.andThen` \(expr', tipe') ->