packages feed

ihaskell-0.6.0.0: src/IHaskell/Eval/Info.hs

{-# LANGUAGE NoImplicitPrelude, OverloadedStrings #-}

{- | Description : Inspect type and function information and documentation.  -}
module IHaskell.Eval.Info (info) where

import           ClassyPrelude hiding (liftIO)

import           IHaskell.Eval.Evaluate (typeCleaner, Interpreter)

import           GHC
import           Outputable
import           Exception

info :: String -> Interpreter String
info name = ghandle handler $ do
  dflags <- getSessionDynFlags
  result <- exprType name
  return $ typeCleaner $ showPpr dflags result
  where
    handler :: SomeException -> Interpreter String
    handler _ = return ""