code: @Override
  	public Value caseAPlusPlusBinaryExp(APlusPlusBinaryExp node, Context ctxt)
  			throws AnalysisException
  	{
  		// breakpoint.check(location, ctxt);
  		node.getLocation().hit(); // Mark as covered
  
  		try
  		{
  			Value lv = node.getLeft().apply(VdmRuntime.getExpressionEvaluator(), ctxt).deref();
  			Value rv = node.getRight().apply(VdmRuntime.getExpressionEvaluator(), ctxt);
  
  			if (lv instanceof MapValue)
  			{
  				ValueMap lm = new ValueMap(lv.mapValue(ctxt));
  				ValueMap rm = rv.mapValue(ctxt);
  
  				for (Value k : rm.keySet())
  				{
  					lm.put(k, rm.get(k));
  				}
  
  				return new MapValue(lm);
  			} else
  			{
  				ValueList seq = lv.seqValue(ctxt);
  				ValueMap map = rv.mapValue(ctxt);
  				ValueList result = new ValueList(seq);
  
  				for (Value k : map.keySet())
  				{
  					int iv = (int) k.intValue(ctxt);
  
  					if (iv < 1 || iv > seq.size())
  					{
  						VdmRuntimeError.abort(node.getLocation(), 4025, "Map key not within sequence index range: "
  								+ k, ctxt);
  					}
  
  					result.set(iv - 1, map.get(k));
  				}
  
  				return new SeqValue(result);
  			}
  		} catch (ValueException e)
  		{
  			return VdmRuntimeError.abort(node.getLocation(), e);
  		}
  	}
docs: /*
  end numeric