Pipeline operator in scala Please, review my implementation of the F# pipeline operator in Scala

class PipelineContainer[F](value: F) {
  def |&gt;[G] (f: F =&gt; G) = f(value)
}

implicit def pipelineEnrichment[T](xs: T) = new PipelineContainer(xs)

  test("Find the last but one element in the list") {
    // example: penultimate(List(1,2,3,3,4,5))
    // result: 4

    def reverse[T](list: List[T]) = list.reverse

    def head[T](list: List[T]) = list.head

    def tail[T](list: List[T]) = list.tail

    def lastButOne[T](list: List[T]) = list |&gt; reverse |&gt; tail |&gt; head
  }
There isn't much that can be reviewed. If you use Scala 2.10 then you should use an implicit class instead of an implicit conversion. Even better: use an implicit value class:

implicit class PipelineContainer[F](val value: F) extends AnyVal {
  def |&gt;[G] (f: F =&gt; G) = f(value)
}


Furthermore, in Scala, type parameter are enumerated starting with an A, but this is more a style issue.