<PackageReference Include="System.Reactive" Version="6.0.0" />

Either<TLeft, TRight>

abstract class Either<TLeft, TRight>
public sealed class Left<TLeft, TRight> : Either<TLeft, TRight>, IEquatable<Left<TLeft, TRight>>

public sealed class Right<TLeft, TRight> : Either<TLeft, TRight>, IEquatable<Right<TLeft, TRight>>

public static Either<TLeft, TRight> CreateLeft(TLeft value)

public static Either<TLeft, TRight> CreateRight(TRight value)

public abstract TResult Switch<TResult>(Func<TLeft, TResult> caseLeft, Func<TRight, TResult> caseRight)

public abstract void Switch(Action<TLeft> caseLeft, Action<TRight> caseRight)