git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #2552 from purescript/docs-memory-improvements
52ee527Harry Garrood
src/Language/PureScript/Docs/Convert/ReExports.hs+2−5
@@ -457,11 +457,8 @@ handleEnv TypeClassEnv{..} =
457 addConstraint constraint =
457 addConstraint constraint =
458 P.quantify . P.moveQuantifiersToFront . P.ConstrainedType [constraint]
458 P.quantify . P.moveQuantifiersToFront . P.ConstrainedType [constraint]
459
459
460−splitMap :: (Ord k) => Map k (v1, v2) -> (Map k v1, Map k v2)
460+splitMap :: Map k (v1, v2) -> (Map k v1, Map k v2)
461−splitMap = foldl go (Map.empty, Map.empty) . Map.toList
461+splitMap = fmap fst &&& fmap snd
462− where
463− go (m1, m2) (k, (v1, v2)) =
464− (Map.insert k v1 m1, Map.insert k v2 m2)
465
462
466-- |
463-- |
467-- Given a list of exported constructor names, remove any data constructor
464-- Given a list of exported constructor names, remove any data constructor
src/Language/PureScript/Docs/Convert/Single.hs+4−10
@@ -3,16 +3,10 @@ module Language.PureScript.Docs.Convert.Single
3 , collectBookmarks
3 , collectBookmarks
4 ) where
4 ) where
5
5
6−import Prelude.Compat
6+import Protolude
7
7
8import Control.Category ((>>>))
8import Control.Category ((>>>))
9−import Control.Monad
10
9
11−import Data.Either
12−import Data.List (nub)
13−import Data.Maybe (mapMaybe, fromMaybe)
14−import Data.Monoid ((<>))
15−import Data.Text (Text)
16import qualified Data.Text as T
10import qualified Data.Text as T
17
11
18import Language.PureScript.Docs.Types
12import Language.PureScript.Docs.Types
@@ -67,7 +61,7 @@ data DeclarationAugment
67-- the type synonym IntermediateDeclaration for more information.
61-- the type synonym IntermediateDeclaration for more information.
68augmentDeclarations :: [IntermediateDeclaration] -> [Declaration]
62augmentDeclarations :: [IntermediateDeclaration] -> [Declaration]
69augmentDeclarations (partitionEithers -> (augments, toplevels)) =
63augmentDeclarations (partitionEithers -> (augments, toplevels)) =
70− foldl go toplevels augments
64+ foldl' go toplevels augments
71 where
65 where
72 go ds (parentTitles, a) =
66 go ds (parentTitles, a) =
73 map (\d ->
67 map (\d ->
@@ -142,14 +136,14 @@ convertDeclaration (P.TypeInstanceDeclaration _ constraints className tys _) tit
142 Just (Left (classNameString : typeNameStrings, AugmentChild childDecl))
136 Just (Left (classNameString : typeNameStrings, AugmentChild childDecl))
143 where
137 where
144 classNameString = unQual className
138 classNameString = unQual className
145− typeNameStrings = nub (concatMap (P.everythingOnTypes (++) extractProperNames) tys)
139+ typeNameStrings = ordNub (concatMap (P.everythingOnTypes (++) extractProperNames) tys)
146 unQual x = let (P.Qualified _ y) = x in P.runProperName y
140 unQual x = let (P.Qualified _ y) = x in P.runProperName y
147
141
148 extractProperNames (P.TypeConstructor n) = [unQual n]
142 extractProperNames (P.TypeConstructor n) = [unQual n]
149 extractProperNames _ = []
143 extractProperNames _ = []
150
144
151 childDecl = ChildDeclaration title Nothing Nothing (ChildInstance constraints classApp)
145 childDecl = ChildDeclaration title Nothing Nothing (ChildInstance constraints classApp)
152− classApp = foldl P.TypeApp (P.TypeConstructor (fmap P.coerceProperName className)) tys
146+ classApp = foldl' P.TypeApp (P.TypeConstructor (fmap P.coerceProperName className)) tys
153convertDeclaration (P.ValueFixityDeclaration fixity (P.Qualified mn alias) _) title =
147convertDeclaration (P.ValueFixityDeclaration fixity (P.Qualified mn alias) _) title =
154 Just $ Right $ mkDeclaration title (AliasDeclaration fixity (P.Qualified mn (Right alias)))
148 Just $ Right $ mkDeclaration title (AliasDeclaration fixity (P.Qualified mn (Right alias)))
155convertDeclaration (P.TypeFixityDeclaration fixity (P.Qualified mn alias) _) title =
149convertDeclaration (P.TypeFixityDeclaration fixity (P.Qualified mn alias) _) title =
src/Language/PureScript/Docs/ParseAndBookmark.hs+3−7
@@ -2,14 +2,10 @@ module Language.PureScript.Docs.ParseAndBookmark
2 ( parseAndBookmark
2 ( parseAndBookmark
3 ) where
3 ) where
4
4
5+import Protolude
5−import Prelude.Compat
6+import Prelude (id)
6−
7−import Control.Arrow (first)
8−import Control.Monad.Error.Class (MonadError(..))
9−import Control.Monad.IO.Class (MonadIO(..))
10
7
11import qualified Data.Map as M
8import qualified Data.Map as M
12−import Data.Text (Text)
13
9
14import Language.PureScript.Docs.Convert (collectBookmarks)
10import Language.PureScript.Docs.Convert (collectBookmarks)
15import Language.PureScript.Docs.Types
11import Language.PureScript.Docs.Types
@@ -83,7 +79,7 @@ parseAs :: (MonadIO m) => (FilePath -> a) -> FilePath -> m (a, Text)
83parseAs g = fmap (first g) . liftIO . parseFile
79parseAs g = fmap (first g) . liftIO . parseFile
84
80
85getDepsModuleNames :: [InPackage (FilePath, P.Module)] -> M.Map P.ModuleName PackageName
81getDepsModuleNames :: [InPackage (FilePath, P.Module)] -> M.Map P.ModuleName PackageName
86−getDepsModuleNames = foldl go M.empty
82+getDepsModuleNames = foldl' go M.empty
87 where
83 where
88 go deps p = deps # case p of
84 go deps p = deps # case p of
89 Local _ -> id
85 Local _ -> id