|
Language.Haskell.Interpreter | Portability | non-portable (GHC API) | Stability | experimental | Maintainer | jcpetruzza@gmail.com |
|
|
|
|
|
Description |
A Haskell interpreter built on top of the GHC API
|
|
Synopsis |
|
|
|
|
The interpreter monad transformer
|
|
|
| Methods | fromSession :: FromSession m a | Source |
| | modifySessionRef :: ModifySessionRef m a | Source |
| | |
| | Instances | |
|
|
|
Instances | |
|
|
|
|
Running the interpreter
|
|
|
Executes the interpreter. Returns Left InterpreterError in case of error.
|
|
Interpreter options
|
|
|
|
|
|
|
|
|
Retrieves the value of an option.
|
|
|
Use this function to set or modify the value of any option. It is
invoked like this:
set [opt1 := val1, opt2 := val2,... optk := valk] |
|
|
Language extensions in use by the interpreter.
Default is: [] (i.e. none, pure Haskell 98)
|
|
|
List of the extensions known by the interpreter.
|
|
|
List of extensions turned on when the -fglasgow-exts flag is used
|
|
|
This represents language extensions beyond Haskell 98 that are
supported by some implementations, usually in some special mode.
| Constructors | OverlappingInstances | | UndecidableInstances | | IncoherentInstances | | RecursiveDo | | ParallelListComp | | MultiParamTypeClasses | | NoMonomorphismRestriction | | FunctionalDependencies | | Rank2Types | | RankNTypes | | PolymorphicComponents | | ExistentialQuantification | | ScopedTypeVariables | | PatternSignatures | Deprecated, use ScopedTypeVariables instead.
| ImplicitParams | | FlexibleContexts | | FlexibleInstances | | EmptyDataDecls | | CPP | | KindSignatures | | BangPatterns | | TypeSynonymInstances | | TemplateHaskell | | ForeignFunctionInterface | | Arrows | | Generics | | NoImplicitPrelude | | NamedFieldPuns | | PatternGuards | | GeneralizedNewtypeDeriving | | ExtensibleRecords | | RestrictedTypeSynonyms | | HereDocuments | | MagicHash | | TypeFamilies | | StandaloneDeriving | | UnicodeSyntax | | UnliftedFFITypes | | LiberalTypeSynonyms | | TypeOperators | | RecordWildCards | | RecordPuns | | DisambiguateRecordFields | | OverloadedStrings | | GADTs | | NoMonoPatBinds | | RelaxedPolyRec | | ExtendedDefaultRules | | UnboxedTuples | | DeriveDataTypeable | | ConstrainedClassMethods | | PackageImports | Allow imports to be qualified by the package name that the module
is intended to be imported from, e.g.
import "network" Network.Socket
| ImpredicativeTypes | | NewQualifiedOperators | | PostfixOperators | | QuasiQuotes | | TransformListComp | | ViewPatterns | | XmlSyntax | Allow concrete XML syntax to be used in expressions and patterns,
as per the Haskell Server Pages extension language:
http://www.haskell.org/haskellwiki/HSP. The ideas behind it are
discussed in the paper Haskell Server Pages through Dynamic Loading
by Niklas Broberg, from Haskell Workshop '05.
| RegularPatterns | Allow regular pattern matching over lists, as discussed in the
paper Regular Expression Patterns by Niklas Broberg, Andreas Farre
and Josef Svenningsson, from ICFP '04.
| UnknownExtension String | |
| Instances | |
|
|
|
When set to True, every module in every available package is implicitly
imported qualified. This is very convenient for interactive
evaluation, but can be a problem in sandboxed environments
(e.g. System.Unsafe.unsafePerformIO is in scope).
Default value is True.
Observe that due to limitations in the GHC-API, when set to False, the
private symbols in interpreted modules will not be in scope.
|
|
|
|
|
|
Context handling
|
|
|
Module names are _not_ filepaths.
|
|
|
Tries to load all the requested modules from their source file.
Modules my be indicated by their ModuleName (e.g. "My.Module") or
by the full path to its source file.
The interpreter is reset both before loading the modules and in the event
of an error.
|
|
|
Returns the list of modules loaded with loadModules.
|
|
|
Sets the modules whose context is used during evaluation. All bindings
of these modules are in scope, not only those exported.
Modules must be interpreted to use this function.
|
|
|
Sets the modules whose exports must be in context.
Warning: setImports and setImportsQ are mutually exclusive.
If you have a list of modules to be used qualified and another list
unqualified, then you need to do something like
setImportsQ ((zip unqualified $ repeat Nothing) ++ qualifieds)
|
|
|
Sets the modules whose exports must be in context; some
of them may be qualified. E.g.:
setImports [(Prelude, Nothing), (Data.Map, Just M)].
Here, map will refer to Prelude.map and M.map to Data.Map.map.
|
|
|
All imported modules are cleared from the context, and
loaded modules are unloaded. It is similar to a :load in
GHCi, but observe that not even the Prelude will be in
context after a reset.
|
|
Module querying
|
|
|
Constructors | | Instances | |
|
|
|
An Id for a class, a type constructor, a data constructor, a binding, etc
|
|
|
|
|
|
|
Gets an abstract representation of all the entities exported by the module.
It is similar to the :browse command in GHCi.
|
|
Type inference
|
|
|
Returns a string representation of the type of the expression.
|
|
|
Tests if the expression type checks.
|
|
|
Returns a string representation of the kind of the type expression.
|
|
Evaluation
|
|
|
Evaluates an expression, given a witness for its monomorphic type.
|
|
|
|
|
Convenience functions to be used with interpret to provide witnesses.
Example:
interpret "head [True,False]" (as :: Bool) interpret "head $ map show [True,False]" infer >>= flip interpret (as :: Bool)
|
|
|
eval expr will evaluate show expr.
It will succeed only if expr has type t and there is a Show
instance for t.
|
|
Error handling
|
|
|
Constructors | UnknownError String | | WontCompile [GhcError] | | NotAllowed String | | GhcException String | GhcExceptions from the underlying GHC API are caught
and rethrown as this.
|
| Instances | |
|
|
|
Constructors | | Instances | |
|
|
Miscellaneous
|
|
|
Version of the underlying ghc api. Values are:
- 606 for GHC 6.6.x
- 608 for GHC 6.8.x
- 610 for GHC 6.10.x
- etc...
|
|
module Control.Monad.Trans |
|
Produced by Haddock version 2.6.0 |