return l.elem() ^ r.elem();
typename BinaryReturn<ILattice<T1,N>, IScalar<T2>, OpBitwiseXor>::Type_t  d;  for(int i=0; i < N; ++i) d.elem(i) = l.elem(i) ^ r.elem(); return d;
operator^(const IScalar<T1>& l, const IScalar<T2>& r){  return l.elem() ^ r.elem();}