>>> Seq.fromList [] |> a fromList [a]
>>> Seq.fromList [b, c] |> a fromList [b,c,a]
>>> LazyT.pack "hello" |> '!' "hello!"
(1 :| [2,3]) |> 4 |> 5 == 1 :| [2,3,4,5]
>>> "" |> 'a' "a"
>>> "bc" |> 'a' "bca"
>>> :set -XOverloadedStrings -XLinearTypes >>> runBuffer (\b -> b |> "foo" |> "bar") "foobar"
>>> 3 |> succ |> recip |> negate -0.25
\ x -> (x |> f) == f x
\ x -> (x |> f |> g) == g (f x)
>>> fromList [1, 2, 3] |> 4 fromList [1,2,3,4]