Posso usar o operador de pipeline no F # para passar um argumento para um construtor?

Este código reverte uma string:

let reverse (s : string) = new string(s.ToCharArray() |> Array.rev)

Isso pode ser reescrito usando o operador de pipeline para passar o argumento necessário para ostring() construtor? Por exemplo, isso parece mais idiomático:

// Doesn't compile:
let reverse (s : string) = s.ToCharArray() |> Array.rev |> new string

Da mesma forma, por que não consigo usar ostring operador da seguinte maneira?

let reverse2 (s : string) = s.ToCharArray() |> Array.rev |> string

Aqui está em ação:

> reverse2 "foo" ;;
val it : string = "System.Char[]"

Retorna o tipo em vez de "oof".

questionAnswers(2)

yourAnswerToTheQuestion