git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Minor memory usage improvements in Language.PureScript.Docs
commit6e1417706c47992a506e35450f3278f7b66139c7 authorHarry Garrood <harry@garrood.me> dateSun 8 Jan 2017, 18:02 (10 years ago) parent07bb952
3 files changed+9−22
src/Language/PureScript/Docs/Convert/ReExports.hs+2−5 src/Language/PureScript/Docs/Convert/Single.hs+4−10 src/Language/PureScript/Docs/ParseAndBookmark.hs+3−7
src/Language/PureScript/Docs/Convert/ReExports.hs+2−5
@@ -457,11 +457,8 @@ handleEnv TypeClassEnv{..} =
457457 addConstraint constraint =
458458 P.quantify . P.moveQuantifiersToFront . P.ConstrainedType [constraint]
459459
460−splitMap :: (Ord k) => Map k (v1, v2) -> (Map k v1, Map k v2)
461−splitMap = foldl go (Map.empty, Map.empty) . Map.toList
462− where
463− go (m1, m2) (k, (v1, v2)) =
464− (Map.insert k v1 m1, Map.insert k v2 m2)
460+splitMap :: Map k (v1, v2) -> (Map k v1, Map k v2)
461+splitMap = fmap fst &&& fmap snd
465462
466463-- |
467464-- 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
33 , collectBookmarks
44 ) where
55
6−import Prelude.Compat
6+import Protolude
77
88import Control.Category ((>>>))
9−import Control.Monad
109
11−import Data.Either
12−import Data.List (nub)
13−import Data.Maybe (mapMaybe, fromMaybe)
14−import Data.Monoid ((<>))
15−import Data.Text (Text)
1610import qualified Data.Text as T
1711
1812import Language.PureScript.Docs.Types
@@ -67,7 +61,7 @@ data DeclarationAugment
6761-- the type synonym IntermediateDeclaration for more information.
6862augmentDeclarations :: [IntermediateDeclaration] -> [Declaration]
6963augmentDeclarations (partitionEithers -> (augments, toplevels)) =
70− foldl go toplevels augments
64+ foldl' go toplevels augments
7165 where
7266 go ds (parentTitles, a) =
7367 map (\d ->
@@ -142,14 +136,14 @@ convertDeclaration (P.TypeInstanceDeclaration _ constraints className tys _) tit
142136 Just (Left (classNameString : typeNameStrings, AugmentChild childDecl))
143137 where
144138 classNameString = unQual className
145− typeNameStrings = nub (concatMap (P.everythingOnTypes (++) extractProperNames) tys)
139+ typeNameStrings = ordNub (concatMap (P.everythingOnTypes (++) extractProperNames) tys)
146140 unQual x = let (P.Qualified _ y) = x in P.runProperName y
147141
148142 extractProperNames (P.TypeConstructor n) = [unQual n]
149143 extractProperNames _ = []
150144
151145 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
153147convertDeclaration (P.ValueFixityDeclaration fixity (P.Qualified mn alias) _) title =
154148 Just $ Right $ mkDeclaration title (AliasDeclaration fixity (P.Qualified mn (Right alias)))
155149convertDeclaration (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
22 ( parseAndBookmark
33 ) where
44
5−import Prelude.Compat
6−
7−import Control.Arrow (first)
8−import Control.Monad.Error.Class (MonadError(..))
9−import Control.Monad.IO.Class (MonadIO(..))
5+import Protolude
6+import Prelude (id)
107
118import qualified Data.Map as M
12−import Data.Text (Text)
139
1410import Language.PureScript.Docs.Convert (collectBookmarks)
1511import Language.PureScript.Docs.Types
@@ -83,7 +79,7 @@ parseAs :: (MonadIO m) => (FilePath -> a) -> FilePath -> m (a, Text)
8379parseAs g = fmap (first g) . liftIO . parseFile
8480
8581getDepsModuleNames :: [InPackage (FilePath, P.Module)] -> M.Map P.ModuleName PackageName
86−getDepsModuleNames = foldl go M.empty
82+getDepsModuleNames = foldl' go M.empty
8783 where
8884 go deps p = deps # case p of
8985 Local _ -> id