Equals is based on val field only.
@override bool operator ==(Object that) => that is HRef && this.val == that.val;