Fix a small space leak in DynamicProjects

Add a couple of strictness annotations to keep ExtensibleState from
building up thunks.
This commit is contained in:
Peter Jones
2015-11-18 13:37:55 -07:00
parent b1360f08d0
commit 08c88abfb2

View File

@@ -43,8 +43,8 @@ module XMonad.Actions.DynamicProjects
import Control.Applicative ((<|>))
import Control.Monad (when, unless)
import Data.List (sort, union, stripPrefix)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Maybe (fromMaybe, isNothing)
import Data.Monoid ((<>))
import System.Directory (setCurrentDirectory, getHomeDirectory)
@@ -125,16 +125,16 @@ type ProjectTable = Map ProjectName Project
--------------------------------------------------------------------------------
-- | Details about a workspace that represents a project.
data Project = Project
{ projectName :: ProjectName -- ^ Workspace name.
, projectDirectory :: FilePath -- ^ Working directory.
, projectStartHook :: Maybe (X ()) -- ^ Optional start-up hook.
{ projectName :: !ProjectName -- ^ Workspace name.
, projectDirectory :: !FilePath -- ^ Working directory.
, projectStartHook :: !(Maybe (X ())) -- ^ Optional start-up hook.
} deriving Typeable
--------------------------------------------------------------------------------
-- | Internal project state.
data ProjectState = ProjectState
{ projects :: ProjectTable
, previousProject :: Maybe WorkspaceId
{ projects :: !ProjectTable
, previousProject :: !(Maybe WorkspaceId)
} deriving Typeable
--------------------------------------------------------------------------------