packages feed

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 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 = ""}