typename UnaryReturn<OLattice<T1>, FnPeekSite>::Type_t  dest;  int i      = Layout::linearSiteIndex(coord); int iouter = i >> INNER_LOG; int iinner = i & ((1 << INNER_LOG)-1);  dest.elem() = getSite(l.elem(iouter), iinner); return dest;
typedef OLattice<T1> C1;  return peekSite(C1(l), coord);
peekSite(const OLattice<T1>& l, const multi1d<int>& coord){  typename UnaryReturn<OLattice<T1>, FnPeekSite>::Type_t  dest;  int i      = Layout::linearSiteIndex(coord);  int iouter = i >> INNER_LOG;  int iinner = i & ((1 << INNER_LOG)-1);  dest.elem() = getSite(l.elem(iouter), iinner);  return dest;}