Use custom short list type
Mark ShortList functions as inlinable
Make TreeList strict
Make TreeList functions inlinable
Partially convert the type inferencer to use lenses
Correct GHC flags, use lenses in substitute
Enable rtsopts in non-profiling mode, don't avoid fmap
Remove all direct uses of constructor fields in type inferencer
Add Functor, Foldable, and Traversable instances for ShortList
Add childList and childList' functions
Remove residual constructor use
Make merge take RNodes
Remove the STRef from varType
Make symbol and varType strict
Reduce string allocation
Pull splitNodes into the where block of commonFrontier
Fuse ithChildren and splitNodes
Make splitIthChildren use direct recursion
Remove use of lists from goChild and splitIthChildren
Remove STRef from Term stage