static bool Equals(Seq <X> s1, Seq <X> s2) { if (s1.IsEmpty && s2.IsEmpty) { return(true); } if (s1.IsUnbounded || s1.IsUnbounded) { return(false); } var _l1 = s1.AsArray(); var _l2 = s2.AsArray(); if (_l1.Length != _l2.Length) { return(false); } for (var i = 0; i < _l2.Length; i++) { var left = _l1[i]; var right = _l2[i]; var same = Equals(left, right); if (not(same)) { return(false); } } return(true); }