position_in_source returns a hash, merge! is from hash. Alternative is to have a position_in_source that can override the setting of value. Would like to address this after also dealing with PR #1660.