Commit last changes, though they are broken. Going to be rewritten anyway.
Refactor implementation to separate concerns. Introduce 'newPulse' to replace the former 'fromAddHandler'.
Move modules 'Internal0' stuff to a new module prefix 'Prim'.
Major change to the implementation of 'Latch', to support recursion better.
Add cache functionality to the 'Build' monad.
Change type of 'compile' to build on existing 'Network'.
Minor additions to public API in Reactive.Banana.Prim
Fix observable sharing for 'newPulse' by introducing a 'Key a' argument. Rename it to 'newInput'.
Add dynamic event switching primitives to 'Reactive.Banana.Prim' API.
Rework output handling.

Remove 'tagFuture' combinator and tie-the-knot evaluation.
Remove 'grOutput' from graph type.
Add new node type 'Output' as a possible child for a pulse in the evaluation order.
Add 'addHandlerLatch' function that can sample updated latch values.
Update infrastructure for memory profiling.

Confirm that there is no space leak when using 'accumL'.
Update API for 'Prim.Dependencies'.
Proper implementation of 'Prim.Order' so that we finally have a push-driven implementation that can handle dynamic event switching.
Remove incorrect 'size' function.
Fix queue implementation to avoid duplicate elements.

Test queue by adding a test case for the 'traverseDependencies' function.
'Reactive.Banana.Prim' now uses the new push-driven implementation.
Fix erroneus implementation of 'switchP'.
Test cases now successfully work with the new 'Prim' combinators.

The 'changes' function is now broken.

The package now exports the new primitive combinators and the combinators needed for caching.
Remove the deprecated 'liftIONow' function.
Update changelog.