public static Task <Option <TThree> > Three <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour>(this IUnionTask <IUnionValue <UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour> > > union)
     where TUnionType : struct
     where TUnionDefinition : UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour>
 => union.Match(_ => Option.None <TThree>(), _ => Option.None <TThree>(), Option.Some, _ => Option.None <TThree>());
 public static Task <Option <TTwo> > Two <TUnionType, TUnionDefinition, TOne, TTwo>(this IUnionTask <IUnionValue <UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo> > > union)
     where TUnionType : struct
     where TUnionDefinition : UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo>
 => union.Match(_ => Option.None <TTwo>(), Option.Some);
 public static Task <Option <TEight> > Eight <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour, TFive, TSix, TSeven, TEight>(this IUnionTask <IUnionValue <UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour, TFive, TSix, TSeven, TEight> > > union)
     where TUnionType : struct
     where TUnionDefinition : UnionDefinitionBase <TUnionType, TUnionDefinition, TOne, TTwo, TThree, TFour, TFive, TSix, TSeven, TEight>
 => union.Match(_ => Option.None <TEight>(), _ => Option.None <TEight>(), _ => Option.None <TEight>(), _ => Option.None <TEight>(), _ => Option.None <TEight>(), _ => Option.None <TEight>(), _ => Option.None <TEight>(), Option.Some);
 public static Task <Option <TOne> > One <TUnionType, TUnionDefinition, TOne>(this IUnionTask <IUnionValue <UnionDefinitionBase <TUnionType, TUnionDefinition, TOne> > > union)
     where TUnionType : struct
     where TUnionDefinition : UnionDefinitionBase <TUnionType, TUnionDefinition, TOne>
 => union.Match(Option.Some);