In the following code (from Functional Programming in Scala ):
trait Functor[F[_]] { def map[A,B](fa: F[A])(f: A => B): F[B] } trait Monad[F[_]] { def unit[A](a: => A): F[A] def flatMap[A,B](ma: F[A])(f: A => F[B]): F[B] def apply[A](a: => A): F[A] }
I see the following warning:
[warn] C:\...\Monad.scala:3: higher-kinded type should be enabled [warn] by making the implicit value scala.language.higherKinds visible. [warn] This can be achieved by adding the import clause 'import scala.language.higherKinds' [warn] or by setting the compiler option -language:higherKinds. [warn] See the Scala docs for value scala.language.higherKinds for a discussion [warn] why the feature should be explicitly enabled. [warn] trait Functor[F[_]] { [warn] ^ [warn] C:\...\Monad.scala:7: higher-kinded type should be enabled [warn] by making the implicit value scala.language.higherKinds visible. [warn] trait Monad[F[_]] {
What's going on here? Note that I read this post but did not understand it.
source share