packages feed

ghc-session-0.1.0.1: test/Main.hs

module Main where

import qualified Language.Haskell.Session as Session
import Control.Monad.IO.Class (liftIO)



main = Session.run $ do
    Session.setImports ["Prelude"]
    Session.runAssignment "x" "5"
    Session.runAssignment "y" "\"bar\""
    foo <- Session.interpret "print (x, y)"
    x <- Session.interpret "x"--(x, y)"
    liftIO $ print (x :: Integer)
    liftIO $ (foo :: IO ())

    Session.runDecls "foo = print (x, y)"
    foo <- Session.interpret "foo"
    liftIO $ (foo :: IO ())

    Session.runAssignment "bar" "print (y, x)"
    bar <- Session.interpret "bar"
    liftIO $ (bar :: IO ())

    Session.runStmt "bar"
    Session.runStmt "print 555"
    Session.removeBinding "x"
    -- Session.runStmt "print x"

    Session.runDecls "data A = A deriving Show"
    Session.runStmt "print A"