blob: cb4be4bde56cbb57a35c09d6dd8cd61614c6e0a2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
trait TFn1B {
type In
type Out
type Apply[T <: In] <: Out
}
trait TFn1[I, O] extends TFn1B {
type In = I
type Out = O
}
trait >>[F1 <: TFn1[_, _], F2 <: TFn1[_, _]] extends TFn1[F1#In, F2#Out] {
type Apply[T] = F2#Apply[F1#Apply[T]]
}
|