Mixing Infinite and Finite Lists
In the Cat compiler, I wanted to optimize how I handled the various list representation. Different list constructors constructed different internal representations, that would minimize the overhead of construction.
Depending on how a list was represented

