typename UnaryReturn<ILattice<T1,N>, FnRealTrace>::Type_t  d;  for(int i=0; i < N; ++i) d.elem(i) = trace_real(s1.elem(i)); return d;
return trace_real(s1.elem());
trace_real(const ILattice<T1,N>& s1){  typename UnaryReturn<ILattice<T1,N>, FnRealTrace>::Type_t  d;  for(int i=0; i < N; ++i)    d.elem(i) = trace_real(s1.elem(i));  return d;}