using System.Collections;
using System.Threading.Tasks;
public static async Task Main()
Console.WriteLine(DateTime.UtcNow.ToString("o2"));
struct StructuralEquatableWrapper : IEquatable<IStructuralEquatable> {
private readonly IStructuralEquatable target;
internal StructuralEquatableWrapper(IStructuralEquatable target) {
public bool Equals(IStructuralEquatable? other) {
return StructuralComparisons.StructuralEqualityComparer.Equals(target, other);
public override bool Equals(object? obj) {
if (obj is IStructuralEquatable typed) {
public override readonly int GetHashCode() {
return target.GetHashCode();
public static bool operator ==(StructuralEquatableWrapper self, IStructuralEquatable other) {
return self.Equals(other);
public static bool operator !=(StructuralEquatableWrapper self, IStructuralEquatable other) {
return !self.Equals(other);