public void SetRawValue(ObjectPath path, object value, EvaluationOptions options)
        {
            if (path.Length != 2)
            {
                throw new NotSupportedException();
            }

            int[] idx = StringToIndices(path [1]);

            EvaluationContext cctx = ctx.WithOptions(options);

            ValueModificationUtil.ModifyValueFromRaw(cctx, value, val => array.SetElement(idx, val));
        }
        protected virtual void SetRawValue(ObjectPath path, object value, EvaluationOptions options)
        {
            var ctx = GetContext(options);

            ValueModificationUtil.ModifyValueFromRaw(ctx, value, val => SetValue(ctx, val));
        }