diff --git a/cspmchecker.cabal b/cspmchecker.cabal
--- a/cspmchecker.cabal
+++ b/cspmchecker.cabal
@@ -10,7 +10,7 @@
 Build-type: Simple
 Cabal-version: >=1.9.2
 Synopsis: A command line type checker for CSPM files.
-Version: 0.2.1
+Version: 1.0.0
 
 Source-Repository head
     type:     git
@@ -21,7 +21,7 @@
     type:     git
     location: git://github.com/tomgr/libcspm.git
     subdir:   cspmchecker
-    tag: release-0.2.1
+    tag: release-1.0.0
   
 Executable cspmchecker
     Main-is: Main.hs
@@ -31,7 +31,7 @@
 
     Build-depends: 
         base >= 4 && < 5,
-        libcspm >= 0.2.1,
+        libcspm,
         filepath >= 1.2,
         mtl >= 2.0,
         directory >= 1.0
@@ -48,6 +48,6 @@
         filepath >= 1.2, 
         mtl >= 2.0,
         directory >= 1.0,
-        haskeline >= 0.6
+        haskeline >= 0.7
   
     Hs-Source-Dirs: src/InteractiveChecker
diff --git a/src/Checker/Main.hs b/src/Checker/Main.hs
--- a/src/Checker/Main.hs
+++ b/src/Checker/Main.hs
@@ -14,6 +14,7 @@
 import Data.Version (showVersion)
 
 import CSPM
+import qualified CSPM.CommandLineOptions as CSPM
 import CSPM.PrettyPrinter
 import Monad
 import Util.Annotated
@@ -44,10 +45,11 @@
     fss <- mapM getFilesFromDir [dir | dir <- dirs']
     return $ files'++concat fss
 
-doFile :: FilePath -> Checker Bool
-doFile fp = do
+doFile :: Options -> FilePath -> Checker Bool
+doFile opts fp = do
     liftIO $ putStr $ "Checking "++fp++"....."
-    res <- tryM $ do
+    res <- tryM $ convertExceptionsToPanics $ do
+        CSPM.setOptions (cspmOptions opts)
         ms <- parseFile fp
         rms <- CSPM.renameFile ms
         typeCheckFile rms
@@ -70,12 +72,16 @@
 data Options = Options {
         recursive :: Bool,
         help :: Bool,
-        printVersion :: Bool
+        printVersion :: Bool,
+        cspmOptions :: CSPM.Options
     }
+
+defaultOptions :: Options
 defaultOptions = Options { 
         recursive = False, 
         help = False,
-        printVersion = False
+        printVersion = False,
+        cspmOptions = CSPM.defaultOptions
     }
 
 options :: [OptDescr (Options -> Options)]
@@ -90,6 +96,7 @@
         (NoArg (\o -> o { help = True })) 
         "Display usage message"
     ]
+    ++ CSPM.allOptions cspmOptions (\ opts x -> opts { cspmOptions = x })
 
 header :: String
 header = "Usage: cspmchecker [OPTION...] files..."
@@ -99,7 +106,7 @@
     args <- getArgs
     st <- initCheckerState
     runChecker st $ case getOpt RequireOrder options args of
-        (_,_,e:es) -> liftIO $ putStr $ show $ concat (e:es) ++ usageInfo header options
+        (_,_,e:es) -> liftIO $ putStr $ concat (e:es) ++ usageInfo header options
         (o,files, []) -> do
             let opts = foldl (flip id) defaultOptions o
             case (opts, files) of
@@ -112,8 +119,8 @@
                     liftIO $ putStr $ usageInfo header options
                 (Options { recursive = True }, dirs) -> do
                     tasks <- mapM (liftIO . getFilesFromDir) dirs
-                    countSuccesses (map doFile (concat tasks))
+                    countSuccesses (map (doFile opts) (concat tasks))
                 (_, []) -> 
                     liftIO $ putStr $ usageInfo header options
                 (_, files) -> 
-                    countSuccesses (map doFile files)
+                    countSuccesses (map (doFile opts) files)
diff --git a/src/Checker/Monad.hs b/src/Checker/Monad.hs
--- a/src/Checker/Monad.hs
+++ b/src/Checker/Monad.hs
@@ -14,12 +14,12 @@
 
 initCheckerState :: IO CheckerState
 initCheckerState = do
