in more recent versions, LLVM (formerly Low Level Virtual Machine) bitcode. GHC has become the de facto standard Haskell dialect. There are libraries (e.g., bindings to OpenGL) that work only with GHC. GHC was also distributed with the Haskell platform. Jhc, a Haskell compiler written by John Meacham, emphasizes speed and efficiency of generated programs and exploring new program transformations. Ajhc is a fork of Jhc. The Utrecht Haskell Compiler (UHC) is a Haskell implementation from Utrecht University. It supports almost all Haskell 98 features plus many experimental extensions. It is implemented using attribute grammars and is currently used mostly for research on generated type systems and language extensions. Implementations no longer actively maintained include: The Haskell User's Gofer System (Hugs) is a bytecode interpreter. It was once one of the implementations used most widely, alongside the GHC compiler, but has now been mostly replaced by GHCi. It also comes with a graphics library. HBC is an early implementation supporting Haskell 1.4. It was implemented by Lennart Augustsson in, and based on, Lazy ML. It has not been actively developed for some time. nhc98 is a bytecode compiler focusing on minimizing memory use. The York Haskell Compiler (Yhc) was a fork of nhc98, with the goals of being simpler, more portable and efficient, and integrating support for Hat, the Haskell tracer. It also had a JavaScript backend, allowing users to run Haskell programs in web browsers. Implementations not fully Haskell 98 compliant, and using a variant Haskell language, include: Eta and Frege are dialects of Haskell targeting the Java Virtual Machine. Gofer was an educational dialect of Haskell, with a feature called constructor classes, developed by Mark Jones. It was supplanted by Hugs (Haskell User's Gofer System). Helium, a newer dialect of Haskell. The focus is on making learning easier via clearer error messages. It currently lacks full support for type classes, rendering it incompatible with many Haskell programs. Notable applications The proof assistant Agda is written in Haskell. Cabal is a tool for building and packaging Haskell libraries and programs. Darcs is a revision control system written in Haskell, with several innovative features, such as more precise control of patches to apply. GHC is also often a testbed for advanced functional programming features and optimizations in other programming languages. Git-annex is a tool to manage (big) data files under Git version control. It also provides a distributed file synchronization