import System.Eval.Haskell

main = do m_s <- eval "map toUpper \"haskell\"" ["Data.Char"]
          case m_s of
                Nothing -> putStrLn "typechecking failed"
                Just s  -> putStrLn s