remove bogus path in FFI example
Fix make_discarding_first_sequence

Ensure that the first expression is single valued.
Remove dead code after errors

For example, reduce (begin x (error 'e) y) ==> (begin x (error 'e)) and
(f (error 'e) y ) ==> (begin f (error 'e)).

Also, reduce (if (error 'e) x y) ==> (error 'e) and propagate the type information
and clocks when only one branch produce an error.
Fix is_arity_list
Check more disjoint types