diff --git a/cli/apply.go b/cli/apply.go index e6219da..45573ec 100644 --- a/cli/apply.go +++ b/cli/apply.go @@ -86,23 +86,19 @@ func generateSequenceT(f *os.File, i int) { } fmt.Fprintf(f, ") HKT_TUPLE%d {\n", i) - fmt.Fprintf(f, " return ") - - for j := i - 1; j >= 1; j-- { - fmt.Fprintf(f, "fap%d(", j) - } - fmt.Fprintf(f, "fmap(t1, tupleConstructor%d[", i) + fmt.Fprintf(f, " r1 := fmap(t1, tupleConstructor%d[", i) for j := 0; j < i; j++ { if j > 0 { fmt.Fprintf(f, ", ") } fmt.Fprintf(f, "T%d", j+1) } - fmt.Fprintf(f, "]())") + fmt.Fprintf(f, "]())\n") + for j := 1; j < i; j++ { - fmt.Fprintf(f, ", t%d)", j+1) + fmt.Fprintf(f, " r%d := fap%d(r%d, t%d)\n", j+1, j, j, j+1) } - fmt.Fprintf(f, "\n") + fmt.Fprintf(f, " return r%d\n", i) fmt.Fprintf(f, "}\n") } diff --git a/either/eitherize.go b/either/eitherize.go index fc0571a..64d87b4 100644 --- a/either/eitherize.go +++ b/either/eitherize.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:17.8012235 +0200 CEST m=+0.012514201 +// 2023-07-13 22:33:52.2075869 +0200 CEST m=+0.011616301 package either diff --git a/function/binds.go b/function/binds.go index 898c17f..d9eb673 100644 --- a/function/binds.go +++ b/function/binds.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:22.6778 +0200 CEST m=+0.027037401 +// 2023-07-13 22:33:56.702075 +0200 CEST m=+0.040313201 package function // Combinations for a total of 1 arguments diff --git a/function/gen.go b/function/gen.go index b631180..1d6cbfd 100644 --- a/function/gen.go +++ b/function/gen.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:19.9258272 +0200 CEST m=+0.046352501 +// 2023-07-13 22:33:54.31999 +0200 CEST m=+0.046543601 package function // Pipe0 takes an initial value t0 and successively applies 0 functions where the input of a function is the return value of the previous function diff --git a/internal/apply/gen.go b/internal/apply/gen.go index 75f821c..1a6cea0 100644 --- a/internal/apply/gen.go +++ b/internal/apply/gen.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:24.7376009 +0200 CEST m=+0.056113801 +// 2023-07-13 22:33:59.3945287 +0200 CEST m=+0.045093901 package apply @@ -25,7 +25,8 @@ func SequenceT1[ fmap MAP, t1 HKT_T1, ) HKT_TUPLE1 { - return fmap(t1, tupleConstructor1[T1]()) + r1 := fmap(t1, tupleConstructor1[T1]()) + return r1 } // tupleConstructor2 returns a curried version of [T.MakeTuple2] @@ -50,7 +51,9 @@ func SequenceT2[ t1 HKT_T1, t2 HKT_T2, ) HKT_TUPLE2 { - return fap1(fmap(t1, tupleConstructor2[T1, T2]()), t2) + r1 := fmap(t1, tupleConstructor2[T1, T2]()) + r2 := fap1(r1, t2) + return r2 } // tupleConstructor3 returns a curried version of [T.MakeTuple3] @@ -81,7 +84,10 @@ func SequenceT3[ t2 HKT_T2, t3 HKT_T3, ) HKT_TUPLE3 { - return fap2(fap1(fmap(t1, tupleConstructor3[T1, T2, T3]()), t2), t3) + r1 := fmap(t1, tupleConstructor3[T1, T2, T3]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + return r3 } // tupleConstructor4 returns a curried version of [T.MakeTuple4] @@ -118,7 +124,11 @@ func SequenceT4[ t3 HKT_T3, t4 HKT_T4, ) HKT_TUPLE4 { - return fap3(fap2(fap1(fmap(t1, tupleConstructor4[T1, T2, T3, T4]()), t2), t3), t4) + r1 := fmap(t1, tupleConstructor4[T1, T2, T3, T4]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + return r4 } // tupleConstructor5 returns a curried version of [T.MakeTuple5] @@ -161,7 +171,12 @@ func SequenceT5[ t4 HKT_T4, t5 HKT_T5, ) HKT_TUPLE5 { - return fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor5[T1, T2, T3, T4, T5]()), t2), t3), t4), t5) + r1 := fmap(t1, tupleConstructor5[T1, T2, T3, T4, T5]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + return r5 } // tupleConstructor6 returns a curried version of [T.MakeTuple6] @@ -210,7 +225,13 @@ func SequenceT6[ t5 HKT_T5, t6 HKT_T6, ) HKT_TUPLE6 { - return fap5(fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor6[T1, T2, T3, T4, T5, T6]()), t2), t3), t4), t5), t6) + r1 := fmap(t1, tupleConstructor6[T1, T2, T3, T4, T5, T6]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + r6 := fap5(r5, t6) + return r6 } // tupleConstructor7 returns a curried version of [T.MakeTuple7] @@ -265,7 +286,14 @@ func SequenceT7[ t6 HKT_T6, t7 HKT_T7, ) HKT_TUPLE7 { - return fap6(fap5(fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor7[T1, T2, T3, T4, T5, T6, T7]()), t2), t3), t4), t5), t6), t7) + r1 := fmap(t1, tupleConstructor7[T1, T2, T3, T4, T5, T6, T7]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + r6 := fap5(r5, t6) + r7 := fap6(r6, t7) + return r7 } // tupleConstructor8 returns a curried version of [T.MakeTuple8] @@ -326,7 +354,15 @@ func SequenceT8[ t7 HKT_T7, t8 HKT_T8, ) HKT_TUPLE8 { - return fap7(fap6(fap5(fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor8[T1, T2, T3, T4, T5, T6, T7, T8]()), t2), t3), t4), t5), t6), t7), t8) + r1 := fmap(t1, tupleConstructor8[T1, T2, T3, T4, T5, T6, T7, T8]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + r6 := fap5(r5, t6) + r7 := fap6(r6, t7) + r8 := fap7(r7, t8) + return r8 } // tupleConstructor9 returns a curried version of [T.MakeTuple9] @@ -393,7 +429,16 @@ func SequenceT9[ t8 HKT_T8, t9 HKT_T9, ) HKT_TUPLE9 { - return fap8(fap7(fap6(fap5(fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor9[T1, T2, T3, T4, T5, T6, T7, T8, T9]()), t2), t3), t4), t5), t6), t7), t8), t9) + r1 := fmap(t1, tupleConstructor9[T1, T2, T3, T4, T5, T6, T7, T8, T9]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + r6 := fap5(r5, t6) + r7 := fap6(r6, t7) + r8 := fap7(r7, t8) + r9 := fap8(r8, t9) + return r9 } // tupleConstructor10 returns a curried version of [T.MakeTuple10] @@ -466,5 +511,15 @@ func SequenceT10[ t9 HKT_T9, t10 HKT_T10, ) HKT_TUPLE10 { - return fap9(fap8(fap7(fap6(fap5(fap4(fap3(fap2(fap1(fmap(t1, tupleConstructor10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]()), t2), t3), t4), t5), t6), t7), t8), t9), t10) + r1 := fmap(t1, tupleConstructor10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]()) + r2 := fap1(r1, t2) + r3 := fap2(r2, t3) + r4 := fap3(r3, t4) + r5 := fap4(r4, t5) + r6 := fap5(r5, t6) + r7 := fap6(r6, t7) + r8 := fap7(r7, t8) + r9 := fap8(r8, t9) + r10 := fap9(r9, t10) + return r10 } diff --git a/option/optionize.go b/option/optionize.go index 7193f58..69f57e0 100644 --- a/option/optionize.go +++ b/option/optionize.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:27.1434383 +0200 CEST m=+0.033978401 +// 2023-07-13 22:34:01.4247214 +0200 CEST m=+0.038058501 package option // optionize converts a nullary function to an option diff --git a/tuple/gen.go b/tuple/gen.go index 1b97c64..ff072b3 100644 --- a/tuple/gen.go +++ b/tuple/gen.go @@ -1,6 +1,6 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots at -// 2023-07-13 22:20:30.1912026 +0200 CEST m=+0.048006501 +// 2023-07-13 22:34:03.5413159 +0200 CEST m=+0.012707901 package tuple