Can we use GHC API or something else to load not text source modules, but AST expressions, similar to haskell-src-exts Exp type? This way we could save time for code generation and parsing.
Dynamic loading of Haskell abstract syntax expression
283 Views Asked by modular At
1
There are 1 best solutions below
Related Questions in HASKELL
- Typeclass projections as inheritance
- How to generate all possible matrices given a number n in Haskell
- Is there a way to get `cabal` to detect changes to non-Haskell source files?
- How to have fixed options using Option.Applicative in haskell?
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Automatic Jacobian matrix in Haskell
- Haskell writing to named pipe unexpectedly fails with `openFile: does not exist (No such device or address)`
- Why does Enum require to implement toEnum and fromEnum, if that's not enough for types larger than Int?
- Non-exhaustive patterns in function compress
- How to get terms names of GADT in Template Haskell?
- Implementing eval() function with Happy parser generator
- How to count the occurences of every element in a list in Haskell fast?
- In Haskell, what does `Con Int` mean?
- Extract a Maybe from a heterogeneous collection
- Haskell, Stack, importing module shows error "Module not found"
Related Questions in DYNAMIC-LOADING
- An analog of Assembly.LoadFrom for AssemblyLoadContext
- Dynamically loading _any_ assembly
- How to get interface from object loaded from AssemblyLoadContext
- Identifying which global variable is allocated by which shared library
- Do we have dynamic code loading and execution support in Ballaerina?
- Declare a Function to use in FunctionPass with New Pass Manager using llvm::PassInfoMixin in LLVM 15
- Statically linked executable with dynamic loading
- Appropriate approach for developing dynamically update-able Flutter app on Linux
- GDB skipping over the dynamic loader code
- Can I un-dynamicize a linked executable given a dynamic library?
- Flutter dynamic module loading
- Common mutex for shared library dynamic loading and thread_local initialization?
- How to load a microapp dynamically in angular 16
- Using dlopen and dlsym with a third party c++ library
- How can I compile my STM32F4 code to start executing from a custom RAM address?
Related Questions in GHC-API
- GHC API equivalent of adding a C/C++ file/object to the compilation
- How do I write code to modify the AST of a Haskell source file without losing the pragmas?
- GHC API: finding implementations of instance functions
- Parsing a Type using a GHC-Plugin
- Haskell: Can a function be compiled?
- Using GHC API to compile a program with optimisation
- Haskell, GHC 8: dynamically load/import module
- get the renamed (with fully qualified import) haskell AST using ghc api
- Using GHC API to compile Haskell sources to CORE and CORE to binary
- How to compile Haskell into the untyped lambda calculus (or GHC core)?
- Running Q Exp in a GhcMonad
- ghc-mtl fails to build with ghc-7.8
- Implementation tips for whole-program static analysis for Haskell
- Using the GHC API to do a "dry run" of code compilation
- Can I compile a haskell function from a string at runtime (using plugins)?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I don't think the GHC API exposes an AST interface (could be wrong though), but Template Haskell does. If you build expressions using the
Language.Haskell.THExpstructure, you can create functions/declarations and make use of them by the$(someTHFunction)syntax.A fairly major caveat is that TH only runs at compile time, so you would need to pre-generate everything. If you want to use TH at run-time, I think you'd need to pretty-print the template haskell AST, then use the GHC API on the resulting string.