possible, though it will still stay a challenge. Further advances in
dependent typing support for Haskell will probably help here as well.
-TODO: Reference Christiaan and other type-level work
-(http://personal.cis.strath.ac.uk/conor/pub/she/)
+\todo{Reference Christiaan and other type-level work
+(http://personal.cis.strath.ac.uk/conor/pub/she/)}
\item For all recursion, there is the obvious challenge of deciding when
recursion is finished. For list recursion, this might be easier (Since the
base case of the recursion influences the type signatures). For general
to make this set complete, or at least define the constraints on possible
recursion which guarantee it will work.
-TODO: Reference Christian for loop unrolling
+\todo{Reference Christian for loop unrolling?}
\stopitemize
\section{Multiple clock domains and asynchronicity}
func inp _ = inp * 2 + 3
\stophaskell
-TODO: Picture
+\todo{Picture}
In this example, we see that every function takes an input of type
\hs{Event}. The function \hs{main} that takes the output of
because they rely on the the caller to select the clock signal.
This structure is similar to the event handling structure used to perform I/O
-in languages like Amanda. TODO: Ref. There is a top level case expression that
+in languages like Amanda. \todo{ref} There is a top level case expression that
decides what to do depending on the current input event.
A slightly more complex example that shows a system with two clock domains.
particular state variable. This separation is probably a non-trivial problem,
though.
-TODO: Reference "Definitional interpreters for higher-order programming
+\todo{Reference "Definitional interpreters for higher-order programming
languages":
-http://portal.acm.org/citation.cfm?id=805852\&dl=GUIDE\&coll=GUIDE\&CFID=58835435\&CFTOKEN=81856623
+http://portal.acm.org/citation.cfm?id=805852\&dl=GUIDE\&coll=GUIDE\&CFID=58835435\&CFTOKEN=81856623}
\section{New language}
During the development of the prototype, it has become clear that Haskell is