(TypeInfer: TFunction, Obj), (Substitute: Function, Call) Complete, needs tested