Use ScopedTypeVariables
Apply η after fmap
Implement 'hoist' for ProgramT
Renaming