First draft of generalization: TVar still includes origin, which is causing problems.