mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
fix: adjust IO generation code
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@@ -22,9 +22,11 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
A "github.com/IBM/fp-go/v2/array"
|
||||
C "github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
// Deprecated:
|
||||
func generateNestedCallbacks(i, total int) string {
|
||||
var buf strings.Builder
|
||||
for j := i; j < total; j++ {
|
||||
@@ -40,6 +42,14 @@ func generateNestedCallbacks(i, total int) string {
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
func generateNestedCallbacksPlain(i, total int) string {
|
||||
fs := A.MakeBy(total-i, func(j int) string {
|
||||
return fmt.Sprintf("func(T%d)", j+i+1)
|
||||
})
|
||||
ts := A.Of(tupleTypePlain("T")(total))
|
||||
return joinAll(" ")(fs, ts)
|
||||
}
|
||||
|
||||
func generateContextReaderIOEitherTraverseTuple(suffix string) func(f, fg *os.File, i int) {
|
||||
return func(f, fg *os.File, i int) {
|
||||
// tupleT type
|
||||
|
52
v2/cli/io.go
52
v2/cli/io.go
@@ -30,22 +30,18 @@ func nonGenericIO(param string) string {
|
||||
return fmt.Sprintf("IO[%s]", param)
|
||||
}
|
||||
|
||||
func genericIO(param string) string {
|
||||
return fmt.Sprintf("func() %s", param)
|
||||
}
|
||||
|
||||
var extrasIO = A.Empty[string]()
|
||||
|
||||
func generateIOSequenceT(f, fg *os.File, i int) {
|
||||
generateGenericSequenceT(nonGenericIO, genericIO, extrasIO)(f, fg, i)
|
||||
func generateIOSequenceT(f *os.File, i int) {
|
||||
generateGenericSequenceT(nonGenericIO, extrasIO)(f, i)
|
||||
}
|
||||
|
||||
func generateIOSequenceTuple(f, fg *os.File, i int) {
|
||||
generateGenericSequenceTuple(nonGenericIO, genericIO, extrasIO)(f, fg, i)
|
||||
func generateIOSequenceTuple(f *os.File, i int) {
|
||||
generateGenericSequenceTuple(nonGenericIO, extrasIO)(f, i)
|
||||
}
|
||||
|
||||
func generateIOTraverseTuple(f, fg *os.File, i int) {
|
||||
generateGenericTraverseTuple(nonGenericIO, genericIO, extrasIO)(f, fg, i)
|
||||
func generateIOTraverseTuple(f *os.File, i int) {
|
||||
generateGenericTraverseTuple(nonGenericIO, extrasIO)(f, i)
|
||||
}
|
||||
|
||||
func generateIOHelpers(filename string, count int) error {
|
||||
@@ -63,18 +59,6 @@ func generateIOHelpers(filename string, count int) error {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
// construct subdirectory
|
||||
genFilename := filepath.Join("generic", filename)
|
||||
err = os.MkdirAll("generic", os.ModePerm)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fg, err := os.Create(filepath.Clean(genFilename))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer fg.Close()
|
||||
|
||||
// log
|
||||
log.Printf("Generating code in [%s] for package [%s] with [%d] repetitions ...", filename, pkg, count)
|
||||
|
||||
@@ -87,32 +71,18 @@ func generateIOHelpers(filename string, count int) error {
|
||||
|
||||
fmt.Fprintf(f, `
|
||||
import (
|
||||
G "github.com/IBM/fp-go/v2/%s/generic"
|
||||
T "github.com/IBM/fp-go/v2/tuple"
|
||||
)
|
||||
`, pkg)
|
||||
|
||||
// some header
|
||||
fmt.Fprintln(fg, "// Code generated by go generate; DO NOT EDIT.")
|
||||
fmt.Fprintln(fg, "// This file was generated by robots at")
|
||||
fmt.Fprintf(fg, "// %s\n", time.Now())
|
||||
|
||||
fmt.Fprintf(fg, "package generic\n\n")
|
||||
|
||||
fmt.Fprintf(fg, `
|
||||
import (
|
||||
T "github.com/IBM/fp-go/v2/tuple"
|
||||
A "github.com/IBM/fp-go/v2/internal/apply"
|
||||
"github.com/IBM/fp-go/v2/tuple"
|
||||
"github.com/IBM/fp-go/v2/internal/apply"
|
||||
)
|
||||
`)
|
||||
|
||||
for i := 1; i <= count; i++ {
|
||||
// sequenceT
|
||||
generateIOSequenceT(f, fg, i)
|
||||
generateIOSequenceT(f, i)
|
||||
// sequenceTuple
|
||||
generateIOSequenceTuple(f, fg, i)
|
||||
generateIOSequenceTuple(f, i)
|
||||
// traverseTuple
|
||||
generateIOTraverseTuple(f, fg, i)
|
||||
generateIOTraverseTuple(f, i)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@@ -39,15 +39,15 @@ func genericIOEither(param string) string {
|
||||
var extrasIOEither = A.From("E")
|
||||
|
||||
func generateIOEitherSequenceT(f, fg *os.File, i int) {
|
||||
generateGenericSequenceT(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
deprecatedGenerateGenericSequenceT(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOEitherSequenceTuple(f, fg *os.File, i int) {
|
||||
generateGenericSequenceTuple(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
deprecatedGenerateGenericSequenceTuple(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOEitherTraverseTuple(f, fg *os.File, i int) {
|
||||
generateGenericTraverseTuple(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
deprecatedGenerateGenericTraverseTuple(nonGenericIOEither, genericIOEither, extrasIOEither)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOEitherUneitherize(f, fg *os.File, i int) {
|
||||
|
@@ -37,15 +37,15 @@ func genericIOOption(param string) string {
|
||||
var extrasIOOption = A.Empty[string]()
|
||||
|
||||
func generateIOOptionSequenceT(f, fg *os.File, i int) {
|
||||
generateGenericSequenceT(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
deprecatedGenerateGenericSequenceT(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOOptionSequenceTuple(f, fg *os.File, i int) {
|
||||
generateGenericSequenceTuple(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
deprecatedGenerateGenericSequenceTuple(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOOptionTraverseTuple(f, fg *os.File, i int) {
|
||||
generateGenericTraverseTuple(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
deprecatedGenerateGenericTraverseTuple(nonGenericIOOption, genericIOOption, extrasIOOption)(f, fg, i)
|
||||
}
|
||||
|
||||
func generateIOOptionHelpers(filename string, count int) error {
|
||||
|
@@ -21,6 +21,7 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Deprecated:
|
||||
func tupleType(name string) func(i int) string {
|
||||
return func(i int) string {
|
||||
var buf strings.Builder
|
||||
@@ -37,6 +38,22 @@ func tupleType(name string) func(i int) string {
|
||||
}
|
||||
}
|
||||
|
||||
func tupleTypePlain(name string) func(i int) string {
|
||||
return func(i int) string {
|
||||
var buf strings.Builder
|
||||
buf.WriteString(fmt.Sprintf("tuple.Tuple%d[", i))
|
||||
for j := 0; j < i; j++ {
|
||||
if j > 0 {
|
||||
buf.WriteString(", ")
|
||||
}
|
||||
buf.WriteString(fmt.Sprintf("%s%d", name, j+1))
|
||||
}
|
||||
buf.WriteString("]")
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
}
|
||||
|
||||
func monadGenerateSequenceTNonGeneric(
|
||||
hkt func(string) string,
|
||||
fmap func(string, string) string,
|
||||
|
132
v2/cli/monad2.go
132
v2/cli/monad2.go
@@ -38,7 +38,8 @@ func joinAll(middle string) func(all ...[]string) string {
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericSequenceT(
|
||||
// Deprecated:
|
||||
func deprecatedGenerateGenericSequenceT(
|
||||
nonGenericType func(string) string,
|
||||
genericType func(string) string,
|
||||
extra []string,
|
||||
@@ -115,7 +116,8 @@ func generateGenericSequenceT(
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericSequenceTuple(
|
||||
// Deprecated:
|
||||
func deprecatedGenerateGenericSequenceTuple(
|
||||
nonGenericType func(string) string,
|
||||
genericType func(string) string,
|
||||
extra []string,
|
||||
@@ -187,7 +189,8 @@ func generateGenericSequenceTuple(
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericTraverseTuple(
|
||||
// Deprecated:
|
||||
func deprecatedGenerateGenericTraverseTuple(
|
||||
nonGenericType func(string) string,
|
||||
genericType func(string) string,
|
||||
extra []string,
|
||||
@@ -282,3 +285,126 @@ func generateGenericTraverseTuple(
|
||||
fmt.Fprintf(fg, "}\n")
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericSequenceT(
|
||||
nonGenericType func(string) string,
|
||||
extra []string,
|
||||
) func(f *os.File, i int) {
|
||||
return func(f *os.File, i int) {
|
||||
// tuple
|
||||
tuple := tupleTypePlain("T")(i)
|
||||
// all types T
|
||||
typesT := A.MakeBy(i, F.Flow2(
|
||||
N.Inc[int],
|
||||
S.Format[int]("T%d"),
|
||||
))
|
||||
// non generic version
|
||||
fmt.Fprintf(f, "\n// SequenceT%d converts %d [%s] into a [%s]\n", i, i, nonGenericType("T"), nonGenericType(tuple))
|
||||
fmt.Fprintf(f, "func SequenceT%d[%s any](\n", i, joinAll(", ")(extra, typesT))
|
||||
for j := 0; j < i; j++ {
|
||||
fmt.Fprintf(f, " t%d %s,\n", j+1, nonGenericType(fmt.Sprintf("T%d", j+1)))
|
||||
}
|
||||
fmt.Fprintf(f, ") %s {\n", nonGenericType(tuple))
|
||||
fmt.Fprintf(f, " return apply.SequenceT%d(\n", i)
|
||||
fmt.Fprintf(f, " Map[%s, %s],\n", "T1", generateNestedCallbacksPlain(1, i))
|
||||
|
||||
// the apply calls
|
||||
for j := 2; j <= i; j++ {
|
||||
fmt.Fprintf(f, " Ap[%s, T%d],\n", generateNestedCallbacksPlain(j, i), j)
|
||||
}
|
||||
// function parameters
|
||||
for j := 1; j <= i; j++ {
|
||||
fmt.Fprintf(f, " t%d,\n", j)
|
||||
}
|
||||
|
||||
fmt.Fprintf(f, " )\n")
|
||||
fmt.Fprintf(f, "}\n")
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericSequenceTuple(
|
||||
nonGenericType func(string) string,
|
||||
extra []string,
|
||||
) func(f *os.File, i int) {
|
||||
return func(f *os.File, i int) {
|
||||
// tuple
|
||||
tuple := tupleTypePlain("T")(i)
|
||||
// all types T
|
||||
typesT := A.MakeBy(i, F.Flow2(
|
||||
N.Inc[int],
|
||||
S.Format[int]("T%d"),
|
||||
))
|
||||
// non generic version
|
||||
fmt.Fprintf(f, "\n// SequenceTuple%d converts a [tuple.Tuple%d[%s]] into a [%s]\n", i, i, nonGenericType("T"), nonGenericType(tuple))
|
||||
fmt.Fprintf(f, "func SequenceTuple%d[%s any](t tuple.Tuple%d[", i, joinAll(", ")(extra, typesT), i)
|
||||
for j := 0; j < i; j++ {
|
||||
if j > 0 {
|
||||
fmt.Fprintf(f, ", ")
|
||||
}
|
||||
fmt.Fprintf(f, "%s", nonGenericType(fmt.Sprintf("T%d", j+1)))
|
||||
}
|
||||
fmt.Fprintf(f, "]) %s {\n", nonGenericType(tuple))
|
||||
fmt.Fprintf(f, " return apply.SequenceTuple%d(\n", i)
|
||||
fmt.Fprintf(f, " Map[%s, %s],\n", "T1", generateNestedCallbacksPlain(1, i))
|
||||
|
||||
// the apply calls
|
||||
for j := 2; j <= i; j++ {
|
||||
fmt.Fprintf(f, " Ap[%s, T%d],\n", generateNestedCallbacksPlain(j, i), j)
|
||||
}
|
||||
|
||||
// function parameters
|
||||
fmt.Fprintf(f, " t,\n")
|
||||
// function parameters
|
||||
fmt.Fprintf(f, " )\n")
|
||||
fmt.Fprintf(f, "}\n")
|
||||
}
|
||||
}
|
||||
|
||||
func generateGenericTraverseTuple(
|
||||
nonGenericType func(string) string,
|
||||
extra []string,
|
||||
) func(f *os.File, i int) {
|
||||
return func(f *os.File, i int) {
|
||||
// all types T
|
||||
typesT := A.MakeBy(i, F.Flow2(
|
||||
N.Inc[int],
|
||||
S.Format[int]("T%d"),
|
||||
))
|
||||
// all types A
|
||||
typesA := A.MakeBy(i, F.Flow2(
|
||||
N.Inc[int],
|
||||
S.Format[int]("A%d"),
|
||||
))
|
||||
// function types
|
||||
typesF := A.MakeBy(i, func(j int) string {
|
||||
return fmt.Sprintf("F%d ~func(A%d) %s", j+1, j+1, nonGenericType(fmt.Sprintf("T%d", j+1)))
|
||||
})
|
||||
paramF := A.MakeBy(i, func(j int) string {
|
||||
return fmt.Sprintf("f%d F%d", j+1, j+1)
|
||||
})
|
||||
// return type
|
||||
paramType := fmt.Sprintf("tuple.Tuple%d[%s]", i, joinAll(", ")(extra, typesA))
|
||||
returnType := nonGenericType(fmt.Sprintf("tuple.Tuple%d[%s]", i, joinAll(", ")(extra, typesT)))
|
||||
// non generic version
|
||||
fmt.Fprintf(f, "\n// TraverseTuple%d converts a [%s] into a [%s]\n", i, paramType, returnType)
|
||||
fmt.Fprintf(f, "func TraverseTuple%d[%s any](%s) func(%s) %s {\n", i, joinAll(", ")(extra, typesF, typesT, typesA), joinAll(", ")(paramF), paramType, returnType)
|
||||
fmt.Fprintf(f, " return func(t %s) %s {\n", paramType, returnType)
|
||||
fmt.Fprintf(f, " return apply.TraverseTuple%d(\n", i)
|
||||
fmt.Fprintf(f, " Map[%s, %s],\n", "T1", generateNestedCallbacksPlain(1, i))
|
||||
|
||||
// the apply calls
|
||||
for j := 2; j <= i; j++ {
|
||||
fmt.Fprintf(f, " Ap[%s, T%d],\n", generateNestedCallbacksPlain(j, i), j)
|
||||
}
|
||||
// the function parameters
|
||||
for j := 1; j <= i; j++ {
|
||||
fmt.Fprintf(f, " f%d,\n", j)
|
||||
}
|
||||
// function parameters
|
||||
fmt.Fprintf(f, " t,\n")
|
||||
// function parameters
|
||||
fmt.Fprintf(f, " )\n")
|
||||
fmt.Fprintf(f, " }\n")
|
||||
fmt.Fprintf(f, "}\n")
|
||||
}
|
||||
}
|
||||
|
792
v2/io/gen.go
792
v2/io/gen.go
@@ -1,375 +1,571 @@
|
||||
// Code generated by go generate; DO NOT EDIT.
|
||||
// This file was generated by robots at
|
||||
// 2024-02-29 16:19:10.2607969 +0100 CET m=+0.024787801
|
||||
// 2025-03-04 23:25:32.6587952 +0100 CET m=+0.002669801
|
||||
|
||||
package io
|
||||
|
||||
|
||||
import (
|
||||
G "github.com/IBM/fp-go/v2/io/generic"
|
||||
T "github.com/IBM/fp-go/v2/tuple"
|
||||
"github.com/IBM/fp-go/v2/tuple"
|
||||
"github.com/IBM/fp-go/v2/internal/apply"
|
||||
)
|
||||
|
||||
// SequenceT1 converts 1 [IO[T]] into a [IO[T.Tuple1[T1]]]
|
||||
// SequenceT1 converts 1 [IO[T]] into a [IO[tuple.Tuple1[T1]]]
|
||||
func SequenceT1[T1 any](
|
||||
t1 IO[T1],
|
||||
) IO[T.Tuple1[T1]] {
|
||||
return G.SequenceT1[
|
||||
IO[T.Tuple1[T1]],
|
||||
IO[T1],
|
||||
](t1)
|
||||
t1 IO[T1],
|
||||
) IO[tuple.Tuple1[T1]] {
|
||||
return apply.SequenceT1(
|
||||
Map[T1, tuple.Tuple1[T1]],
|
||||
t1,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple1 converts a [T.Tuple1[IO[T]]] into a [IO[T.Tuple1[T1]]]
|
||||
func SequenceTuple1[T1 any](t T.Tuple1[IO[T1]]) IO[T.Tuple1[T1]] {
|
||||
return G.SequenceTuple1[
|
||||
IO[T.Tuple1[T1]],
|
||||
IO[T1],
|
||||
](t)
|
||||
// SequenceTuple1 converts a [tuple.Tuple1[IO[T]]] into a [IO[tuple.Tuple1[T1]]]
|
||||
func SequenceTuple1[T1 any](t tuple.Tuple1[IO[T1]]) IO[tuple.Tuple1[T1]] {
|
||||
return apply.SequenceTuple1(
|
||||
Map[T1, tuple.Tuple1[T1]],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple1 converts a [T.Tuple1[IO[T]]] into a [IO[T.Tuple1[T1]]]
|
||||
func TraverseTuple1[F1 ~func(A1) IO[T1], A1, T1 any](f1 F1) func(T.Tuple1[A1]) IO[T.Tuple1[T1]] {
|
||||
return G.TraverseTuple1[IO[T.Tuple1[T1]]](f1)
|
||||
// TraverseTuple1 converts a [tuple.Tuple1[A1]] into a [IO[tuple.Tuple1[T1]]]
|
||||
func TraverseTuple1[F1 ~func(A1) IO[T1], T1, A1 any](f1 F1) func(tuple.Tuple1[A1]) IO[tuple.Tuple1[T1]] {
|
||||
return func(t tuple.Tuple1[A1]) IO[tuple.Tuple1[T1]] {
|
||||
return apply.TraverseTuple1(
|
||||
Map[T1, tuple.Tuple1[T1]],
|
||||
f1,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT2 converts 2 [IO[T]] into a [IO[T.Tuple2[T1, T2]]]
|
||||
// SequenceT2 converts 2 [IO[T]] into a [IO[tuple.Tuple2[T1, T2]]]
|
||||
func SequenceT2[T1, T2 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
) IO[T.Tuple2[T1, T2]] {
|
||||
return G.SequenceT2[
|
||||
IO[T.Tuple2[T1, T2]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
](t1, t2)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
) IO[tuple.Tuple2[T1, T2]] {
|
||||
return apply.SequenceT2(
|
||||
Map[T1, func(T2) tuple.Tuple2[T1, T2]],
|
||||
Ap[tuple.Tuple2[T1, T2], T2],
|
||||
t1,
|
||||
t2,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple2 converts a [T.Tuple2[IO[T]]] into a [IO[T.Tuple2[T1, T2]]]
|
||||
func SequenceTuple2[T1, T2 any](t T.Tuple2[IO[T1], IO[T2]]) IO[T.Tuple2[T1, T2]] {
|
||||
return G.SequenceTuple2[
|
||||
IO[T.Tuple2[T1, T2]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
](t)
|
||||
// SequenceTuple2 converts a [tuple.Tuple2[IO[T]]] into a [IO[tuple.Tuple2[T1, T2]]]
|
||||
func SequenceTuple2[T1, T2 any](t tuple.Tuple2[IO[T1], IO[T2]]) IO[tuple.Tuple2[T1, T2]] {
|
||||
return apply.SequenceTuple2(
|
||||
Map[T1, func(T2) tuple.Tuple2[T1, T2]],
|
||||
Ap[tuple.Tuple2[T1, T2], T2],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple2 converts a [T.Tuple2[IO[T]]] into a [IO[T.Tuple2[T1, T2]]]
|
||||
func TraverseTuple2[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], A1, A2, T1, T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) IO[T.Tuple2[T1, T2]] {
|
||||
return G.TraverseTuple2[IO[T.Tuple2[T1, T2]]](f1, f2)
|
||||
// TraverseTuple2 converts a [tuple.Tuple2[A1, A2]] into a [IO[tuple.Tuple2[T1, T2]]]
|
||||
func TraverseTuple2[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], T1, T2, A1, A2 any](f1 F1, f2 F2) func(tuple.Tuple2[A1, A2]) IO[tuple.Tuple2[T1, T2]] {
|
||||
return func(t tuple.Tuple2[A1, A2]) IO[tuple.Tuple2[T1, T2]] {
|
||||
return apply.TraverseTuple2(
|
||||
Map[T1, func(T2) tuple.Tuple2[T1, T2]],
|
||||
Ap[tuple.Tuple2[T1, T2], T2],
|
||||
f1,
|
||||
f2,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT3 converts 3 [IO[T]] into a [IO[T.Tuple3[T1, T2, T3]]]
|
||||
// SequenceT3 converts 3 [IO[T]] into a [IO[tuple.Tuple3[T1, T2, T3]]]
|
||||
func SequenceT3[T1, T2, T3 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
) IO[T.Tuple3[T1, T2, T3]] {
|
||||
return G.SequenceT3[
|
||||
IO[T.Tuple3[T1, T2, T3]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
](t1, t2, t3)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
) IO[tuple.Tuple3[T1, T2, T3]] {
|
||||
return apply.SequenceT3(
|
||||
Map[T1, func(T2) func(T3) tuple.Tuple3[T1, T2, T3]],
|
||||
Ap[func(T3) tuple.Tuple3[T1, T2, T3], T2],
|
||||
Ap[tuple.Tuple3[T1, T2, T3], T3],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple3 converts a [T.Tuple3[IO[T]]] into a [IO[T.Tuple3[T1, T2, T3]]]
|
||||
func SequenceTuple3[T1, T2, T3 any](t T.Tuple3[IO[T1], IO[T2], IO[T3]]) IO[T.Tuple3[T1, T2, T3]] {
|
||||
return G.SequenceTuple3[
|
||||
IO[T.Tuple3[T1, T2, T3]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
](t)
|
||||
// SequenceTuple3 converts a [tuple.Tuple3[IO[T]]] into a [IO[tuple.Tuple3[T1, T2, T3]]]
|
||||
func SequenceTuple3[T1, T2, T3 any](t tuple.Tuple3[IO[T1], IO[T2], IO[T3]]) IO[tuple.Tuple3[T1, T2, T3]] {
|
||||
return apply.SequenceTuple3(
|
||||
Map[T1, func(T2) func(T3) tuple.Tuple3[T1, T2, T3]],
|
||||
Ap[func(T3) tuple.Tuple3[T1, T2, T3], T2],
|
||||
Ap[tuple.Tuple3[T1, T2, T3], T3],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple3 converts a [T.Tuple3[IO[T]]] into a [IO[T.Tuple3[T1, T2, T3]]]
|
||||
func TraverseTuple3[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], A1, A2, A3, T1, T2, T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) IO[T.Tuple3[T1, T2, T3]] {
|
||||
return G.TraverseTuple3[IO[T.Tuple3[T1, T2, T3]]](f1, f2, f3)
|
||||
// TraverseTuple3 converts a [tuple.Tuple3[A1, A2, A3]] into a [IO[tuple.Tuple3[T1, T2, T3]]]
|
||||
func TraverseTuple3[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], T1, T2, T3, A1, A2, A3 any](f1 F1, f2 F2, f3 F3) func(tuple.Tuple3[A1, A2, A3]) IO[tuple.Tuple3[T1, T2, T3]] {
|
||||
return func(t tuple.Tuple3[A1, A2, A3]) IO[tuple.Tuple3[T1, T2, T3]] {
|
||||
return apply.TraverseTuple3(
|
||||
Map[T1, func(T2) func(T3) tuple.Tuple3[T1, T2, T3]],
|
||||
Ap[func(T3) tuple.Tuple3[T1, T2, T3], T2],
|
||||
Ap[tuple.Tuple3[T1, T2, T3], T3],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT4 converts 4 [IO[T]] into a [IO[T.Tuple4[T1, T2, T3, T4]]]
|
||||
// SequenceT4 converts 4 [IO[T]] into a [IO[tuple.Tuple4[T1, T2, T3, T4]]]
|
||||
func SequenceT4[T1, T2, T3, T4 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
) IO[T.Tuple4[T1, T2, T3, T4]] {
|
||||
return G.SequenceT4[
|
||||
IO[T.Tuple4[T1, T2, T3, T4]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
](t1, t2, t3, t4)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
) IO[tuple.Tuple4[T1, T2, T3, T4]] {
|
||||
return apply.SequenceT4(
|
||||
Map[T1, func(T2) func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4], T2],
|
||||
Ap[func(T4) tuple.Tuple4[T1, T2, T3, T4], T3],
|
||||
Ap[tuple.Tuple4[T1, T2, T3, T4], T4],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple4 converts a [T.Tuple4[IO[T]]] into a [IO[T.Tuple4[T1, T2, T3, T4]]]
|
||||
func SequenceTuple4[T1, T2, T3, T4 any](t T.Tuple4[IO[T1], IO[T2], IO[T3], IO[T4]]) IO[T.Tuple4[T1, T2, T3, T4]] {
|
||||
return G.SequenceTuple4[
|
||||
IO[T.Tuple4[T1, T2, T3, T4]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
](t)
|
||||
// SequenceTuple4 converts a [tuple.Tuple4[IO[T]]] into a [IO[tuple.Tuple4[T1, T2, T3, T4]]]
|
||||
func SequenceTuple4[T1, T2, T3, T4 any](t tuple.Tuple4[IO[T1], IO[T2], IO[T3], IO[T4]]) IO[tuple.Tuple4[T1, T2, T3, T4]] {
|
||||
return apply.SequenceTuple4(
|
||||
Map[T1, func(T2) func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4], T2],
|
||||
Ap[func(T4) tuple.Tuple4[T1, T2, T3, T4], T3],
|
||||
Ap[tuple.Tuple4[T1, T2, T3, T4], T4],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple4 converts a [T.Tuple4[IO[T]]] into a [IO[T.Tuple4[T1, T2, T3, T4]]]
|
||||
func TraverseTuple4[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], A1, A2, A3, A4, T1, T2, T3, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) IO[T.Tuple4[T1, T2, T3, T4]] {
|
||||
return G.TraverseTuple4[IO[T.Tuple4[T1, T2, T3, T4]]](f1, f2, f3, f4)
|
||||
// TraverseTuple4 converts a [tuple.Tuple4[A1, A2, A3, A4]] into a [IO[tuple.Tuple4[T1, T2, T3, T4]]]
|
||||
func TraverseTuple4[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], T1, T2, T3, T4, A1, A2, A3, A4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(tuple.Tuple4[A1, A2, A3, A4]) IO[tuple.Tuple4[T1, T2, T3, T4]] {
|
||||
return func(t tuple.Tuple4[A1, A2, A3, A4]) IO[tuple.Tuple4[T1, T2, T3, T4]] {
|
||||
return apply.TraverseTuple4(
|
||||
Map[T1, func(T2) func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func(T3) func(T4) tuple.Tuple4[T1, T2, T3, T4], T2],
|
||||
Ap[func(T4) tuple.Tuple4[T1, T2, T3, T4], T3],
|
||||
Ap[tuple.Tuple4[T1, T2, T3, T4], T4],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT5 converts 5 [IO[T]] into a [IO[T.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
// SequenceT5 converts 5 [IO[T]] into a [IO[tuple.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
func SequenceT5[T1, T2, T3, T4, T5 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
) IO[T.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return G.SequenceT5[
|
||||
IO[T.Tuple5[T1, T2, T3, T4, T5]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
](t1, t2, t3, t4, t5)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
) IO[tuple.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return apply.SequenceT5(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||
Ap[func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||
Ap[func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||
Ap[tuple.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple5 converts a [T.Tuple5[IO[T]]] into a [IO[T.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
func SequenceTuple5[T1, T2, T3, T4, T5 any](t T.Tuple5[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5]]) IO[T.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return G.SequenceTuple5[
|
||||
IO[T.Tuple5[T1, T2, T3, T4, T5]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
](t)
|
||||
// SequenceTuple5 converts a [tuple.Tuple5[IO[T]]] into a [IO[tuple.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
func SequenceTuple5[T1, T2, T3, T4, T5 any](t tuple.Tuple5[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5]]) IO[tuple.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return apply.SequenceTuple5(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||
Ap[func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||
Ap[func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||
Ap[tuple.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple5 converts a [T.Tuple5[IO[T]]] into a [IO[T.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
func TraverseTuple5[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], A1, A2, A3, A4, A5, T1, T2, T3, T4, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) IO[T.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return G.TraverseTuple5[IO[T.Tuple5[T1, T2, T3, T4, T5]]](f1, f2, f3, f4, f5)
|
||||
// TraverseTuple5 converts a [tuple.Tuple5[A1, A2, A3, A4, A5]] into a [IO[tuple.Tuple5[T1, T2, T3, T4, T5]]]
|
||||
func TraverseTuple5[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], T1, T2, T3, T4, T5, A1, A2, A3, A4, A5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(tuple.Tuple5[A1, A2, A3, A4, A5]) IO[tuple.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return func(t tuple.Tuple5[A1, A2, A3, A4, A5]) IO[tuple.Tuple5[T1, T2, T3, T4, T5]] {
|
||||
return apply.TraverseTuple5(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func(T3) func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||
Ap[func(T4) func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||
Ap[func(T5) tuple.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||
Ap[tuple.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT6 converts 6 [IO[T]] into a [IO[T.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
// SequenceT6 converts 6 [IO[T]] into a [IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
func SequenceT6[T1, T2, T3, T4, T5, T6 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
) IO[T.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return G.SequenceT6[
|
||||
IO[T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
](t1, t2, t3, t4, t5, t6)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
) IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return apply.SequenceT6(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||
Ap[func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||
Ap[func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||
Ap[func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||
Ap[tuple.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple6 converts a [T.Tuple6[IO[T]]] into a [IO[T.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
func SequenceTuple6[T1, T2, T3, T4, T5, T6 any](t T.Tuple6[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6]]) IO[T.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return G.SequenceTuple6[
|
||||
IO[T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
](t)
|
||||
// SequenceTuple6 converts a [tuple.Tuple6[IO[T]]] into a [IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
func SequenceTuple6[T1, T2, T3, T4, T5, T6 any](t tuple.Tuple6[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6]]) IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return apply.SequenceTuple6(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||
Ap[func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||
Ap[func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||
Ap[func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||
Ap[tuple.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple6 converts a [T.Tuple6[IO[T]]] into a [IO[T.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
func TraverseTuple6[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], A1, A2, A3, A4, A5, A6, T1, T2, T3, T4, T5, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) IO[T.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return G.TraverseTuple6[IO[T.Tuple6[T1, T2, T3, T4, T5, T6]]](f1, f2, f3, f4, f5, f6)
|
||||
// TraverseTuple6 converts a [tuple.Tuple6[A1, A2, A3, A4, A5, A6]] into a [IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]]]
|
||||
func TraverseTuple6[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], T1, T2, T3, T4, T5, T6, A1, A2, A3, A4, A5, A6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(tuple.Tuple6[A1, A2, A3, A4, A5, A6]) IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return func(t tuple.Tuple6[A1, A2, A3, A4, A5, A6]) IO[tuple.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||
return apply.TraverseTuple6(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||
Ap[func(T4) func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||
Ap[func(T5) func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||
Ap[func(T6) tuple.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||
Ap[tuple.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT7 converts 7 [IO[T]] into a [IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
// SequenceT7 converts 7 [IO[T]] into a [IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
func SequenceT7[T1, T2, T3, T4, T5, T6, T7 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
) IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return G.SequenceT7[
|
||||
IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
](t1, t2, t3, t4, t5, t6, t7)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
) IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return apply.SequenceT7(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||
Ap[func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||
Ap[func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||
Ap[func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||
Ap[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple7 converts a [T.Tuple7[IO[T]]] into a [IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
func SequenceTuple7[T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7]]) IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return G.SequenceTuple7[
|
||||
IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
](t)
|
||||
// SequenceTuple7 converts a [tuple.Tuple7[IO[T]]] into a [IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
func SequenceTuple7[T1, T2, T3, T4, T5, T6, T7 any](t tuple.Tuple7[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7]]) IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return apply.SequenceTuple7(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||
Ap[func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||
Ap[func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||
Ap[func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||
Ap[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple7 converts a [T.Tuple7[IO[T]]] into a [IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
func TraverseTuple7[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], A1, A2, A3, A4, A5, A6, A7, T1, T2, T3, T4, T5, T6, T7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func(T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return G.TraverseTuple7[IO[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]](f1, f2, f3, f4, f5, f6, f7)
|
||||
// TraverseTuple7 converts a [tuple.Tuple7[A1, A2, A3, A4, A5, A6, A7]] into a [IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]]]
|
||||
func TraverseTuple7[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], T1, T2, T3, T4, T5, T6, T7, A1, A2, A3, A4, A5, A6, A7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func(tuple.Tuple7[A1, A2, A3, A4, A5, A6, A7]) IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return func(t tuple.Tuple7[A1, A2, A3, A4, A5, A6, A7]) IO[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||
return apply.TraverseTuple7(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||
Ap[func(T5) func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||
Ap[func(T6) func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||
Ap[func(T7) tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||
Ap[tuple.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT8 converts 8 [IO[T]] into a [IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
// SequenceT8 converts 8 [IO[T]] into a [IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
func SequenceT8[T1, T2, T3, T4, T5, T6, T7, T8 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
) IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return G.SequenceT8[
|
||||
IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
](t1, t2, t3, t4, t5, t6, t7, t8)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
) IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return apply.SequenceT8(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||
Ap[func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||
Ap[func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||
Ap[func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||
Ap[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple8 converts a [T.Tuple8[IO[T]]] into a [IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
func SequenceTuple8[T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8]]) IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return G.SequenceTuple8[
|
||||
IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
](t)
|
||||
// SequenceTuple8 converts a [tuple.Tuple8[IO[T]]] into a [IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
func SequenceTuple8[T1, T2, T3, T4, T5, T6, T7, T8 any](t tuple.Tuple8[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8]]) IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return apply.SequenceTuple8(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||
Ap[func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||
Ap[func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||
Ap[func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||
Ap[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple8 converts a [T.Tuple8[IO[T]]] into a [IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
func TraverseTuple8[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], A1, A2, A3, A4, A5, A6, A7, A8, T1, T2, T3, T4, T5, T6, T7, T8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func(T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return G.TraverseTuple8[IO[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]](f1, f2, f3, f4, f5, f6, f7, f8)
|
||||
// TraverseTuple8 converts a [tuple.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]] into a [IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]]
|
||||
func TraverseTuple8[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], T1, T2, T3, T4, T5, T6, T7, T8, A1, A2, A3, A4, A5, A6, A7, A8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func(tuple.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return func(t tuple.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) IO[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||
return apply.TraverseTuple8(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||
Ap[func(T6) func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||
Ap[func(T7) func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||
Ap[func(T8) tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||
Ap[tuple.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT9 converts 9 [IO[T]] into a [IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
// SequenceT9 converts 9 [IO[T]] into a [IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
func SequenceT9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
t9 IO[T9],
|
||||
) IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return G.SequenceT9[
|
||||
IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
IO[T9],
|
||||
](t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
t9 IO[T9],
|
||||
) IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return apply.SequenceT9(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||
Ap[func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||
Ap[func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||
Ap[func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||
Ap[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
t9,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple9 converts a [T.Tuple9[IO[T]]] into a [IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
func SequenceTuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8], IO[T9]]) IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return G.SequenceTuple9[
|
||||
IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
IO[T9],
|
||||
](t)
|
||||
// SequenceTuple9 converts a [tuple.Tuple9[IO[T]]] into a [IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
func SequenceTuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t tuple.Tuple9[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8], IO[T9]]) IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return apply.SequenceTuple9(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||
Ap[func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||
Ap[func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||
Ap[func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||
Ap[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple9 converts a [T.Tuple9[IO[T]]] into a [IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
func TraverseTuple9[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], F9 ~func(A9) IO[T9], A1, A2, A3, A4, A5, A6, A7, A8, A9, T1, T2, T3, T4, T5, T6, T7, T8, T9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func(T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return G.TraverseTuple9[IO[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]](f1, f2, f3, f4, f5, f6, f7, f8, f9)
|
||||
// TraverseTuple9 converts a [tuple.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]] into a [IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]]
|
||||
func TraverseTuple9[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], F9 ~func(A9) IO[T9], T1, T2, T3, T4, T5, T6, T7, T8, T9, A1, A2, A3, A4, A5, A6, A7, A8, A9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func(tuple.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return func(t tuple.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) IO[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||
return apply.TraverseTuple9(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||
Ap[func(T7) func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||
Ap[func(T8) func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||
Ap[func(T9) tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||
Ap[tuple.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
f9,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT10 converts 10 [IO[T]] into a [IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
// SequenceT10 converts 10 [IO[T]] into a [IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
func SequenceT10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
t9 IO[T9],
|
||||
t10 IO[T10],
|
||||
) IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return G.SequenceT10[
|
||||
IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
IO[T9],
|
||||
IO[T10],
|
||||
](t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)
|
||||
t1 IO[T1],
|
||||
t2 IO[T2],
|
||||
t3 IO[T3],
|
||||
t4 IO[T4],
|
||||
t5 IO[T5],
|
||||
t6 IO[T6],
|
||||
t7 IO[T7],
|
||||
t8 IO[T8],
|
||||
t9 IO[T9],
|
||||
t10 IO[T10],
|
||||
) IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return apply.SequenceT10(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||
Ap[func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||
Ap[func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||
Ap[func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||
Ap[func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||
Ap[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
t9,
|
||||
t10,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple10 converts a [T.Tuple10[IO[T]]] into a [IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
func SequenceTuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8], IO[T9], IO[T10]]) IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return G.SequenceTuple10[
|
||||
IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
IO[T1],
|
||||
IO[T2],
|
||||
IO[T3],
|
||||
IO[T4],
|
||||
IO[T5],
|
||||
IO[T6],
|
||||
IO[T7],
|
||||
IO[T8],
|
||||
IO[T9],
|
||||
IO[T10],
|
||||
](t)
|
||||
// SequenceTuple10 converts a [tuple.Tuple10[IO[T]]] into a [IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
func SequenceTuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t tuple.Tuple10[IO[T1], IO[T2], IO[T3], IO[T4], IO[T5], IO[T6], IO[T7], IO[T8], IO[T9], IO[T10]]) IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return apply.SequenceTuple10(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||
Ap[func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||
Ap[func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||
Ap[func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||
Ap[func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||
Ap[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||
t,
|
||||
)
|
||||
}
|
||||
|
||||
// TraverseTuple10 converts a [T.Tuple10[IO[T]]] into a [IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
func TraverseTuple10[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], F9 ~func(A9) IO[T9], F10 ~func(A10) IO[T10], A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func(T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return G.TraverseTuple10[IO[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]](f1, f2, f3, f4, f5, f6, f7, f8, f9, f10)
|
||||
// TraverseTuple10 converts a [tuple.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]] into a [IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]]
|
||||
func TraverseTuple10[F1 ~func(A1) IO[T1], F2 ~func(A2) IO[T2], F3 ~func(A3) IO[T3], F4 ~func(A4) IO[T4], F5 ~func(A5) IO[T5], F6 ~func(A6) IO[T6], F7 ~func(A7) IO[T7], F8 ~func(A8) IO[T8], F9 ~func(A9) IO[T9], F10 ~func(A10) IO[T10], T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func(tuple.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return func(t tuple.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) IO[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||
return apply.TraverseTuple10(
|
||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||
Ap[func(T7) func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||
Ap[func(T8) func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||
Ap[func(T9) func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||
Ap[func(T10) tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||
Ap[tuple.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
f9,
|
||||
f10,
|
||||
t,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@@ -1,829 +0,0 @@
|
||||
// Code generated by go generate; DO NOT EDIT.
|
||||
// This file was generated by robots at
|
||||
// 2024-02-29 16:19:10.2613281 +0100 CET m=+0.025319001
|
||||
package generic
|
||||
|
||||
import (
|
||||
A "github.com/IBM/fp-go/v2/internal/apply"
|
||||
T "github.com/IBM/fp-go/v2/tuple"
|
||||
)
|
||||
|
||||
// SequenceT1 converts 1 [func() T] into a [func() T.Tuple1[T1]]
|
||||
func SequenceT1[
|
||||
G_TUPLE1 ~func() T.Tuple1[T1],
|
||||
G_T1 ~func() T1,
|
||||
T1 any](
|
||||
t1 G_T1,
|
||||
) G_TUPLE1 {
|
||||
return A.SequenceT1(
|
||||
Map[G_T1, G_TUPLE1, T1, T.Tuple1[T1]],
|
||||
t1,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple1 converts a [T.Tuple1[func() T]] into a [func() T.Tuple1[T1]]
|
||||
func SequenceTuple1[
|
||||
G_TUPLE1 ~func() T.Tuple1[T1],
|
||||
G_T1 ~func() T1,
|
||||
T1 any](t T.Tuple1[G_T1]) G_TUPLE1 {
|
||||
return A.SequenceTuple1(
|
||||
Map[G_T1, G_TUPLE1, T1, T.Tuple1[T1]],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple1 converts a [T.Tuple1[func() T]] into a [func() T.Tuple1[T1]]
|
||||
func TraverseTuple1[
|
||||
G_TUPLE1 ~func() T.Tuple1[T1],
|
||||
F1 ~func(A1) G_T1,
|
||||
G_T1 ~func() T1,
|
||||
A1, T1 any](f1 F1) func(T.Tuple1[A1]) G_TUPLE1 {
|
||||
return func(t T.Tuple1[A1]) G_TUPLE1 {
|
||||
return A.TraverseTuple1(
|
||||
Map[G_T1, G_TUPLE1, T1, T.Tuple1[T1]],
|
||||
f1,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT2 converts 2 [func() T] into a [func() T.Tuple2[T1, T2]]
|
||||
func SequenceT2[
|
||||
G_TUPLE2 ~func() T.Tuple2[T1, T2],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
T1, T2 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
) G_TUPLE2 {
|
||||
return A.SequenceT2(
|
||||
Map[G_T1, func() func(T2) T.Tuple2[T1, T2], T1, func(T2) T.Tuple2[T1, T2]],
|
||||
Ap[G_TUPLE2, func() func(T2) T.Tuple2[T1, T2], G_T2],
|
||||
t1,
|
||||
t2,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple2 converts a [T.Tuple2[func() T]] into a [func() T.Tuple2[T1, T2]]
|
||||
func SequenceTuple2[
|
||||
G_TUPLE2 ~func() T.Tuple2[T1, T2],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
T1, T2 any](t T.Tuple2[G_T1, G_T2]) G_TUPLE2 {
|
||||
return A.SequenceTuple2(
|
||||
Map[G_T1, func() func(T2) T.Tuple2[T1, T2], T1, func(T2) T.Tuple2[T1, T2]],
|
||||
Ap[G_TUPLE2, func() func(T2) T.Tuple2[T1, T2], G_T2],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple2 converts a [T.Tuple2[func() T]] into a [func() T.Tuple2[T1, T2]]
|
||||
func TraverseTuple2[
|
||||
G_TUPLE2 ~func() T.Tuple2[T1, T2],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
A1, A2, T1, T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) G_TUPLE2 {
|
||||
return func(t T.Tuple2[A1, A2]) G_TUPLE2 {
|
||||
return A.TraverseTuple2(
|
||||
Map[G_T1, func() func(T2) T.Tuple2[T1, T2], T1, func(T2) T.Tuple2[T1, T2]],
|
||||
Ap[G_TUPLE2, func() func(T2) T.Tuple2[T1, T2], G_T2],
|
||||
f1,
|
||||
f2,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT3 converts 3 [func() T] into a [func() T.Tuple3[T1, T2, T3]]
|
||||
func SequenceT3[
|
||||
G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
T1, T2, T3 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
) G_TUPLE3 {
|
||||
return A.SequenceT3(
|
||||
Map[G_T1, func() func(T2) func(T3) T.Tuple3[T1, T2, T3], T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||
Ap[func() func(T3) T.Tuple3[T1, T2, T3], func() func(T2) func(T3) T.Tuple3[T1, T2, T3], G_T2],
|
||||
Ap[G_TUPLE3, func() func(T3) T.Tuple3[T1, T2, T3], G_T3],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple3 converts a [T.Tuple3[func() T]] into a [func() T.Tuple3[T1, T2, T3]]
|
||||
func SequenceTuple3[
|
||||
G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
T1, T2, T3 any](t T.Tuple3[G_T1, G_T2, G_T3]) G_TUPLE3 {
|
||||
return A.SequenceTuple3(
|
||||
Map[G_T1, func() func(T2) func(T3) T.Tuple3[T1, T2, T3], T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||
Ap[func() func(T3) T.Tuple3[T1, T2, T3], func() func(T2) func(T3) T.Tuple3[T1, T2, T3], G_T2],
|
||||
Ap[G_TUPLE3, func() func(T3) T.Tuple3[T1, T2, T3], G_T3],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple3 converts a [T.Tuple3[func() T]] into a [func() T.Tuple3[T1, T2, T3]]
|
||||
func TraverseTuple3[
|
||||
G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
A1, A2, A3, T1, T2, T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) G_TUPLE3 {
|
||||
return func(t T.Tuple3[A1, A2, A3]) G_TUPLE3 {
|
||||
return A.TraverseTuple3(
|
||||
Map[G_T1, func() func(T2) func(T3) T.Tuple3[T1, T2, T3], T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||
Ap[func() func(T3) T.Tuple3[T1, T2, T3], func() func(T2) func(T3) T.Tuple3[T1, T2, T3], G_T2],
|
||||
Ap[G_TUPLE3, func() func(T3) T.Tuple3[T1, T2, T3], G_T3],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT4 converts 4 [func() T] into a [func() T.Tuple4[T1, T2, T3, T4]]
|
||||
func SequenceT4[
|
||||
G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
T1, T2, T3, T4 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
) G_TUPLE4 {
|
||||
return A.SequenceT4(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T2],
|
||||
Ap[func() func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T3],
|
||||
Ap[G_TUPLE4, func() func(T4) T.Tuple4[T1, T2, T3, T4], G_T4],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple4 converts a [T.Tuple4[func() T]] into a [func() T.Tuple4[T1, T2, T3, T4]]
|
||||
func SequenceTuple4[
|
||||
G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
T1, T2, T3, T4 any](t T.Tuple4[G_T1, G_T2, G_T3, G_T4]) G_TUPLE4 {
|
||||
return A.SequenceTuple4(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T2],
|
||||
Ap[func() func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T3],
|
||||
Ap[G_TUPLE4, func() func(T4) T.Tuple4[T1, T2, T3, T4], G_T4],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple4 converts a [T.Tuple4[func() T]] into a [func() T.Tuple4[T1, T2, T3, T4]]
|
||||
func TraverseTuple4[
|
||||
G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
A1, A2, A3, A4, T1, T2, T3, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) G_TUPLE4 {
|
||||
return func(t T.Tuple4[A1, A2, A3, A4]) G_TUPLE4 {
|
||||
return A.TraverseTuple4(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||
Ap[func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T2],
|
||||
Ap[func() func(T4) T.Tuple4[T1, T2, T3, T4], func() func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], G_T3],
|
||||
Ap[G_TUPLE4, func() func(T4) T.Tuple4[T1, T2, T3, T4], G_T4],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT5 converts 5 [func() T] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]
|
||||
func SequenceT5[
|
||||
G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
T1, T2, T3, T4, T5 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
) G_TUPLE5 {
|
||||
return A.SequenceT5(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T2],
|
||||
Ap[func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T3],
|
||||
Ap[func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T4],
|
||||
Ap[G_TUPLE5, func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T5],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple5 converts a [T.Tuple5[func() T]] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]
|
||||
func SequenceTuple5[
|
||||
G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
T1, T2, T3, T4, T5 any](t T.Tuple5[G_T1, G_T2, G_T3, G_T4, G_T5]) G_TUPLE5 {
|
||||
return A.SequenceTuple5(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T2],
|
||||
Ap[func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T3],
|
||||
Ap[func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T4],
|
||||
Ap[G_TUPLE5, func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T5],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple5 converts a [T.Tuple5[func() T]] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]
|
||||
func TraverseTuple5[
|
||||
G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
A1, A2, A3, A4, A5, T1, T2, T3, T4, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) G_TUPLE5 {
|
||||
return func(t T.Tuple5[A1, A2, A3, A4, A5]) G_TUPLE5 {
|
||||
return A.TraverseTuple5(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||
Ap[func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T2],
|
||||
Ap[func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T3],
|
||||
Ap[func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], func() func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T4],
|
||||
Ap[G_TUPLE5, func() func(T5) T.Tuple5[T1, T2, T3, T4, T5], G_T5],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT6 converts 6 [func() T] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]
|
||||
func SequenceT6[
|
||||
G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
T1, T2, T3, T4, T5, T6 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
t6 G_T6,
|
||||
) G_TUPLE6 {
|
||||
return A.SequenceT6(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T3],
|
||||
Ap[func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T4],
|
||||
Ap[func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T5],
|
||||
Ap[G_TUPLE6, func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T6],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple6 converts a [T.Tuple6[func() T]] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]
|
||||
func SequenceTuple6[
|
||||
G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
T1, T2, T3, T4, T5, T6 any](t T.Tuple6[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6]) G_TUPLE6 {
|
||||
return A.SequenceTuple6(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T3],
|
||||
Ap[func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T4],
|
||||
Ap[func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T5],
|
||||
Ap[G_TUPLE6, func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T6],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple6 converts a [T.Tuple6[func() T]] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]
|
||||
func TraverseTuple6[
|
||||
G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
F6 ~func(A6) G_T6,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
A1, A2, A3, A4, A5, A6, T1, T2, T3, T4, T5, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) G_TUPLE6 {
|
||||
return func(t T.Tuple6[A1, A2, A3, A4, A5, A6]) G_TUPLE6 {
|
||||
return A.TraverseTuple6(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T3],
|
||||
Ap[func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T4],
|
||||
Ap[func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], func() func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T5],
|
||||
Ap[G_TUPLE6, func() func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], G_T6],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT7 converts 7 [func() T] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]
|
||||
func SequenceT7[
|
||||
G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
T1, T2, T3, T4, T5, T6, T7 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
t6 G_T6,
|
||||
t7 G_T7,
|
||||
) G_TUPLE7 {
|
||||
return A.SequenceT7(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T4],
|
||||
Ap[func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T5],
|
||||
Ap[func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T6],
|
||||
Ap[G_TUPLE7, func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T7],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple7 converts a [T.Tuple7[func() T]] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]
|
||||
func SequenceTuple7[
|
||||
G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7]) G_TUPLE7 {
|
||||
return A.SequenceTuple7(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T4],
|
||||
Ap[func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T5],
|
||||
Ap[func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T6],
|
||||
Ap[G_TUPLE7, func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T7],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple7 converts a [T.Tuple7[func() T]] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]
|
||||
func TraverseTuple7[
|
||||
G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
F6 ~func(A6) G_T6,
|
||||
F7 ~func(A7) G_T7,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
A1, A2, A3, A4, A5, A6, A7, T1, T2, T3, T4, T5, T6, T7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func(T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) G_TUPLE7 {
|
||||
return func(t T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) G_TUPLE7 {
|
||||
return A.TraverseTuple7(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T4],
|
||||
Ap[func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T5],
|
||||
Ap[func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], func() func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T6],
|
||||
Ap[G_TUPLE7, func() func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], G_T7],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT8 converts 8 [func() T] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]
|
||||
func SequenceT8[
|
||||
G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
t6 G_T6,
|
||||
t7 G_T7,
|
||||
t8 G_T8,
|
||||
) G_TUPLE8 {
|
||||
return A.SequenceT8(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T5],
|
||||
Ap[func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T6],
|
||||
Ap[func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T7],
|
||||
Ap[G_TUPLE8, func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T8],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple8 converts a [T.Tuple8[func() T]] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]
|
||||
func SequenceTuple8[
|
||||
G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8]) G_TUPLE8 {
|
||||
return A.SequenceTuple8(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T5],
|
||||
Ap[func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T6],
|
||||
Ap[func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T7],
|
||||
Ap[G_TUPLE8, func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T8],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple8 converts a [T.Tuple8[func() T]] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]
|
||||
func TraverseTuple8[
|
||||
G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
F6 ~func(A6) G_T6,
|
||||
F7 ~func(A7) G_T7,
|
||||
F8 ~func(A8) G_T8,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
A1, A2, A3, A4, A5, A6, A7, A8, T1, T2, T3, T4, T5, T6, T7, T8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func(T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) G_TUPLE8 {
|
||||
return func(t T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) G_TUPLE8 {
|
||||
return A.TraverseTuple8(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T5],
|
||||
Ap[func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T6],
|
||||
Ap[func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], func() func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T7],
|
||||
Ap[G_TUPLE8, func() func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], G_T8],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT9 converts 9 [func() T] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]
|
||||
func SequenceT9[
|
||||
G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8, T9 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
t6 G_T6,
|
||||
t7 G_T7,
|
||||
t8 G_T8,
|
||||
t9 G_T9,
|
||||
) G_TUPLE9 {
|
||||
return A.SequenceT9(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T6],
|
||||
Ap[func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T7],
|
||||
Ap[func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T8],
|
||||
Ap[G_TUPLE9, func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T9],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
t9,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple9 converts a [T.Tuple9[func() T]] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]
|
||||
func SequenceTuple9[
|
||||
G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9]) G_TUPLE9 {
|
||||
return A.SequenceTuple9(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T6],
|
||||
Ap[func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T7],
|
||||
Ap[func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T8],
|
||||
Ap[G_TUPLE9, func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T9],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple9 converts a [T.Tuple9[func() T]] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]
|
||||
func TraverseTuple9[
|
||||
G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
F6 ~func(A6) G_T6,
|
||||
F7 ~func(A7) G_T7,
|
||||
F8 ~func(A8) G_T8,
|
||||
F9 ~func(A9) G_T9,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
A1, A2, A3, A4, A5, A6, A7, A8, A9, T1, T2, T3, T4, T5, T6, T7, T8, T9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func(T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) G_TUPLE9 {
|
||||
return func(t T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) G_TUPLE9 {
|
||||
return A.TraverseTuple9(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T6],
|
||||
Ap[func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T7],
|
||||
Ap[func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], func() func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T8],
|
||||
Ap[G_TUPLE9, func() func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], G_T9],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
f9,
|
||||
t)
|
||||
}
|
||||
}
|
||||
|
||||
// SequenceT10 converts 10 [func() T] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]
|
||||
func SequenceT10[
|
||||
G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
G_T10 ~func() T10,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](
|
||||
t1 G_T1,
|
||||
t2 G_T2,
|
||||
t3 G_T3,
|
||||
t4 G_T4,
|
||||
t5 G_T5,
|
||||
t6 G_T6,
|
||||
t7 G_T7,
|
||||
t8 G_T8,
|
||||
t9 G_T9,
|
||||
t10 G_T10,
|
||||
) G_TUPLE10 {
|
||||
return A.SequenceT10(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T6],
|
||||
Ap[func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T7],
|
||||
Ap[func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T8],
|
||||
Ap[func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T9],
|
||||
Ap[G_TUPLE10, func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T10],
|
||||
t1,
|
||||
t2,
|
||||
t3,
|
||||
t4,
|
||||
t5,
|
||||
t6,
|
||||
t7,
|
||||
t8,
|
||||
t9,
|
||||
t10,
|
||||
)
|
||||
}
|
||||
|
||||
// SequenceTuple10 converts a [T.Tuple10[func() T]] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]
|
||||
func SequenceTuple10[
|
||||
G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
G_T10 ~func() T10,
|
||||
T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9, G_T10]) G_TUPLE10 {
|
||||
return A.SequenceTuple10(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T6],
|
||||
Ap[func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T7],
|
||||
Ap[func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T8],
|
||||
Ap[func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T9],
|
||||
Ap[G_TUPLE10, func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T10],
|
||||
t)
|
||||
}
|
||||
|
||||
// TraverseTuple10 converts a [T.Tuple10[func() T]] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]
|
||||
func TraverseTuple10[
|
||||
G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
|
||||
F1 ~func(A1) G_T1,
|
||||
F2 ~func(A2) G_T2,
|
||||
F3 ~func(A3) G_T3,
|
||||
F4 ~func(A4) G_T4,
|
||||
F5 ~func(A5) G_T5,
|
||||
F6 ~func(A6) G_T6,
|
||||
F7 ~func(A7) G_T7,
|
||||
F8 ~func(A8) G_T8,
|
||||
F9 ~func(A9) G_T9,
|
||||
F10 ~func(A10) G_T10,
|
||||
G_T1 ~func() T1,
|
||||
G_T2 ~func() T2,
|
||||
G_T3 ~func() T3,
|
||||
G_T4 ~func() T4,
|
||||
G_T5 ~func() T5,
|
||||
G_T6 ~func() T6,
|
||||
G_T7 ~func() T7,
|
||||
G_T8 ~func() T8,
|
||||
G_T9 ~func() T9,
|
||||
G_T10 ~func() T10,
|
||||
A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func(T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) G_TUPLE10 {
|
||||
return func(t T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) G_TUPLE10 {
|
||||
return A.TraverseTuple10(
|
||||
Map[G_T1, func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||
Ap[func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T2],
|
||||
Ap[func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T3],
|
||||
Ap[func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T4],
|
||||
Ap[func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T5],
|
||||
Ap[func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T6],
|
||||
Ap[func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T7],
|
||||
Ap[func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T8],
|
||||
Ap[func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], func() func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T9],
|
||||
Ap[G_TUPLE10, func() func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], G_T10],
|
||||
f1,
|
||||
f2,
|
||||
f3,
|
||||
f4,
|
||||
f5,
|
||||
f6,
|
||||
f7,
|
||||
f8,
|
||||
f9,
|
||||
f10,
|
||||
t)
|
||||
}
|
||||
}
|
@@ -16,24 +16,24 @@
|
||||
package lazy
|
||||
|
||||
import (
|
||||
G "github.com/IBM/fp-go/v2/io/generic"
|
||||
T "github.com/IBM/fp-go/v2/tuple"
|
||||
"github.com/IBM/fp-go/v2/io"
|
||||
"github.com/IBM/fp-go/v2/tuple"
|
||||
)
|
||||
|
||||
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple
|
||||
|
||||
func SequenceT1[A any](a Lazy[A]) Lazy[T.Tuple1[A]] {
|
||||
return G.SequenceT1[Lazy[T.Tuple1[A]]](a)
|
||||
func SequenceT1[A any](a Lazy[A]) Lazy[tuple.Tuple1[A]] {
|
||||
return io.SequenceT1(a)
|
||||
}
|
||||
|
||||
func SequenceT2[A, B any](a Lazy[A], b Lazy[B]) Lazy[T.Tuple2[A, B]] {
|
||||
return G.SequenceT2[Lazy[T.Tuple2[A, B]]](a, b)
|
||||
func SequenceT2[A, B any](a Lazy[A], b Lazy[B]) Lazy[tuple.Tuple2[A, B]] {
|
||||
return io.SequenceT2(a, b)
|
||||
}
|
||||
|
||||
func SequenceT3[A, B, C any](a Lazy[A], b Lazy[B], c Lazy[C]) Lazy[T.Tuple3[A, B, C]] {
|
||||
return G.SequenceT3[Lazy[T.Tuple3[A, B, C]]](a, b, c)
|
||||
func SequenceT3[A, B, C any](a Lazy[A], b Lazy[B], c Lazy[C]) Lazy[tuple.Tuple3[A, B, C]] {
|
||||
return io.SequenceT3(a, b, c)
|
||||
}
|
||||
|
||||
func SequenceT4[A, B, C, D any](a Lazy[A], b Lazy[B], c Lazy[C], d Lazy[D]) Lazy[T.Tuple4[A, B, C, D]] {
|
||||
return G.SequenceT4[Lazy[T.Tuple4[A, B, C, D]]](a, b, c, d)
|
||||
func SequenceT4[A, B, C, D any](a Lazy[A], b Lazy[B], c Lazy[C], d Lazy[D]) Lazy[tuple.Tuple4[A, B, C, D]] {
|
||||
return io.SequenceT4(a, b, c, d)
|
||||
}
|
||||
|
Reference in New Issue
Block a user