+hardware description languages such as \VHDL. What gives functional languages
+as hardware description languages their merits is the fact that basic
+combinatorial circuits are equivalent to mathematical function, and that
+functional languages lend themselves very well to describe and compose these
+mathematical functions.
+
+In an attempt to decrease the amount of work involved with creating all the
+required tooling, such as parsers and type-checkers, many functional hardware
+description languages are embedded as a domain specific language inside the
+functional language Haskell \cite{Hydra,Hawk1,Lava,ForSyDe1,Wired}. What this
+means is that a developer is given a library of Haskell functions and types
+that together form the language primitives of the domain specific language.
+Using these functions, the designer does not only describes a circuit, but
+actually builds a large domain-specific datatype which can be further
+processed by an embedded compiler. This compiler actually runs in the same
+environment as the description; as a result compile-time and run-time become
+hard to define, as the embedded compiler is usually compiled by the same
+Haskell compiler as the circuit description itself.
+
+The approach taken in this research is not to make another domain specific
+language embedded in Haskell, but to use (a subset) of the Haskell language
+itself to be used as hardware description language. By taking this approach,
+we can capture certain language constructs, such as Haskell's choice elements
+(if-statement, case-statment, etc.), which are not available in the functional
+hardware description languages that are embedded in Haskell. As far as the
+authors know, such extensive support for choice-elements is new in the domain
+of functional hardware description language. As the hardware descriptions are
+plain Haskell functions, these descriptions can be compiled for simulation
+using using the optimizing Haskell compiler \GHC.
+
+Like the standard hardware description languages, descriptions made in a
+functional hardware description languages must eventually be converted into a
+netlist. This research also features an a prototype translater called \CLaSH\
+(pronounced: Clash), which converts the Haskell code to equivalently behaving synthesizable \VHDL\ code, ready to be converted to an actual netlist format by optimizing \VHDL\ synthesis tools.