Embedding Functional Logic Programming in Haskell via a Compiler Plugin
summary
Claims an embedding of a functional-logic language into Haskell by a GHC plugin that performs a monadic lifting transformation after typechecking, preserving Haskell typing and IDE errors. The implementation includes an import-constraint solver to reconcile types across compiled modules, supports about 19 common GHC extensions, and ships a prototype on GitHub. Call-time choice handling is deferred, performance varies with the chosen monad (the Curry monad is competitive), and limitations include Haskell syntax bounds and only standard monads supported.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 0:46Nondeterministic Choice Operator
- 10:26Interface
- 12:01Idea
- 13:43Example
- 14:28How does it work
- 15:11Type checking
- 16:06Import check
- 17:47Import constraint solver
- 19:57Language extensions
- 21:02Example program
- 21:46Embedding other languages
- 24:18Conclusion
related talks
49mCompile-time Logic Programming in Scala: what for?
45mLogic Meta Programming for Functional Languages
34mLiquid Haskell: Verification with Refinement Types
20mFluent APIs in Functional Languages
19mExtensible Metatheory Mechanization via Family Polymorphism
19mType Inference Logics
41mThe Dialectics of Type-Level Programming
46mRefinement Types from Light to Deep Verification
