Func with fespace argument

Is it possible to define a function that takes as input a fespace type of variable?
take as example this synthetic code:

varf a(u,v) = int2d(Th[i]) (dx(u)*dx(v) + dy(u)*dy(v));
func matrix aa(fespace Xh1, fespace Xh2){
return a(Xh1, Xh2);
};
A = aa(Vh1, Vh1); //a(Vh1, Vh1);