Please, review my implementation of the F# pipeline operator in Scala
class PipelineContainer[F](value: F) {
def |>[G] (f: F => 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 |> reverse |> tail |> head
}