diff --git a/main-settings/src/main/scala/sbt/std/InputConvert.scala b/main-settings/src/main/scala/sbt/std/InputConvert.scala index 3a830fa54..59fe8794b 100644 --- a/main-settings/src/main/scala/sbt/std/InputConvert.scala +++ b/main-settings/src/main/scala/sbt/std/InputConvert.scala @@ -12,7 +12,6 @@ import sbt.internal.util.appmacro.{ Convert, ContextUtil } import sbt.internal.util.complete.Parser import Def.Initialize import sbt.util.Applicative -import sbt.internal.util.Types.Compose import scala.quoted.* class InputInitConvert[C <: Quotes & scala.Singleton](override val qctx: C, valStart: Int) @@ -94,7 +93,7 @@ class FullConvert[C <: Quotes & scala.Singleton](override val qctx: C, valStart: } Converted.success(t.asTerm) - def appExpr: Expr[Applicative[Compose[Initialize, Task]]] = + def appExpr: Expr[Applicative[[a] =>> Initialize[Task[a]]]] = '{ FullInstance.initializeTaskMonad } end FullConvert diff --git a/main-settings/src/main/scala/sbt/std/Instances.scala b/main-settings/src/main/scala/sbt/std/Instances.scala index 3ea614a4f..223372d65 100644 --- a/main-settings/src/main/scala/sbt/std/Instances.scala +++ b/main-settings/src/main/scala/sbt/std/Instances.scala @@ -10,7 +10,7 @@ package std import Def.Initialize import sbt.util.{ Applicative, Monad } -import sbt.internal.util.Types.{ const, Compose } +import sbt.internal.util.Types.const import sbt.internal.util.complete.{ DefaultParsers, Parser } object InitializeInstance: @@ -28,8 +28,8 @@ end InitializeInstance private[std] object ComposeInstance: import InitializeInstance.initializeMonad val InitInstance = summon[Applicative[Initialize]] - val F1F2: Applicative[Compose[Initialize, Task]] = - summon[Applicative[Compose[Initialize, Task]]] + val F1F2: Applicative[[a] =>> Initialize[Task[a]]] = + summon[Applicative[[a] =>> Initialize[Task[a]]]] end ComposeInstance object ParserInstance: @@ -60,8 +60,8 @@ object FullInstance: ) given Monad[Initialize] = InitializeInstance.initializeMonad - val F1F2: Applicative[Compose[Initialize, Task]] = ComposeInstance.F1F2 - given initializeTaskMonad: Monad[Compose[Initialize, Task]] with + val F1F2: Applicative[[a] =>> Initialize[Task[a]]] = ComposeInstance.F1F2 + given initializeTaskMonad: Monad[[a] =>> Initialize[Task[a]]] with type F[x] = Initialize[Task[x]] override def pure[A1](x: () => A1): Initialize[Task[A1]] = F1F2.pure(x) override def ap[A1, A2](ff: Initialize[Task[A1 => A2]])( diff --git a/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala b/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala index 78712d7f5..78a46a933 100644 --- a/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala +++ b/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala @@ -11,15 +11,6 @@ trait TypeFunctions: type Id[X] = X type NothingK[X] = Nothing - /* - import TypeFunctions._ - sealed trait Const[A] { type Apply[B] = A } - sealed trait ConstK[A] { type l[L[x]] = A } - type ConstK[A] = [F[_]] =>> A - */ - - type Compose[F1[_], F2[_]] = [a] =>> F1[F2[a]] - sealed trait ∙[A[_], B[_]] { type l[T] = A[B[T]] } private type AnyLeft[A] = Left[A, Nothing] private type AnyRight[A] = Right[Nothing, A] @@ -40,10 +31,6 @@ trait TypeFunctions: final def idK[F[_]]: [a] => F[a] => F[a] = [a] => (fa: F[a]) => fa // .setToString("TypeFunctions.idK") - inline def nestCon[F1[_], F2[_], F3[_]]( - f: [a] => F1[a] => F2[a] - ): [a] => Compose[F1, F3][a] => Compose[F2, F3][a] = - f.asInstanceOf[[a] => Compose[F1, F3][a] => Compose[F2, F3][a]] end TypeFunctions /* diff --git a/util-collection/src/main/scala/sbt/util/Applicative.scala b/util-collection/src/main/scala/sbt/util/Applicative.scala index 8d5c00a20..088ee3559 100644 --- a/util-collection/src/main/scala/sbt/util/Applicative.scala +++ b/util-collection/src/main/scala/sbt/util/Applicative.scala @@ -7,8 +7,6 @@ package sbt.util -import sbt.internal.util.Types.Compose - trait Applicative[F[_]] extends Apply[F]: def pure[A1](x: () => A1): F[A1] @@ -20,14 +18,12 @@ object Applicative: given Applicative[Option] = OptionInstances.optionMonad given Applicative[List] = ListInstances.listMonad - given [F1[_], F2[_]](using Applicative[F1], Applicative[F2]): Applicative[Compose[F1, F2]] with + given [F1[_], F2[_]](using Applicative[F1], Applicative[F2]): Applicative[[a] =>> F1[F2[a]]] with type F[x] = F1[F2[x]] val F1 = summon[Applicative[F1]] val F2 = summon[Applicative[F2]] override def pure[A1](x: () => A1): F1[F2[A1]] = F1.pure(() => F2.pure(x)) - override def ap[A1, A2](f1f2f: Compose[F1, F2][A1 => A2])( - f1f2a: Compose[F1, F2][A1] - ): F1[F2[A2]] = + override def ap[A1, A2](f1f2f: F1[F2[A1 => A2]])(f1f2a: F1[F2[A1]]): F1[F2[A2]] = F1.ap(F1.map(f1f2f) { (f2f: F2[A1 => A2]) => (f2a: F2[A1]) => F2.ap(f2f)(f2a) })(f1f2a) end Applicative