git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix an issue with type class instance ordering
2c35ae6Phil Freeman
purescript.cabal+1−1
@@ -1,5 +1,5 @@
1name: purescript
1name: purescript
2−version: 0.4.12
2+version: 0.4.12.1
3cabal-version: >=1.8
3cabal-version: >=1.8
4build-type: Custom
4build-type: Custom
5license: MIT
5license: MIT
src/Language/PureScript/TypeChecker.hs+4−3
@@ -180,9 +180,10 @@ typeCheckAll mainModuleName moduleName (d@(FixityDeclaration _ name) : rest) = d
180typeCheckAll mainModuleName currentModule (d@(ImportDeclaration moduleName _ _) : rest) = do
180typeCheckAll mainModuleName currentModule (d@(ImportDeclaration moduleName _ _) : rest) = do
181 env <- getEnv
181 env <- getEnv
182 let instances = filter (\tcd -> let Qualified (Just mn) _ = tcdName tcd in moduleName == mn) (typeClassDictionaries env)
182 let instances = filter (\tcd -> let Qualified (Just mn) _ = tcdName tcd in moduleName == mn) (typeClassDictionaries env)
183− forM_ instances $ \tcd -> do
184− let (Qualified _ ident) = tcdName tcd
185− addTypeClassDictionaries [tcd { tcdName = Qualified (Just currentModule) ident, tcdType = TCDAlias (canonicalizeDictionary tcd) }]
183+ addTypeClassDictionaries [ tcd { tcdName = Qualified (Just currentModule) ident, tcdType = TCDAlias (canonicalizeDictionary tcd) }
184+ | tcd <- instances
185+ , let (Qualified _ ident) = tcdName tcd
186+ ]
186 ds <- typeCheckAll mainModuleName currentModule rest
187 ds <- typeCheckAll mainModuleName currentModule rest
187 return $ d : ds
188 return $ d : ds
188typeCheckAll mainModuleName moduleName (d@(TypeClassDeclaration pn args tys) : rest) = do
189typeCheckAll mainModuleName moduleName (d@(TypeClassDeclaration pn args tys) : rest) = do