diff options
Diffstat (limited to 'ghc/GHCi/UI.hs')
-rw-r--r-- | ghc/GHCi/UI.hs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs index 5dc3aa7d4d..6929ee8a32 100644 --- a/ghc/GHCi/UI.hs +++ b/ghc/GHCi/UI.hs @@ -223,7 +223,8 @@ ghciCommands = map mkCmd [ ("unadd", keepGoingPaths unAddModule, completeFilename), ("undef", keepGoing undefineMacro, completeMacro), ("unset", keepGoing unsetOptions, completeSetOptions), - ("where", keepGoing whereCmd, noCompletion) + ("where", keepGoing whereCmd, noCompletion), + ("instances", keepGoing' instancesCmd, completeExpression) ] ++ map mkCmdHidden [ -- hidden commands ("all-types", keepGoing' allTypesCmd), ("complete", keepGoing completeCmd), @@ -1780,6 +1781,19 @@ handleGetDocsFailure no_docs = do InteractiveName -> ProgramError msg ----------------------------------------------------------------------------- +-- :instances + +instancesCmd :: String -> InputT GHCi () +instancesCmd "" = + throwGhcException (CmdLineError "syntax: ':instances <type-you-want-instances-for>'") +instancesCmd s = do + handleSourceError GHC.printException $ do + ty <- GHC.parseInstanceHead s + res <- GHC.getInstancesForType ty + + printForUser $ vcat $ map ppr res + +----------------------------------------------------------------------------- -- :load, :add, :reload -- | Sets '-fdefer-type-errors' if 'defer' is true, executes 'load' and unsets |