abstract TestVarsA = { cat S; fun f : S -> S; a : S; }