+Many functional hardware description languages have been developed over the
+years. Early work includes such languages as \textsc{$\mu$fp}~\cite{muFP}, an
+extension of Backus' \textsc{fp} language to synchronous streams, designed
+particularly for describing and reasoning about regular circuits. The
+Ruby~\cite{Ruby} language uses relations, instead of functions, to describe
+circuits, and has a particular focus on layout. \textsc{hml}~\cite{HML2} is a
+hardware modeling language based on the strict functional language
+\textsc{ml}, and has support for polymorphic types and higher-order functions.
+Published work suggests that there is no direct simulation support for
+\textsc{hml}, and that the translation to \VHDL\ is only partial.
+
+Like this work, many functional hardware description languages have some sort
+of foundation in the functional programming language Haskell.
+Hawk~\cite{Hawk1} uses Haskell to describe system-level executable
+specifications used to model the behavior of superscalar microprocessors. Hawk
+specifications can be simulated, but there seems to be no support for
+automated circuit synthesis. The ForSyDe~\cite{ForSyDe2} system uses Haskell
+to specify abstract system models, which can (manually) be transformed into an
+implementation model using semantic preserving transformations. ForSyDe has
+several simulation and synthesis backends, though synthesis is restricted to
+the synchronous subset of the ForSyDe language.
+
+Lava~\cite{Lava} is a hardware description language that focuses on the
+structural representation of hardware. Besides support for simulation and
+circuit synthesis, Lava descriptions can be interfaced with formal method
+tools for formal verification. Lava descriptions are actually circuit
+generators when viewed from a synthesis viewpoint, in that the language
+elements of Haskell, such as choice, can be used to guide the circuit
+generation. If a developer wants to insert a choice element inside an actual
+circuit he will have to specify this explicitly as a component. In this
+respect \CLaSH\ differs from Lava, in that all the choice elements, such as
+case-statements and patter matching, are synthesized to choice elements in the
+eventual circuit. As such, richer control structures can both be specified and
+synthesized in \CLaSH\ compared to any of the languages mentioned in this
+section.
+
+The merits of polymorphic typing, combined with higher-order functions, are
+now also recognized in the `main-stream' hardware description languages,
+exemplified by the new \VHDL\ 2008 standard~\cite{VHDL2008}. \VHDL-2008 has
+support to specify types as generics, thus allowing a developer to describe
+polymorphic components. Note that those types still require an explicit
+generic map, whereas type-inference and type-specialization are implicit in
+\CLaSH.
+
+Wired~\cite{Wired},, T-Ruby~\cite{T-Ruby}, Hydra~\cite{Hydra}.
+
+A functional language designed specifically for hardware design is
+$re{\mathit{FL}}^{ect}$~\cite{reFLect}, which draws experience from earlier
+language called \textsc{fl}~\cite{FL} to la