free-compiler-0.3.0.0: A Haskell to Coq compiler.
This compiler converts Haskell code to Coq and Agda. Effectful Haskell code is modelled in Coq and Agda by applying a monadic transformation. We use the free monad for this purpose such that it is possible to reason about the code in an effect generic fashion. The Coq back end of the compiler can model sharing. The user can select at runtime between call-by-name, call-by-need and call-by-value semantics. The Agda back end is limited to call-by-name at the moment. This package is based on an early prototype developed at Flensburg University of Applied Sciences by Benedikt Jessen.
- FreeC
- Backend
- FreeC.Environment
- Frontend
- IR
- LiftedIR
- Monad
- FreeC.Pass
- FreeC.Pass.CompletePatternPass
- FreeC.Pass.DefineDeclPass
- FreeC.Pass.DependencyAnalysisPass
- FreeC.Pass.EffectAnalysisPass
- FreeC.Pass.EtaConversionPass
- FreeC.Pass.ExportPass
- FreeC.Pass.FlattenExprPass
- FreeC.Pass.ImplicitPreludePass
- FreeC.Pass.ImportPass
- FreeC.Pass.InlineLambdaPass
- FreeC.Pass.KindCheckPass
- FreeC.Pass.LetSortPass
- FreeC.Pass.PragmaPass
- FreeC.Pass.QualifierPass
- FreeC.Pass.ResolverPass
- FreeC.Pass.TypeInferencePass
- FreeC.Pass.TypeSignaturePass
- FreeC.Pipeline
- FreeC.Pretty
- Util