To illustrate the difference between constructors (mycons) and primitives (cons) we give an example:
What this example shows is that even though the constructed value (mycons (f x) 6) contains a dynamic (unknown) component (f x), the static component of the value can still be accessed and used for further specialization. This is not the case for the value constructed by cons. Notice also that although the value of (f x) is not used, it is still computed, since discarding the computation could be semantically unsound.