Name: hermit Version: 1.0.0.0 x-revision: 2 Synopsis: Haskell Equational Reasoning Model-to-Implementation Tunnel Description: HERMIT is a Haskell-specific toolkit designed to mechanize equational reasoning and program transformation during compilation in GHC. . Examples can be found in the examples sub-directory. . @ $ cd examples/reverse @ . Example of running a script. . @ $ hermit Reverse.hs Reverse.hss resume [starting HERMIT v1.0.0.0 on Reverse.hs] % ghc Reverse.hs -fforce-recomp -O2 -dcore-lint -fexpose-all-unfoldings -fsimple-list-literals -fplugin=HERMIT -fplugin-opt=HERMIT:Main:Reverse.hss -fplugin-opt=HERMIT:Main:resume [1 of 2] Compiling HList ( HList.hs, HList.o ) Loading package ghc-prim ... linking ... done. ... Loading package hermit-1.0.0.0 ... linking ... done. [2 of 2] Compiling Main ( Reverse.hs, Reverse.o ) Linking Reverse ... $ ./Reverse .... @ . Example of interactive use. . @ $ hermit Reverse.hs [starting HERMIT v1.0.0.0 on Reverse.hs] % ghc Reverse.hs -fforce-recomp -O2 -dcore-lint -fexpose-all-unfoldings -fsimple-list-literals -fplugin=HERMIT -fplugin-opt=HERMIT:*: [1 of 2] Compiling HList ( HList.hs, HList.o ) Loading package ghc-prim ... linking ... done. ... Loading package hermit-1.0.0.0 ... linking ... done. [2 of 2] Compiling Main ( Reverse.hs, Reverse.o ) ===================== Welcome to HERMIT ===================== HERMIT is a toolkit for the interactive transformation of GHC core language programs. Documentation on HERMIT can be found on the HERMIT web page at: http:\/\/www.ittc.ku.edu\/csdl\/fpg\/software\/hermit.html . You have just loaded the interactive shell. To exit, type \"abort\" or \"resume\" to abort or resume GHC compilation. . Type \"help\" for instructions on how to list or search the available HERMIT commands. . To get started, you could try the following: \ \ - type \"binding-of 'foo\", where \"foo\" is a function \ \ \ \ defined in the module; \ \ - type \"set-pp-type Show\" to switch on typing information; \ \ - use natural numbers such as \"0\" and \"1\" to descend into \ \ \ \ the definition, and \"up\" to ascend; \ \ - type \"info\" for more information about the current node; \ \ - type \"log\" to display an activity log. ============================================================= module main:Main where \ \ rev ∷ ∀ a . [a] -> [a] \ \ unwrap ∷ ∀ a . ([a] -> [a]) -> [a] -> H a \ \ wrap ∷ ∀ a . ([a] -> H a) -> [a] -> [a] \ \ main ∷ IO () \ \ main ∷ IO () hermit\<0\> ... @ . To resume compilation, use resume. . @ ... hermit\<0\> resume hermit\<0\> Linking Reverse ... $ @ Category: Language, Formal Methods, Optimization, Transformation, Refactoring, Reflection License: BSD3 License-file: LICENSE Author: Andrew Farmer, Andy Gill, Ed Komp, Neil Sculthorpe Maintainer: Andrew Farmer Stability: beta build-type: Simple Cabal-Version: >= 1.14 extra-source-files: README.md examples/concatVanishes/ConcatVanishes.hss examples/concatVanishes/Flatten.hs examples/concatVanishes/Flatten.hss examples/concatVanishes/HList.hs examples/concatVanishes/QSort.hs examples/concatVanishes/QSort.hss examples/concatVanishes/Rev.hs examples/concatVanishes/Rev.hss examples/evaluation/Eval.hs examples/evaluation/Eval.hss examples/factorial/Fac.hs examples/factorial/Fac.hss examples/fib-stream/Fib.hs examples/fib-stream/Fib.hss examples/fib-stream/Nat.hs examples/fib-stream/Stream.hs examples/fib-tuple/Fib.hs examples/fib-tuple/Fib.hss examples/flatten/HList.hs examples/flatten/Flatten.hs examples/flatten/Flatten.hec examples/hanoi/Hanoi.hs examples/hanoi/Hanoi.hss examples/last/Last.hs examples/last/Last.hss examples/last/NewLast.hss examples/mean/Mean.hs examples/mean/Mean.hss examples/nub/Nub.hs examples/nub/Nub.hss examples/qsort/HList.hs examples/qsort/QSort.hs examples/qsort/QSort.hss examples/reverse/HList.hs examples/reverse/Reverse.hs examples/reverse/Reverse.hss examples/new_reverse/HList.hs examples/new_reverse/Reverse.hs examples/new_reverse/Reverse.hec Library ghc-options: -Wall Build-Depends: base >= 4 && < 5, ansi-terminal >= 0.5.5, array, base-compat >= 0.8.1, containers >= 0.5.0.0, data-default-class >= 0.0.1, directory >= 1.2.0.0, ghc == 7.8.* || == 7.10.1, haskeline >= 0.7.0.3, kure >= 2.16.8 && < 3.0, marked-pretty >= 0.1, mtl >= 2.1.2, process >= 1.1.0.2, stm >= 2.4, temporary >= 1.2.0.3, transformers >= 0.2, transformers-compat >= 0.4 if os(windows) build-depends: Win32 else build-depends: terminfo >= 0.3.2.5 build-tools: alex >= 3.1.3, happy >= 1.19.3 default-language: Haskell2010 Exposed-modules: HERMIT HERMIT.Context HERMIT.Core HERMIT.Dictionary HERMIT.Driver HERMIT.Dictionary.AlphaConversion HERMIT.Dictionary.Common HERMIT.Dictionary.Composite HERMIT.Dictionary.Debug HERMIT.Dictionary.FixPoint HERMIT.Dictionary.Fold HERMIT.Dictionary.Function HERMIT.Dictionary.GHC HERMIT.Dictionary.Induction HERMIT.Dictionary.Inline HERMIT.Dictionary.Kure HERMIT.Dictionary.Local HERMIT.Dictionary.Local.Bind HERMIT.Dictionary.Local.Case HERMIT.Dictionary.Local.Cast HERMIT.Dictionary.Local.Let HERMIT.Dictionary.Navigation HERMIT.Dictionary.Navigation.Crumbs HERMIT.Dictionary.New HERMIT.Dictionary.Query HERMIT.Dictionary.Reasoning HERMIT.Dictionary.Remembered HERMIT.Dictionary.Rules HERMIT.Dictionary.Undefined HERMIT.Dictionary.Unfold HERMIT.Dictionary.Unsafe HERMIT.Dictionary.WorkerWrapper.Common HERMIT.Dictionary.WorkerWrapper.Fix HERMIT.Dictionary.WorkerWrapper.FixResult HERMIT.External HERMIT.GHC HERMIT.GHC.Typechecker HERMIT.Kernel HERMIT.Kure HERMIT.Kure.Universes HERMIT.Lemma HERMIT.Monad HERMIT.Name HERMIT.Parser HERMIT.ParserCore HERMIT.ParserType HERMIT.Plugin HERMIT.Plugin.Builder HERMIT.Plugin.Display HERMIT.Plugin.Renderer HERMIT.Plugin.Types HERMIT.PrettyPrinter.AST HERMIT.PrettyPrinter.Clean HERMIT.PrettyPrinter.Common HERMIT.PrettyPrinter.GHC HERMIT.Shell.Command HERMIT.Shell.Completion HERMIT.Shell.Dictionary HERMIT.Shell.Interpreter HERMIT.Shell.Externals HERMIT.Shell.KernelEffect HERMIT.Shell.ScriptToRewrite HERMIT.Shell.ShellEffect HERMIT.Shell.Proof HERMIT.Shell.Types HERMIT.Utilities HERMIT.Libraries.Int Other-modules: HERMIT.Syntax Paths_hermit if os(windows) Other-modules: HERMIT.Win32.Console HERMIT.Win32.IO Hs-Source-Dirs: src Executable hermit Build-Depends: base >= 4 && < 5, hermit default-language: Haskell2010 Main-Is: Main.hs Hs-Source-Dirs: driver Ghc-Options: -Wall source-repository head type: git location: git://github.com/ku-fpg/hermit.git