Scala ~> (tilde greater than) operator

operators, scala

Solution

`~>` is just the placeholder-name for the type-parameter of `Category`. Like the `T` in `class Option[T]`.

Additionally, Scala syntax allows you to write `B ~> C` as a shorthand for `~>[B, C]`.

Maybe things get clearer, if you rename it:

trait Category[Mapping[_, _]] {
  def compose[A, B, C](f: Mapping[B, C])(g: Mapping[A, B]): Mapping[A, C]
  def id[A]: Mapping[A, A]
}

Problem

I have the following scala class definition (found in a paper), modeling categories: ``` trait Category[~>[_, _]] { def compose[A, B, C] (f: B ~> C) (g: A ~> B) : A ~> C def id[A]: A ~> A } ``` can someone explain me what the '~>' means in the Category type parameter, and in the methods return type? Or direct me to a resource that explains it... I'm new to Scala (coming from Java), so forgive me if that's something a scala user should have known... Thank you in advance

Original source