public override Expression VisitArrayAccess(ArrayAccess acc)
 {
     var tmr = new TypedMemoryExpressionRewriter(prog);
     return tmr.RewriteArrayAccess(acc.TypeVariable, acc.Array, acc.Index);
 }
		public override Expression VisitSegmentedAccess(SegmentedAccess access)
		{
			var tmer = new TypedMemoryExpressionRewriter(prog);
			return tmer.Rewrite(access);
		}
 public override Expression VisitMemoryAccess(MemoryAccess access)
 {
     var tmer = new TypedMemoryExpressionRewriter(program);
     return tmer.Rewrite(access);
 }