https://twitter.com/pocketberserker/status/313441791766564864
type T[-A, -B] = (A => Any) \/ (B => Any)
type Handle[+K, +O] = (O => Any) => K
def left[A]: Handle[T[A, Any], A] = \/.left(_)
↓ package.scalaのtype T
を展開
def left[A]: Handle[(A => Any) \/ (Any => Any), A] = \/.left(_)
↓ Handle
を展開。本体もアンダースコアではなく、明示的に引数と型書いた
def left[A]: (A => Any) => ((A => Any) \/ (Any => Any)) = {f: (A => Any) => \/.left(f) }
つまり、 Tee.left
は、(A => Any)
という関数を受け取って、それを単にleftに包んで返す関数?