-    sess <- newCSPMSession
+    sess <- newCSPMSession defaultEvaluatorOptions
     return $ CheckerState sess []
 
 resetCSPM :: Checker ()
 resetCSPM = do
-    sess <- liftIO $ newCSPMSession
+    sess <- liftIO $ newCSPMSession defaultEvaluatorOptions
     modify (\st -> st { cspmSession = sess, lastWarnings = [] })
 
 type Checker = StateT CheckerState IO
diff --git a/src/InteractiveChecker/Main.hs b/src/InteractiveChecker/Main.hs
--- a/src/InteractiveChecker/Main.hs
+++ b/src/InteractiveChecker/Main.hs
@@ -6,15 +6,18 @@
 import Data.List
 import Prelude hiding (catch)
 import System.Console.Haskeline
+import System.Environment
 import System.FilePath
 import System.IO
 
 import CSPM
-import CSPM.Compiler.Processes
+import CSPM.Evaluator.ProcessValues
+import CSPM.Evaluator.ValuePrettyPrinter
 import Monad
 import Util.Annotated
 import Util.Exception
 import Util.Monad
+import qualified Util.MonadicPrettyPrint as M
 import Util.Prelude
 import Util.PrettyPrint
 
@@ -32,7 +35,12 @@
             historyFile = Just $ 
                 joinPath [settingsDir, "interactive", "prompt_history"]
         }
-    runInputT settings interactiveLoop
+    runInputT settings $ do
+        args <- liftIO $ getArgs
+        case args of
+            [f] -> handleSourceError () (loadFileCommand f)
+            _ -> return ()
+        interactiveLoop
 
 interactiveLoop :: InputT IChecker ()
 interactiveLoop = do
@@ -128,7 +136,7 @@
 completeExpression :: CompletionFunc IChecker
 completeExpression = wrapCompleter expressionBreakers $ \str -> do
     ns <- getBoundNames
-    return [s | n <- ns, let OccName s = nameOccurrence n, str `isPrefixOf` s]
+    return [s | n <- ns, let s = show n, str `isPrefixOf` s]
     
 -- Commands
 
@@ -144,7 +152,7 @@
     rnExpr <- renameExpression pExpr
     typ <- typeOfExpression rnExpr
     outputStrLn $ show $ 
-        text str <+> text "::" <+> prettyPrint typ
+        text (trim str) <+> text "::" <+> prettyPrint typ
     return ()
 
 loadFileCommand :: String -> InputT IChecker ()
@@ -177,10 +185,11 @@
     tcStmt <- typeCheckInteractiveStmt rnStmt
     dsStmt <- desugarInteractiveStmt tcStmt
     case (unAnnotate dsStmt) of
-        Bind d -> bindDeclaration d
+        Bind ds -> mapM_ bindDeclaration ds
         Evaluate e -> do
             v <- evaluateExpression e
-            outputStrLn $ show $ prettyPrint v
+            d <- M.prettyPrint v
+            outputStrLn $ show $ d 
 
 printProcCommand :: String -> InputT IChecker ()
 printProcCommand str = do
diff --git a/src/InteractiveChecker/Monad.hs b/src/InteractiveChecker/Monad.hs
--- a/src/InteractiveChecker/Monad.hs
+++ b/src/InteractiveChecker/Monad.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE FlexibleInstances, TypeSynonymInstances #-}
 module Monad where
 
-import Control.Monad.State
+import Control.Monad.State.Strict
 import System.Console.Haskeline
 import System.Directory
 import System.FilePath
@@ -20,12 +20,12 @@
 initICheckerState = do
     settingsDirectory <- getAppUserDataDirectory "cspmchecker"
     createDirectoryIfMissing True $ joinPath [settingsDirectory, "interactive"]
-    sess <- newCSPMSession
+    sess <- newCSPMSession defaultEvaluatorOptions
     return $ ICheckerState settingsDirectory sess Nothing
 
 resetCSPM :: IChecker ()
 resetCSPM = do
-    sess <- liftIO $ newCSPMSession
+    sess <- liftIO $ newCSPMSession defaultEvaluatorOptions
     modify (\st -> st { cspmSession = sess })
 
 type IChecker = StateT ICheckerState IO
