Optim: ProducedReference: cache typearguments with defaults and only allocate new list if required
Optim: allocate collections with better initial count
Optim: ProducedType: if supertype is this type, fast path
Optim: Unit: fast-paths for Callable arguments