= Hets: source code and information for developers = You should start to learn about Hets by looking at the (nightly generated) [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/daily/Hets/docs overview] or (if missing) a [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/versions/Hets/docs recent overview of the modules] of Hets. The page [wiki:DebuggingAndTestingHets Debugging and testing Hets] explains how to play around with the internals of Hets. Please follow the sample ghci session there to get familiar with the central datastructures of Hets. Hets is written in [http://www.haskell.org Haskell], and is compiled using [http://www.haskell.org/ghc GHC] using a couple of [http://www.haskell.org/ghc/docs/latest/html/users_guide/ghc-language-features.html language extensions]. Among the Haskell [http://haskell.org/haskellwiki/Books_and_tutorials books and tutorials] we recommend [http://book.realworldhaskell.org/ Reall World Haskell]. The [http://haskell.org/onlinereport language definition] covers the Haskell98 standard which we are supposed to stick to in most cases. Make sure that you are familiar with at least the most common [http://haskell.org/onlinereport/prelude-index.html library functions of the Prelude]. For searching or looking up any [http://haskell.org/ghc/docs/latest/html/libraries library functions] you may also try [http://haskell.org/hoogle Hoogle]. The formal background and the general structure of Hets is described in chapter 7 of [http://www.informatik.uni-bremen.de/~till/papers/habil.ps Heterogeneous specification and the heterogeneous tool set]. Also look into [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/versions/Hets/README README], [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/versions/Hets/INSTALL INSTALL], [http://haskell.org/haskellwiki/Programming_guidelines programming guidelines], [http://haskell.org/haskellwiki/Things_to_avoid things to avoid in Haskell]. The sources of the Hets project are available as tarball: [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/versions release versions], [http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/src-distribution/daily daily version], or in the [http://trac.informatik.uni-bremen.de:8080/hets/browser/trunk svn repository Hets]. Access to the latter can be obtained [wiki:RepositoryAccess here]. You also need to check out the uni repository (via "`svn co https://svn-agbkb.informatik.uni-bremen.de/uni/trunk uni`") and possibly [http://ogi.altocumulus.org/~hallgren/Programatica/cvs.html programatica]. In order to compile the uni sources (via `./configure` and "`make cabal`") uDrawGraph [http://www.informatik.uni-bremen.de/uDrawGraph/] must be installed first. Also have a look at the current ReleaseNotes and the InteractiveTests we check for the next release. If you want to participate in the Hets development, please tell us via our [http://www.informatik.uni-bremen.de/mailman/listinfo/hets-devel mailing list] for Hets developers. This mailing list can also be read via [http://news.gmane.org/gmane.comp.lang.hets.devel]. The dependencies of the top-level hets directories and ghc modules: [[Image(http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/dependencyGraph.png)]]