abstract MicroAbs = { cat S; fun vars : S; }