ImperativeHaskell 0.2.0.1 → 1.0.0.0
raw patch · 20 files changed
+345/−320 lines, 20 filesdep +template-haskelldep ~mtl
Dependencies added: template-haskell
Dependency ranges changed: mtl
Files
- Control/Monad/Imperative.hs +4/−3
- Control/Monad/Imperative/FunctionFactory.hs +91/−0
- Control/Monad/Imperative/ImperativeMonad.hs +0/−231
- Control/Monad/Imperative/ImperativeOperators.hs +0/−26
- Control/Monad/Imperative/Internals.hs +201/−0
- Control/Monad/Imperative/Operators.hs +35/−0
- ImperativeHaskell.cabal +8/−7
- Main.hs +6/−4
- dist/build/Control/Monad/Imperative.hi binary
- dist/build/Control/Monad/Imperative.o binary
- dist/build/Control/Monad/Imperative/ImperativeMonad.hi binary
- dist/build/Control/Monad/Imperative/ImperativeMonad.o binary
- dist/build/Control/Monad/Imperative/ImperativeOperators.hi binary
- dist/build/Control/Monad/Imperative/ImperativeOperators.o binary
- dist/build/HSImperativeHaskell-0.2.0.1.o binary
- dist/build/autogen/Paths_ImperativeHaskell.hs +0/−29
- dist/build/autogen/cabal_macros.h +0/−16
- dist/build/libHSImperativeHaskell-0.2.0.1.a binary
- dist/package.conf.inplace +0/−2
- dist/setup-config +0/−2
Control/Monad/Imperative.hs view
@@ -3,11 +3,12 @@ -- Module : Control.Monad.Imperative -- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu> -- Stability : experimental --- Portability : portable +-- Portability : Many GHC only extensions -- A front end for the ImperativeMonad -- ----------------------------------------------------------------------------- module Control.Monad.Imperative (module X) where -import Control.Monad.Imperative.ImperativeMonad as X hiding (modifyOp, liftOp2) -import Control.Monad.Imperative.ImperativeOperators as X +import Control.Monad.Imperative.Internals as X hiding (val, V(C)) +import Control.Monad.Imperative.Operators as X hiding (liftOp2) +import Control.Monad.Imperative.FunctionFactory as X
+ Control/Monad/Imperative/FunctionFactory.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE+ TemplateHaskell+ #-}+-----------------------------------------------------------------------------+-- |+-- Module : Control.Monad.Imperative.FunctionFactory+-- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu>+-- Stability : experimental+-- Portability : TemplateHaskell+-- A module which defines a function 'liftIO' which coverts pure functions +-- into reference taking functions.+-----------------------------------------------------------------------------++module Control.Monad.Imperative.FunctionFactory+ ( liftOp+ ) where++import Control.Monad.Imperative.Internals+import Language.Haskell.TH+import Data.Functor++-- | @'liftOp' nm@ is a function factory producer which uses template +-- to infer the type of its argument and output an impure function factory.+-- +-- The argument @nm@ must be a quoted name with type already known.+-- +-- Examples:+-- > liftSomeFoo (v :: a -> ((a,b),b) -> c) = $(liftOp 'v)+-- >+-- > plus = $(liftOp '(+))+-- > +-- > letBound = let f a = a * 5 in $(liftOp 'f)+-- > +-- > argument n = $(liftOp 'mod) 4 n+-- +-- If the function factories produce will be used in the same file that produced them+-- the output type needs to be known before 'liftOp' is called, +-- such as in the definition of 'liftOp2'.+-- +-- Currently 'liftOp' does not support unboxed tuples.+liftOp :: Name -> Q Exp+liftOp nm = do+ let getTy (VarI _ ty _ _) = ty+ getTy (ClassOpI _ ty _ _) = ty+ getTy (DataConI _ ty _ _) = ty+ getTy r = error $ "liftOp only supports lifting variable names. Tried to show" ++show r+ ty <- getTy <$> reify nm+ (pats,pats') <- unzip <$> (sequence $ tyToPats ty)+ lamE (map return pats) $ appE [| C |] $ doE $+ (nn2st <$> zip (ps2ns pats) (ps2ns pats'))+ +++ [noBindS $ appE [| return . Lit |] $ return $ foldl AppE (VarE nm) $ map p2e pats']++tyToPats :: Type -> [Q (Pat, Pat)]+tyToPats (ForallT _ _ t) = tyToPats t+tyToPats (AppT (AppT ArrowT a) r) = typat:tyToPats r+ where typat = do+ t <- t2p a+ return $ case t of+ (TupP s, TupP s') -> (TupP $ reverse s, TupP $ reverse s')+ _ -> t++ isTuple (AppT v _) = isTuple v+ isTuple (TupleT _) = True+ isTuple _ = False + + t2p (ForallT _ _ t) = t2p t+ t2p (TupleT _) = return (TupP [], TupP [])+ t2p (AppT v a) | isTuple v = do+ (TupP t, TupP t') <- t2p v+ (p,p') <- t2p a+ return (TupP $ p:t, TupP $ p':t')+ t2p _ = do+ a <- newName "a"+ b <- newName "b"+ return $ (VarP a, VarP b)+tyToPats _ = []++p2e :: Pat -> Exp+p2e (TupP l) = TupE $ map p2e l+p2e (VarP n) = VarE n+p2e l = error $ "Bug: shouldn't encounter non tuples or variables here. p2e: " ++ show l++ps2ns :: [Pat] -> [Name]+ps2ns = concatMap p2ns+ where p2ns (TupP l) = ps2ns l+ p2ns (VarP n) = [n]+ p2ns l = error $ "Bug: shouldn't encounter non tuples or variables here. ps2ns: " ++ show l++nn2st :: (Name,Name) -> StmtQ+nn2st (n,n') = bindS (varP n') [| val $(varE n) |]
− Control/Monad/Imperative/ImperativeMonad.hs
@@ -1,231 +0,0 @@-{-# LANGUAGE - GADTs, - EmptyDataDecls, - GeneralizedNewtypeDeriving, - MultiParamTypeClasses, - FunctionalDependencies, - FlexibleInstances, - UndecidableInstances - #-} - ------------------------------------------------------------------------------ --- | --- Module : Control.Monad.Imperative.ImperativeMonad --- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu> --- Stability : experimental --- Portability : GADTs, EmptyDataDecls, --- GeneralizedNewtypeDeriving, MultiParamTypeClasses, --- FunctionalDependencies, FlexibleInstances, --- UndecidableInstances --- A module which defines the monad for ImperativeHaskell, --- and some control operator to interact with 'MIO' --- ------------------------------------------------------------------------------ -module Control.Monad.Imperative.ImperativeMonad - ( modifyOp - , if' - , for' - , while' - , break' - , continue' - , return' - , returnV - , returnF - , function - , new - , auto - , runImperative - , liftOp - , liftOp2 - , liftOp3 - , liftOp4 - , liftOp5 - , V(Lit) - , (=:) - , (&) - ) where - -import Control.Monad.Cont -import Control.Monad.Reader -import Data.IORef - -newtype MIO r a = MIO { getMIO :: ReaderT (Control r) (ContT r IO) a } - deriving (Monad, MonadCont) - -data Var -data Val -data Comp - -data Control r = InFunction (r -> ContT r IO ()) - | InLoop { controlBreak::MIO r () - , controlContinue::MIO r () - , controlReturn:: r -> MIO r () - } - --- | @'returnF' value@ acts like the imperative return, where --- if called, it will exit the current function and place the --- returned value into the current continuation. Note, this --- doesn't work inside of loops. Inside of loops, we need --- 'returnV' -returnF :: V a b b -> MIO b b -returnF v = MIO $ do - v' <- getMIO $ val v - a <- ask - case a of - InLoop _ _ ret -> getMIO $ ret v' - InFunction ret -> lift $ ret v' - return v' - --- | @'returnV' value@ acts like the imperative return, where --- if called, it will exit the current function and place the --- returned value into the current continuation. Note, this --- doesn't work as a last function call. -returnV :: V a b b -> MIO b () -returnV a = returnF a >> return () - -class Returnable b r where - -- | @'return''@ can act as returnF or returnV depending on use - -- if it does not work, it is likely that type inference - -- could not figure out a sensible alternative. - return' :: V a b b -> MIO b r - -instance Returnable b () where - return' a = returnV a - -instance Returnable b b where - return' a = returnF a - - -runImperative :: MIO a a -> IO a -runImperative foo = do - a <- runContT (callCC $ \ret -> runReaderT (getMIO foo) $ InFunction ret) return - return a - --- | @'function' foo@ takes an ImperativeMonad action and removes it from it's --- specific function context, specifically making it applicable --- in the body of other functions. -function :: MIO a a -> MIO b a -function = MIO . liftIO . runImperative - --- | @'break'@ exists the current loop. -break' :: MIO a () -break' = do - a <- MIO $ ask - case a of - InLoop br _ _ -> br - _ -> return () - --- | @'continue'@ continues the current loop, passing over --- any control flow that is defined. -continue' :: MIO a () -continue' = do - a <- MIO $ ask - case a of - InLoop _ con _ -> con - _ -> return () - -data V b r a where - R :: IORef a -> V Var r a - Lit :: a -> V Val r a - C :: MIO r (V b r a) -> V Comp r a - - -val :: V b r a -> MIO r a -val v = case v of - R r -> MIO $ liftIO $ readIORef r - Lit v -> return v - C m -> val =<< m - --- | @('&')a@ gets a reference/pointer to the variable specified -(&) :: V Var r a -> V Var s a -(&) (R a) = R a - --- | @auto@ should just be used where the --- type can be automatically infered and we don't need an initial value -auto = undefined - --- | @new@ constructs a new reference object with the value specified -new :: a -> MIO r (V Var r a) -new a = do - r <- MIO $ liftIO $ newIORef a - return $ R r - -infixr 0 =: - - -class Assignable val where - -- | @var '=:' value@ simply rewrites whatever - -- is in @var@ with whatever @value@ is. - (=:) :: V Var r a -> val r a -> MIO r () - -instance Assignable (V b) where - (=:) (R ar) br = MIO $ do - b <- getMIO $ val br - liftIO $ writeIORef ar b - -instance Assignable MIO where - (=:) a br = do - b <- br - a =: Lit b - --- | @'for'(init, check, incr)@ acts like the usual imperative for loop -for' :: (MIO r irr1, V b r Bool, MIO r irr2) -> MIO r () -> MIO r () -for' (init, check, incr) body = init >> for_r - where for_r = do - do_comp <- val check - when do_comp $ callCC $ \break_foo -> do - callCC $ \continue_foo -> MIO $ do - flip withReaderT (getMIO body) $ \inbod -> - InLoop (break_foo ()) (continue_foo ()) (controlReturn inbod) - incr - for_r - --- | @'while'(check)@ acts like the usual imperative while -while' :: V b r Bool -> MIO r () -> MIO r () -while' check = for'(return (), check, return () ) - --- | @'if'(check) m@ only executes m if the check is true. --- it is specifically value in it's argument. -if' :: V b r Bool -> MIO r () -> MIO r () -if' b m = do - v <- val b - when v m - --- | @'modifyOp' f@ makes a modify operator out of a binary --- haskell function -modifyOp :: (a->b->a) -> V Var r a -> V k r b -> MIO r () -modifyOp op (R ar) br = MIO $ do - b <- getMIO $ val br - liftIO $ modifyIORef ar (\v -> op v b) - --- | @'liftOp' f@ turns a pure function into one which --- gets the values out of it's arguments -liftOp foo a = C $ do - a' <- val a - return $ Lit $ foo a' - -liftOp2 foo a1 a2 = C $ do - a1' <- val a1 - a2' <- val a2 - return $ Lit $ foo a1' a2' - -liftOp3 foo v1 v2 v3 = C $ do - v1' <- val v1 - v2' <- val v2 - v3' <- val v3 - return $ Lit $ foo v1' v2' v3' - -liftOp4 foo v1 v2 v3 v4 = C $ do - v1' <- val v1 - v2' <- val v2 - v3' <- val v3 - v4' <- val v4 - return $ Lit $ foo v1' v2' v3' v4' - -liftOp5 foo v1 v2 v3 v4 v5 = C $ do - v1' <- val v1 - v2' <- val v2 - v3' <- val v3 - v4' <- val v4 - v5' <- val v5 - return $ Lit $ foo v1' v2' v3' v5' v4'
− Control/Monad/Imperative/ImperativeOperators.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE - NoMonomorphismRestriction - #-} ------------------------------------------------------------------------------ --- | --- Module : Control.Monad.Imperative.ImperativeOperators --- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu> --- Stability : experimental --- Portability : NoMonomorphismRestriction --- Some predefined operators for the imperative monad. --- ------------------------------------------------------------------------------ -module Control.Monad.Imperative.ImperativeOperators where - -import Control.Monad.Imperative.ImperativeMonad (modifyOp, liftOp2) - - -(+=:) = modifyOp (+) -(*=:) = modifyOp (*) -(-=:) = modifyOp (-) -(%=:) = modifyOp (mod) - -(<.) = liftOp2 (<) -(>.) = liftOp2 (>) -(+.) = liftOp2 (+) -(*.) = liftOp2 (*)
+ Control/Monad/Imperative/Internals.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE + GADTs, + EmptyDataDecls, + GeneralizedNewtypeDeriving, + MultiParamTypeClasses, + FunctionalDependencies, + FlexibleInstances, + UndecidableInstances, + ExistentialQuantification + #-} + +----------------------------------------------------------------------------- +-- | +-- Module : Control.Monad.Imperative.Internals +-- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu> +-- Stability : experimental +-- Portability : GADTs, EmptyDataDecls, +-- GeneralizedNewtypeDeriving, MultiParamTypeClasses, +-- FunctionalDependencies, FlexibleInstances, +-- UndecidableInstances +-- A module which defines the monad for ImperativeHaskell, +-- and some control operator to interact with 'MIO' +-- +----------------------------------------------------------------------------- +module Control.Monad.Imperative.Internals + ( modifyOp + , if' + , for' + , while' + , break' + , continue' + , return' + , returnV + , returnF + , function + , new + , auto + , runImperative + , V(Lit, C) + , MIO() + , Comp + , Val + , Var + , (=:) + , (&) + , val + ) where + +import Control.Monad.Cont +import Control.Monad.Reader +import Data.IORef + +newtype MIO r a = MIO { getMIO :: ReaderT (Control r) (ContT r IO) a } + deriving (Monad, MonadCont) + +data Var +data Val +data Comp + + +data Control r = InFunction (r -> ContT r IO ()) + | InLoop { controlBreak :: MIO r () + , controlContinue :: MIO r () + , controlReturn :: r -> MIO r () + } + +-- | @'returnF' value@ acts like the imperative return, where +-- if called, it will exit the current function and place the +-- returned value into the current continuation. Note, this +-- doesn't work inside of loops. Inside of loops, we need +-- 'returnV' +returnF :: V a b b -> MIO b b +returnF v = MIO $ do + v' <- getMIO $ val v + a <- ask + case a of + InLoop _ _ ret -> getMIO $ ret v' + InFunction ret -> lift $ ret v' + return v' + +-- | @'returnV' value@ acts like the imperative return, where +-- if called, it will exit the current function and place the +-- returned value into the current continuation. Note, this +-- doesn't work as a last function call. +returnV :: V a b b -> MIO b () +returnV a = returnF a >> return () + +class Returnable b r where + -- | @'return''@ can act as returnF or returnV depending on use + -- if it does not work, it is likely that type inference + -- could not figure out a sensible alternative. + return' :: V a b b -> MIO b r + +instance Returnable b () where + return' a = returnV a + +instance Returnable b b where + return' a = returnF a + + +runImperative :: MIO a a -> IO a +runImperative foo = do + a <- runContT (callCC $ \ret -> runReaderT (getMIO foo) $ InFunction ret) return + return a + +-- | @'function' foo@ takes an ImperativeMonad action and removes it from it's +-- specific function context, specifically making it applicable +-- in the body of other functions. +function :: MIO a a -> MIO b a +function = MIO . liftIO . runImperative + +-- | @'break''@ exists the current loop. +-- if called outside of a loop, rather than throwing a compilation error, +-- it will simply return a runtime error. +break' :: MIO a () +break' = MIO ask >>= controlBreak + +-- | 'continue'' continues the current loop, passing over +-- any control flow that is defined. +-- if called outside of a loop, rather than throwing a compilation error, +-- it will simply return a runtime error. +continue' :: MIO a () +continue' = MIO ask >>= controlContinue + +data V b r a where + R :: IORef a -> V Var r a + Lit :: a -> V Val r a + C :: MIO r (V b r a) -> V Comp r a + +val :: V b r a -> MIO r a +val v = case v of + R r -> MIO $ liftIO $ readIORef r + Lit v -> return v + C m -> val =<< m + +-- | @('&')a@ gets a reference/pointer to the variable specified +(&) :: V Var r a -> V Var s a +(&) (R a) = R a + +-- | 'auto' should just be used where the +-- type can be automatically infered and we don't need an initial value +-- Use caution, as it is simply an alternate name for 'undefined' +auto = undefined + +-- | 'new' constructs a new reference to the specified pure value +new :: a -> MIO r (V Var r a) +new a = do + r <- MIO $ liftIO $ newIORef a + return $ R r + + +infixr 0 =: + +-- | The 'Assignable' class is used to specify a value which can be +-- computed imperatively. +class Assignable valt where + -- | @variable '=:' value@ executes @value@ and writes it + -- to the location pointed to by @variable@ + (=:) :: V Var r a -> valt r a -> MIO r () + +instance Assignable (V b) where + (=:) (R ar) br = MIO $ do + b <- getMIO $ val br + liftIO $ writeIORef ar b + +instance Assignable MIO where + (=:) a br = do + b <- br + a =: Lit b + +-- | @'for''(init, check, incr)@ acts like its imperative @for@ counterpart +for' :: (MIO r irr1, V b r Bool, MIO r irr2) -> MIO r () -> MIO r () +for' (init, check, incr) body = init >> for_r + where for_r = do + do_comp <- val check + when do_comp $ callCC $ \break_foo -> do + callCC $ \continue_foo -> MIO $ do + flip withReaderT (getMIO body) $ \inbod -> + InLoop (break_foo ()) (continue_foo ()) (controlReturn inbod) + incr + for_r + +-- | @'while''(check)@ acts like its imperative @while@ counterpart. +while' :: V b r Bool -> MIO r () -> MIO r () +while' check = for'(return (), check, return () ) + +-- | @'if''(check) act@ only performs @act@ if @check@ evaluates to true +-- it is specifically a value in its argument. +if' :: V b r Bool -> MIO r () -> MIO r () +if' b m = do + v <- val b + when v m + +-- | @'modifyOp'@ makes a modification assignment operator +-- out of a binary haskell function. +-- The suggested use is to replicate functionality of assignments +-- like @-=@ or @%=@ from C style languages. +modifyOp :: (a->b->a) -> V Var r a -> V k r b -> MIO r () +modifyOp op (R ar) br = MIO $ do + b <- getMIO $ val br + liftIO $ modifyIORef ar (\v -> op v b)
+ Control/Monad/Imperative/Operators.hs view
@@ -0,0 +1,35 @@+{-# LANGUAGE + NoMonomorphismRestriction, + TemplateHaskell + #-} +----------------------------------------------------------------------------- +-- | +-- Module : Control.Monad.Imperative.Operators +-- Maintainer : Matthew Mirman <mmirman@andrew.cmu.edu> +-- Stability : experimental +-- Portability : NoMonomorphismRestriction, TemplateHaskell +-- Some predefined operators for the imperative monad. +-- +----------------------------------------------------------------------------- +module Control.Monad.Imperative.Operators where + +import Control.Monad.Imperative.Internals +import Control.Monad.Imperative.FunctionFactory + +(+=:) = modifyOp (+) +(*=:) = modifyOp (*) +(-=:) = modifyOp (-) +(%=:) = modifyOp (mod) + +(<.) = liftOp2 (<) +(>.) = liftOp2 (>) +(+.) = liftOp2 (+) +(*.) = liftOp2 (*) +(%.) = liftOp2 mod +(/.) = liftOp2 (/) + +-- | @'liftOp2' f@ turns a pure function into one which +-- gets executes its arguments and returns their value as a +-- function. It is defined using 'liftOp'. +liftOp2 :: (a -> b -> c) -> V b1 r a -> V b2 r b -> V Comp r c +liftOp2 v = $(liftOp 'v)
ImperativeHaskell.cabal view
@@ -1,5 +1,5 @@ Name: ImperativeHaskell-Version: 0.2.0.1+Version: 1.0.0.0 Description: A monad that uses GADTs and continuations to replicate what it is like to program in an imperative language like C or Java@@ -17,7 +17,7 @@ Maintainer: Matthew Mirman <mmirman@andrew.cmu.edu> -Category: Control+Category: Control, Embedded, Development, Language Build-type: Simple @@ -30,11 +30,12 @@ Library Build-depends: base >= 4.0 && < 5.0, - mtl > 2.0 && < 3.0- + mtl >= 2.0 && < 3.0,+ template-haskell >= 2.6 && < 3 Exposed-modules: Control.Monad.Imperative,- Control.Monad.Imperative.ImperativeMonad,- Control.Monad.Imperative.ImperativeOperators+ Control.Monad.Imperative.Internals,+ Control.Monad.Imperative.Operators,+ Control.Monad.Imperative.FunctionFactory - Extensions: GADTs, EmptyDataDecls, NoMonomorphismRestriction, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances+ Extensions: GADTs, EmptyDataDecls, NoMonomorphismRestriction, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances, TemplateHaskell
Main.hs view
@@ -1,5 +1,7 @@ {-# LANGUAGE - GADTs + GADTs, + TemplateHaskell, + ScopedTypeVariables #-} ----------------------------------------------------------------------------- @@ -42,18 +44,19 @@ return' r1; }; + + factorial = function $ do { a <- new 0; n <- new 1; + for' ( a =: Lit 1 , a <. Lit 11 , a +=: Lit 1 ) $ do { n *=: a; if' ( a <. Lit 7) continue'; - - if' ( a >. Lit 5) break'; @@ -67,7 +70,6 @@ return' n; }; - main = do t <- runImperative factorial putStrLn $ "Some Factorial: "++show (t :: Int)
− dist/build/Control/Monad/Imperative.hi
binary file changed (2399 → absent bytes)
− dist/build/Control/Monad/Imperative.o
binary file changed (408 → absent bytes)
− dist/build/Control/Monad/Imperative/ImperativeMonad.hi
binary file changed (30028 → absent bytes)
− dist/build/Control/Monad/Imperative/ImperativeMonad.o
binary file changed (52880 → absent bytes)
− dist/build/Control/Monad/Imperative/ImperativeOperators.hi
binary file changed (6028 → absent bytes)
− dist/build/Control/Monad/Imperative/ImperativeOperators.o
binary file changed (6944 → absent bytes)
− dist/build/HSImperativeHaskell-0.2.0.1.o
binary file changed (48012 → absent bytes)
− dist/build/autogen/Paths_ImperativeHaskell.hs
@@ -1,29 +0,0 @@-module Paths_ImperativeHaskell (- version,- getBinDir, getLibDir, getDataDir, getLibexecDir,- getDataFileName- ) where--import Data.Version (Version(..))-import System.Environment (getEnv)--version :: Version-version = Version {versionBranch = [0,2,0,1], versionTags = []}--bindir, libdir, datadir, libexecdir :: FilePath--bindir = "/Users/matt/.cabal/bin"-libdir = "/Users/matt/.cabal/lib/ImperativeHaskell-0.2.0.1/ghc-7.2.1"-datadir = "/Users/matt/.cabal/share/ImperativeHaskell-0.2.0.1"-libexecdir = "/Users/matt/.cabal/libexec"--getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath-getBinDir = catch (getEnv "ImperativeHaskell_bindir") (\_ -> return bindir)-getLibDir = catch (getEnv "ImperativeHaskell_libdir") (\_ -> return libdir)-getDataDir = catch (getEnv "ImperativeHaskell_datadir") (\_ -> return datadir)-getLibexecDir = catch (getEnv "ImperativeHaskell_libexecdir") (\_ -> return libexecdir)--getDataFileName :: FilePath -> IO FilePath-getDataFileName name = do- dir <- getDataDir- return (dir ++ "/" ++ name)
− dist/build/autogen/cabal_macros.h
@@ -1,16 +0,0 @@-/* DO NOT EDIT: This file is automatically generated by Cabal */--/* package base-4.4.0.0 */-#define VERSION_base "4.4.0.0"-#define MIN_VERSION_base(major1,major2,minor) (\- (major1) < 4 || \- (major1) == 4 && (major2) < 4 || \- (major1) == 4 && (major2) == 4 && (minor) <= 0)--/* package mtl-2.0.1.0 */-#define VERSION_mtl "2.0.1.0"-#define MIN_VERSION_mtl(major1,major2,minor) (\- (major1) < 2 || \- (major1) == 2 && (major2) < 0 || \- (major1) == 2 && (major2) == 0 && (minor) <= 1)-
− dist/build/libHSImperativeHaskell-0.2.0.1.a
binary file changed (77904 → absent bytes)
− dist/package.conf.inplace
@@ -1,2 +0,0 @@-[InstalledPackageInfo {installedPackageId = InstalledPackageId "ImperativeHaskell-0.2.0.1-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "ImperativeHaskell", pkgVersion = Version {versionBranch = [0,2,0,1], versionTags = []}}, license = GPL (Just (Version {versionBranch = [3], versionTags = []})), copyright = "", maintainer = "Matthew Mirman <mmirman@andrew.cmu.edu>", author = "Matthew Mirman", stability = "", homepage = "https://github.com/mmirman/ImperativeHaskell", pkgUrl = "", synopsis = "", description = "A monad that uses GADTs and continuations\nto replicate what it is like to program\nin an imperative language like C or Java\nwith \"return\", \"for\", \"break\", \"continue\",\nand mutable references.", category = "Control", exposed = True, exposedModules = ["Control.Monad.Imperative","Control.Monad.Imperative.ImperativeMonad","Control.Monad.Imperative.ImperativeOperators"], hiddenModules = [], trusted = False, importDirs = ["/Users/matt/projects/ImperativeHaskell-0.2.0.1/dist/build"], libraryDirs = ["/Users/matt/projects/ImperativeHaskell-0.2.0.1/dist/build"], hsLibraries = ["HSImperativeHaskell-0.2.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe",InstalledPackageId "mtl-2.0.1.0-6e89e350c68b095f05890eb0e3285090"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/matt/projects/ImperativeHaskell-0.2.0.1/dist/doc/html/ImperativeHaskell/ImperativeHaskell.haddock"], haddockHTMLs = ["/Users/matt/projects/ImperativeHaskell-0.2.0.1/dist/doc/html/ImperativeHaskell"]}-]
− dist/setup-config
@@ -1,2 +0,0 @@-Saved package config for ImperativeHaskell-0.2.0.1 written by Cabal-1.10.1.0 using ghc-7.0-LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag False, configSharedLib = Flag False, configProfExe = Flag False, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "/Users/matt/.cabal", bindir = NoFlag, libdir = NoFlag, libsubdir = NoFlag, dynlibdir = NoFlag, libexecdir = NoFlag, progdir = NoFlag, includedir = NoFlag, datadir = NoFlag, datasubdir = NoFlag, docdir = NoFlag, mandir = NoFlag, htmldir = NoFlag, haddockdir = NoFlag}, configScratchDir = NoFlag, configExtraLibDirs = [], configExtraIncludeDirs = [], configDistPref = Flag "dist", configVerbosity = Flag Normal, configUserInstall = Flag True, configPackageDB = NoFlag, configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,4,0,0], versionTags = []})),Dependency (PackageName "mtl") (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "/Users/matt/.cabal", bindir = "$prefix/bin", libdir = "$prefix/lib", libsubdir = "$pkgid/$compiler", dynlibdir = "$libdir", libexecdir = "$prefix/libexec", progdir = "$libdir/hugs/programs", includedir = "$libdir/$libsubdir/include", datadir = "$prefix/share", datasubdir = "$pkgid", docdir = "$datadir/doc/$pkgid", mandir = "$datadir/man", htmldir = "$docdir/html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [7,2,1], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(UnknownExtension "SafeImports","-XSafeImports"),(UnknownExtension "Trustworthy","-XTrustworthy"),(UnknownExtension "Safe","-XSafe"),(CPP,"-XCPP"),(UnknownExtension "NoCPP","-XNoCPP"),(PostfixOperators,"-XPostfixOperators"),(UnknownExtension "NoPostfixOperators","-XNoPostfixOperators"),(TupleSections,"-XTupleSections"),(UnknownExtension "NoTupleSections","-XNoTupleSections"),(PatternGuards,"-XPatternGuards"),(UnknownExtension "NoPatternGuards","-XNoPatternGuards"),(UnicodeSyntax,"-XUnicodeSyntax"),(UnknownExtension "NoUnicodeSyntax","-XNoUnicodeSyntax"),(MagicHash,"-XMagicHash"),(UnknownExtension "NoMagicHash","-XNoMagicHash"),(PolymorphicComponents,"-XPolymorphicComponents"),(UnknownExtension "NoPolymorphicComponents","-XNoPolymorphicComponents"),(ExistentialQuantification,"-XExistentialQuantification"),(UnknownExtension "NoExistentialQuantification","-XNoExistentialQuantification"),(KindSignatures,"-XKindSignatures"),(UnknownExtension "NoKindSignatures","-XNoKindSignatures"),(EmptyDataDecls,"-XEmptyDataDecls"),(UnknownExtension "NoEmptyDataDecls","-XNoEmptyDataDecls"),(ParallelListComp,"-XParallelListComp"),(UnknownExtension "NoParallelListComp","-XNoParallelListComp"),(TransformListComp,"-XTransformListComp"),(UnknownExtension "NoTransformListComp","-XNoTransformListComp"),(UnknownExtension "MonadComprehensions","-XMonadComprehensions"),(UnknownExtension "NoMonadComprehensions","-XNoMonadComprehensions"),(ForeignFunctionInterface,"-XForeignFunctionInterface"),(UnknownExtension "NoForeignFunctionInterface","-XNoForeignFunctionInterface"),(UnliftedFFITypes,"-XUnliftedFFITypes"),(UnknownExtension "NoUnliftedFFITypes","-XNoUnliftedFFITypes"),(UnknownExtension "InterruptibleFFI","-XInterruptibleFFI"),(UnknownExtension "NoInterruptibleFFI","-XNoInterruptibleFFI"),(GHCForeignImportPrim,"-XGHCForeignImportPrim"),(UnknownExtension "NoGHCForeignImportPrim","-XNoGHCForeignImportPrim"),(LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(UnknownExtension "NoLiberalTypeSynonyms","-XNoLiberalTypeSynonyms"),(Rank2Types,"-XRank2Types"),(UnknownExtension "NoRank2Types","-XNoRank2Types"),(RankNTypes,"-XRankNTypes"),(UnknownExtension "NoRankNTypes","-XNoRankNTypes"),(ImpredicativeTypes,"-XImpredicativeTypes"),(UnknownExtension "NoImpredicativeTypes","-XNoImpredicativeTypes"),(TypeOperators,"-XTypeOperators"),(UnknownExtension "NoTypeOperators","-XNoTypeOperators"),(RecursiveDo,"-XRecursiveDo"),(UnknownExtension "NoRecursiveDo","-XNoRecursiveDo"),(DoRec,"-XDoRec"),(UnknownExtension "NoDoRec","-XNoDoRec"),(Arrows,"-XArrows"),(UnknownExtension "NoArrows","-XNoArrows"),(UnknownExtension "ParallelArrays","-XParallelArrays"),(UnknownExtension "NoParallelArrays","-XNoParallelArrays"),(TemplateHaskell,"-XTemplateHaskell"),(UnknownExtension "NoTemplateHaskell","-XNoTemplateHaskell"),(QuasiQuotes,"-XQuasiQuotes"),(UnknownExtension "NoQuasiQuotes","-XNoQuasiQuotes"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(RecordWildCards,"-XRecordWildCards"),(UnknownExtension "NoRecordWildCards","-XNoRecordWildCards"),(NamedFieldPuns,"-XNamedFieldPuns"),(UnknownExtension "NoNamedFieldPuns","-XNoNamedFieldPuns"),(RecordPuns,"-XRecordPuns"),(UnknownExtension "NoRecordPuns","-XNoRecordPuns"),(DisambiguateRecordFields,"-XDisambiguateRecordFields"),(UnknownExtension "NoDisambiguateRecordFields","-XNoDisambiguateRecordFields"),(OverloadedStrings,"-XOverloadedStrings"),(UnknownExtension "NoOverloadedStrings","-XNoOverloadedStrings"),(GADTs,"-XGADTs"),(UnknownExtension "NoGADTs","-XNoGADTs"),(UnknownExtension "GADTSyntax","-XGADTSyntax"),(UnknownExtension "NoGADTSyntax","-XNoGADTSyntax"),(ViewPatterns,"-XViewPatterns"),(UnknownExtension "NoViewPatterns","-XNoViewPatterns"),(TypeFamilies,"-XTypeFamilies"),(UnknownExtension "NoTypeFamilies","-XNoTypeFamilies"),(BangPatterns,"-XBangPatterns"),(UnknownExtension "NoBangPatterns","-XNoBangPatterns"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NPlusKPatterns,"-XNPlusKPatterns"),(UnknownExtension "NoNPlusKPatterns","-XNoNPlusKPatterns"),(DoAndIfThenElse,"-XDoAndIfThenElse"),(UnknownExtension "NoDoAndIfThenElse","-XNoDoAndIfThenElse"),(RebindableSyntax,"-XRebindableSyntax"),(UnknownExtension "NoRebindableSyntax","-XNoRebindableSyntax"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(ExplicitForAll,"-XExplicitForAll"),(UnknownExtension "NoExplicitForAll","-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(DatatypeContexts,"-XDatatypeContexts"),(UnknownExtension "NoDatatypeContexts","-XNoDatatypeContexts"),(UnknownExtension "NondecreasingIndentation","-XNondecreasingIndentation"),(UnknownExtension "NoNondecreasingIndentation","-XNoNondecreasingIndentation"),(UnknownExtension "RelaxedLayout","-XRelaxedLayout"),(UnknownExtension "NoRelaxedLayout","-XNoRelaxedLayout"),(MonoLocalBinds,"-XMonoLocalBinds"),(UnknownExtension "NoMonoLocalBinds","-XNoMonoLocalBinds"),(RelaxedPolyRec,"-XRelaxedPolyRec"),(UnknownExtension "NoRelaxedPolyRec","-XNoRelaxedPolyRec"),(ExtendedDefaultRules,"-XExtendedDefaultRules"),(UnknownExtension "NoExtendedDefaultRules","-XNoExtendedDefaultRules"),(ImplicitParams,"-XImplicitParams"),(UnknownExtension "NoImplicitParams","-XNoImplicitParams"),(ScopedTypeVariables,"-XScopedTypeVariables"),(UnknownExtension "NoScopedTypeVariables","-XNoScopedTypeVariables"),(PatternSignatures,"-XPatternSignatures"),(UnknownExtension "NoPatternSignatures","-XNoPatternSignatures"),(UnboxedTuples,"-XUnboxedTuples"),(UnknownExtension "NoUnboxedTuples","-XNoUnboxedTuples"),(StandaloneDeriving,"-XStandaloneDeriving"),(UnknownExtension "NoStandaloneDeriving","-XNoStandaloneDeriving"),(DeriveDataTypeable,"-XDeriveDataTypeable"),(UnknownExtension "NoDeriveDataTypeable","-XNoDeriveDataTypeable"),(DeriveFunctor,"-XDeriveFunctor"),(UnknownExtension "NoDeriveFunctor","-XNoDeriveFunctor"),(DeriveTraversable,"-XDeriveTraversable"),(UnknownExtension "NoDeriveTraversable","-XNoDeriveTraversable"),(DeriveFoldable,"-XDeriveFoldable"),(UnknownExtension "NoDeriveFoldable","-XNoDeriveFoldable"),(UnknownExtension "DeriveGeneric","-XDeriveGeneric"),(UnknownExtension "NoDeriveGeneric","-XNoDeriveGeneric"),(UnknownExtension "DefaultSignatures","-XDefaultSignatures"),(UnknownExtension "NoDefaultSignatures","-XNoDefaultSignatures"),(TypeSynonymInstances,"-XTypeSynonymInstances"),(UnknownExtension "NoTypeSynonymInstances","-XNoTypeSynonymInstances"),(FlexibleContexts,"-XFlexibleContexts"),(UnknownExtension "NoFlexibleContexts","-XNoFlexibleContexts"),(FlexibleInstances,"-XFlexibleInstances"),(UnknownExtension "NoFlexibleInstances","-XNoFlexibleInstances"),(ConstrainedClassMethods,"-XConstrainedClassMethods"),(UnknownExtension "NoConstrainedClassMethods","-XNoConstrainedClassMethods"),(MultiParamTypeClasses,"-XMultiParamTypeClasses"),(UnknownExtension "NoMultiParamTypeClasses","-XNoMultiParamTypeClasses"),(FunctionalDependencies,"-XFunctionalDependencies"),(UnknownExtension "NoFunctionalDependencies","-XNoFunctionalDependencies"),(GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(UnknownExtension "NoGeneralizedNewtypeDeriving","-XNoGeneralizedNewtypeDeriving"),(OverlappingInstances,"-XOverlappingInstances"),(UnknownExtension "NoOverlappingInstances","-XNoOverlappingInstances"),(UndecidableInstances,"-XUndecidableInstances"),(UnknownExtension "NoUndecidableInstances","-XNoUndecidableInstances"),(IncoherentInstances,"-XIncoherentInstances"),(UnknownExtension "NoIncoherentInstances","-XNoIncoherentInstances"),(PackageImports,"-XPackageImports"),(UnknownExtension "NoPackageImports","-XNoPackageImports")]}, buildDir = "dist/build", scratchDir = "dist/scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,0,0], versionTags = []}}),(InstalledPackageId "mtl-2.0.1.0-6e89e350c68b095f05890eb0e3285090",PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}})]}), executableConfigs = [], testSuiteConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Group"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0"], hsLibraries = ["HSbase-4.4.0.0"], extraLibraries = ["iconv"], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7",InstalledPackageId "integer-gmp-0.3.0.0-e308d7d625d556565df0c2b4a56d9d05",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/base-4.4.0.0/base.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/base-4.4.0.0"]}),(InstalledPackageId "builtin_ffi",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "builtin_rts",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1"], hsLibraries = ["HSrts"], extraLibraries = ["m","dl"], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","_ghczmprim_GHCziTypes_Izh_static_info","-u","_ghczmprim_GHCziTypes_Czh_static_info","-u","_ghczmprim_GHCziTypes_Fzh_static_info","-u","_ghczmprim_GHCziTypes_Dzh_static_info","-u","_base_GHCziPtr_Ptr_static_info","-u","_base_GHCziWord_Wzh_static_info","-u","_base_GHCziInt_I8zh_static_info","-u","_base_GHCziInt_I16zh_static_info","-u","_base_GHCziInt_I32zh_static_info","-u","_base_GHCziInt_I64zh_static_info","-u","_base_GHCziWord_W8zh_static_info","-u","_base_GHCziWord_W16zh_static_info","-u","_base_GHCziWord_W32zh_static_info","-u","_base_GHCziWord_W64zh_static_info","-u","_base_GHCziStable_StablePtr_static_info","-u","_ghczmprim_GHCziTypes_Izh_con_info","-u","_ghczmprim_GHCziTypes_Czh_con_info","-u","_ghczmprim_GHCziTypes_Fzh_con_info","-u","_ghczmprim_GHCziTypes_Dzh_con_info","-u","_base_GHCziPtr_Ptr_con_info","-u","_base_GHCziPtr_FunPtr_con_info","-u","_base_GHCziStable_StablePtr_con_info","-u","_ghczmprim_GHCziTypes_False_closure","-u","_ghczmprim_GHCziTypes_True_closure","-u","_base_GHCziPack_unpackCString_closure","-u","_base_GHCziIOziException_stackOverflow_closure","-u","_base_GHCziIOziException_heapOverflow_closure","-u","_base_ControlziExceptionziBase_nonTermination_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","_base_ControlziExceptionziBase_nestedAtomically_closure","-u","_base_GHCziWeak_runFinalizzerBatch_closure","-u","_base_GHCziTopHandler_runIO_closure","-u","_base_GHCziTopHandler_runNonIO_closure","-u","_base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","_base_GHCziConcziSync_runSparks_closure","-u","_base_GHCziConcziSignal_runHandlers_closure","-Wl,-search_paths_first","-read_only_relocs","warning"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"],ModuleName ["GHC","CString"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/ghc-prim-0.2.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}),(InstalledPackageId "integer-gmp-0.3.0.0-e308d7d625d556565df0c2b4a56d9d05",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.3.0.0-e308d7d625d556565df0c2b4a56d9d05", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/integer-gmp-0.3.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/integer-gmp-0.3.0.0"], hsLibraries = ["HSinteger-gmp-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0/integer-gmp.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0"]}),(InstalledPackageId "mtl-2.0.1.0-6e89e350c68b095f05890eb0e3285090",InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.0.1.0-6e89e350c68b095f05890eb0e3285090", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "Andy Gill", stability = "", homepage = "", pkgUrl = "", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], importDirs = ["/Users/matt/.cabal/lib/mtl-2.0.1.0/ghc-7.2.1"], libraryDirs = ["/Users/matt/.cabal/lib/mtl-2.0.1.0/ghc-7.2.1"], hsLibraries = ["HSmtl-2.0.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe",InstalledPackageId "transformers-0.2.2.0-c2ad790294a3a824ec99c0e828257dc3"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/matt/.cabal/share/doc/mtl-2.0.1.0/html/mtl.haddock"], haddockHTMLs = ["/Users/matt/.cabal/share/doc/mtl-2.0.1.0/html"]}),(InstalledPackageId "transformers-0.2.2.0-c2ad790294a3a824ec99c0e828257dc3",InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-c2ad790294a3a824ec99c0e828257dc3", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings. It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["/Users/matt/.cabal/lib/transformers-0.2.2.0/ghc-7.2.1"], libraryDirs = ["/Users/matt/.cabal/lib/transformers-0.2.2.0/ghc-7.2.1"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/matt/.cabal/share/doc/transformers-0.2.2.0/html/transformers.haddock"], haddockHTMLs = ["/Users/matt/.cabal/share/doc/transformers-0.2.2.0/html"]})]) (fromList [(PackageName "base",fromList [(Version {versionBranch = [4,4,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Group"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0"], hsLibraries = ["HSbase-4.4.0.0"], extraLibraries = ["iconv"], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/base-4.4.0.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7",InstalledPackageId "integer-gmp-0.3.0.0-e308d7d625d556565df0c2b4a56d9d05",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/base-4.4.0.0/base.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/base-4.4.0.0"]}])]),(PackageName "ffi",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,2,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"],ModuleName ["GHC","CString"]], hiddenModules = [], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/ghc-prim-0.2.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.3.0.0-e308d7d625d556565df0c2b4a56d9d05", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/integer-gmp-0.3.0.0"], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/integer-gmp-0.3.0.0"], hsLibraries = ["HSinteger-gmp-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d69712b976d60a144025da3be496aae7"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0/integer-gmp.haddock"], haddockHTMLs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/share/doc/ghc/html/libraries/integer-gmp-0.3.0.0"]}])]),(PackageName "mtl",fromList [(Version {versionBranch = [2,0,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.0.1.0-6e89e350c68b095f05890eb0e3285090", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,0,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "Andy Gill", stability = "", homepage = "", pkgUrl = "", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], importDirs = ["/Users/matt/.cabal/lib/mtl-2.0.1.0/ghc-7.2.1"], libraryDirs = ["/Users/matt/.cabal/lib/mtl-2.0.1.0/ghc-7.2.1"], hsLibraries = ["HSmtl-2.0.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe",InstalledPackageId "transformers-0.2.2.0-c2ad790294a3a824ec99c0e828257dc3"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/matt/.cabal/share/doc/mtl-2.0.1.0/html/mtl.haddock"], haddockHTMLs = ["/Users/matt/.cabal/share/doc/mtl-2.0.1.0/html"]}])]),(PackageName "rts",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1"], hsLibraries = ["HSrts"], extraLibraries = ["m","dl"], extraGHCiLibraries = [], includeDirs = ["/Library/Frameworks/GHC.framework/Versions/7.2.1-i386/usr/lib/ghc-7.2.1/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","_ghczmprim_GHCziTypes_Izh_static_info","-u","_ghczmprim_GHCziTypes_Czh_static_info","-u","_ghczmprim_GHCziTypes_Fzh_static_info","-u","_ghczmprim_GHCziTypes_Dzh_static_info","-u","_base_GHCziPtr_Ptr_static_info","-u","_base_GHCziWord_Wzh_static_info","-u","_base_GHCziInt_I8zh_static_info","-u","_base_GHCziInt_I16zh_static_info","-u","_base_GHCziInt_I32zh_static_info","-u","_base_GHCziInt_I64zh_static_info","-u","_base_GHCziWord_W8zh_static_info","-u","_base_GHCziWord_W16zh_static_info","-u","_base_GHCziWord_W32zh_static_info","-u","_base_GHCziWord_W64zh_static_info","-u","_base_GHCziStable_StablePtr_static_info","-u","_ghczmprim_GHCziTypes_Izh_con_info","-u","_ghczmprim_GHCziTypes_Czh_con_info","-u","_ghczmprim_GHCziTypes_Fzh_con_info","-u","_ghczmprim_GHCziTypes_Dzh_con_info","-u","_base_GHCziPtr_Ptr_con_info","-u","_base_GHCziPtr_FunPtr_con_info","-u","_base_GHCziStable_StablePtr_con_info","-u","_ghczmprim_GHCziTypes_False_closure","-u","_ghczmprim_GHCziTypes_True_closure","-u","_base_GHCziPack_unpackCString_closure","-u","_base_GHCziIOziException_stackOverflow_closure","-u","_base_GHCziIOziException_heapOverflow_closure","-u","_base_ControlziExceptionziBase_nonTermination_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","_base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","_base_ControlziExceptionziBase_nestedAtomically_closure","-u","_base_GHCziWeak_runFinalizzerBatch_closure","-u","_base_GHCziTopHandler_runIO_closure","-u","_base_GHCziTopHandler_runNonIO_closure","-u","_base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","_base_GHCziConcziSync_runSparks_closure","-u","_base_GHCziConcziSignal_runHandlers_closure","-Wl,-search_paths_first","-read_only_relocs","warning"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "transformers",fromList [(Version {versionBranch = [0,2,2,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.2.2.0-c2ad790294a3a824ec99c0e828257dc3", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,2,2,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", description = "Haskell 98 part of a monad transformer library, inspired by the paper\n\\\"Functional Programming with Overloading and Higher-Order Polymorphism\\\",\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis part contains the monad transformer class, the concrete monad\ntransformers, operations and liftings. It can be used on its own\nin Haskell 98 code, or with the monad classes in the @monads-fd@ or\n@monads-tf@ packages, which automatically lift operations introduced\nby monad transformers through other transformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"]], hiddenModules = [], importDirs = ["/Users/matt/.cabal/lib/transformers-0.2.2.0/ghc-7.2.1"], libraryDirs = ["/Users/matt/.cabal/lib/transformers-0.2.2.0/ghc-7.2.1"], hsLibraries = ["HStransformers-0.2.2.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.4.0.0-1b1454fb31b066529d7c19c4618311fe"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/Users/matt/.cabal/share/doc/transformers-0.2.2.0/html/transformers.haddock"], haddockHTMLs = ["/Users/matt/.cabal/share/doc/transformers-0.2.2.0/html"]}])])]), pkgDescrFile = Just "./ImperativeHaskell.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "ImperativeHaskell", pkgVersion = Version {versionBranch = [0,2,0,1], versionTags = []}}, license = GPL (Just (Version {versionBranch = [3], versionTags = []})), licenseFile = "LICENSE", copyright = "", maintainer = "Matthew Mirman <mmirman@andrew.cmu.edu>", author = "Matthew Mirman", stability = "", testedWith = [], homepage = "https://github.com/mmirman/ImperativeHaskell", pkgUrl = "", bugReports = "", sourceRepos = [SourceRepo {repoKind = RepoHead, repoType = Just Git, repoLocation = Just "git://github.com/mmirman/ImperativeHaskell.git", repoModule = Nothing, repoBranch = Nothing, repoTag = Nothing, repoSubdir = Nothing}], synopsis = "A library for writing Imperative style haskell.", description = "A monad that uses GADTs and continuations\nto replicate what it is like to program\nin an imperative language like C or Java\nwith \"return\", \"for\", \"break\", \"continue\",\nand mutable references.", category = "Control", customFieldsPD = [], buildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [4,0], versionTags = []})) (LaterVersion (Version {versionBranch = [4,0], versionTags = []}))) (EarlierVersion (Version {versionBranch = [5,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,4,0,0], versionTags = []}))),Dependency (PackageName "mtl") (IntersectVersionRanges (IntersectVersionRanges (LaterVersion (Version {versionBranch = [2,0], versionTags = []})) (EarlierVersion (Version {versionBranch = [3,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,6], versionTags = []})) (LaterVersion (Version {versionBranch = [1,6], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Control","Monad","Imperative"],ModuleName ["Control","Monad","Imperative","ImperativeMonad"],ModuleName ["Control","Monad","Imperative","ImperativeOperators"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["."], otherModules = [], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [GADTs,EmptyDataDecls,NoMonomorphismRestriction,GeneralizedNewtypeDeriving,MultiParamTypeClasses,FunctionalDependencies,FlexibleInstances,UndecidableInstances], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [4,0], versionTags = []})) (LaterVersion (Version {versionBranch = [4,0], versionTags = []}))) (EarlierVersion (Version {versionBranch = [5,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,4,0,0], versionTags = []}))),Dependency (PackageName "mtl") (IntersectVersionRanges (IntersectVersionRanges (LaterVersion (Version {versionBranch = [2,0], versionTags = []})) (EarlierVersion (Version {versionBranch = [3,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [2,0,1,0], versionTags = []})))]}}), executables = [], testSuites = [], dataFiles = [], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [2,3,5], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ar"}}),("c2hs",ConfiguredProgram {programId = "c2hs", programVersion = Just (Version {versionBranch = [0,16,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/c2hs"}}),("cpphs",ConfiguredProgram {programId = "cpphs", programVersion = Just (Version {versionBranch = [1,11], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/local/bin/cpphs"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,2,1], versionTags = []}), programDefaultArgs = ["-m32"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/gcc"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,2,1], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,2,1], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,9,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/happy"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/hsc2hs"}}),("hscolour",ConfiguredProgram {programId = "hscolour", programVersion = Just (Version {versionBranch = [1,17], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/Users/matt/.cabal/bin/HsColour"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x","-arch","i386"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,23], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/sw/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ranlib"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/strip"}}),("tar",ConfiguredProgram {programId = "tar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/sw/bin/tar"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = False, withSharedLib = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}