title: switch function and object with scalaz' |>
body: <p>I can use <code>scalaz</code> <code>|&gt;</code> operator when I want to switch function and object so there can be a little more readability acquired. Let me introduce you a model function :<pre><code>def length2(x:String) = x.length * 2</code></pre> Now, I can write it in both ways:<pre><code>"aoeu" |> length2
  length2("aoeu")</code></pre>
  But if I define this function more generic, it stops working.<pre><code>def length2(x:SeqLike[<code>_</code>,<code>_</code>]) = x.length * 2
  length2("aoeu") // ok
  "aoeu" |> length2 // doesn't work</code></pre>
  Why the compiler doesn't understand this? There is definitely an implicit conversion from <code>String</code> to some class mixing in trait <code>SeqLike</code>.</p>