Introduced in 0.21.5
Use of the pipe operator when only one invocation is employed.
When the use of the pipe operator happens for a single invocation (instead of a multiple one, which would add a chain of them, usually staggered across many lines), it doesn't aid readibility.
This rule does not apply to functions with more than one argument. The reason for that is primarily application of higher-order functions
such as map or iter, for which type inference may break without using pipe operator. And it also it helps to have the collection,
which is iterated over, to be on top.
Example of single pipe operator usage:
let someFunc someParam =
someParam
|> someOtherFunc
Example of multiple pipe operator usage:
let someFunc someParam =
someParam
|> someOtherFunc
|> yetAnotherFunc
Example of single pipe applied to function with several arguments:
projectsInOrder
|> Seq.map(fun proj -> proj.AbsolutePath |> FileInfo)
Just use a normal function call, without the need for any operator:
let someFunc someParam =
someOtherFunc someParam
{
"avoidSinglePipeOperator": { "enabled": false }
}