possible, though it will still stay a challenge. Further advances in
dependent typing support for Haskell will probably help here as well.
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
\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.
to make this set complete, or at least define the constraints on possible
recursion which guarantee it will work.
In this example, we see that every function takes an input of type
\hs{Event}. The function \hs{main} that takes the output of
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
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
decides what to do depending on the current input event.
A slightly more complex example that shows a system with two clock domains.
decides what to do depending on the current input event.
A slightly more complex example that shows a system with two clock domains.