@@ -121,35 +121,35 @@ object hlist {
121
121
object NatTRel {
122
122
def apply [L1 <: HList , F1 [_], L2 <: HList , F2 [_]](implicit natTRel : NatTRel [L1 , F1 , L2 , F2 ]) = natTRel
123
123
124
- implicit def hnilNatTRel1 [F1 [_], F2 [_]] = new NatTRel [HNil , F1 , HNil , F2 ] {
124
+ implicit def hnilNatTRel1 [F1 [_], F2 [_]]: NatTRel [ HNil , F1 , HNil , F2 ] = new NatTRel [HNil , F1 , HNil , F2 ] {
125
125
def map (f : F1 ~> F2 , fa : HNil ): HNil = HNil
126
126
}
127
127
128
- implicit def hnilNatTRel2 [F1 [_], H2 ] = new NatTRel [HNil , F1 , HNil , Const [H2 ]# λ] {
128
+ implicit def hnilNatTRel2 [F1 [_], H2 ]: NatTRel [ HNil , F1 , HNil , Const [ H2 ] # λ] = new NatTRel [HNil , F1 , HNil , Const [H2 ]# λ] {
129
129
def map (f : F1 ~> Const [H2 ]# λ, fa : HNil ): HNil = HNil
130
130
}
131
131
132
- implicit def hlistNatTRel1 [H , F1 [_], F2 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , F2 ]) =
132
+ implicit def hlistNatTRel1 [H , F1 [_], F2 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , F2 ]): NatTRel [ F1 [ H ] :: T1 , F1 , F2 [ H ] :: T2 , F2 ] =
133
133
new NatTRel [F1 [H ] :: T1 , F1 , F2 [H ] :: T2 , F2 ] {
134
134
def map (f : F1 ~> F2 , fa : F1 [H ] :: T1 ): F2 [H ] :: T2 = f(fa.head) :: nt.map(f, fa.tail)
135
135
}
136
136
137
- implicit def hlistNatTRel2 [H , F2 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , Id , T2 , F2 ]) =
137
+ implicit def hlistNatTRel2 [H , F2 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , Id , T2 , F2 ]): NatTRel [ H :: T1 , Id , F2 [ H ] :: T2 , F2 ] =
138
138
new NatTRel [H :: T1 , Id , F2 [H ] :: T2 , F2 ] {
139
139
def map (f : Id ~> F2 , fa : H :: T1 ): F2 [H ] :: T2 = f(fa.head) :: nt.map(f, fa.tail)
140
140
}
141
141
142
- implicit def hlistNatTRel3 [H , F1 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , Id ]) =
142
+ implicit def hlistNatTRel3 [H , F1 [_], T1 <: HList , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , Id ]): NatTRel [ F1 [ H ] :: T1 , F1 , H :: T2 , Id ] =
143
143
new NatTRel [F1 [H ] :: T1 , F1 , H :: T2 , Id ] {
144
144
def map (f : F1 ~> Id , fa : F1 [H ] :: T1 ): H :: T2 = f(fa.head) :: nt.map(f, fa.tail)
145
145
}
146
146
147
- implicit def hlistNatTRel4 [H1 , F1 [_], T1 <: HList , H2 , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , Const [H2 ]# λ]) =
147
+ implicit def hlistNatTRel4 [H1 , F1 [_], T1 <: HList , H2 , T2 <: HList ](implicit nt : NatTRel [T1 , F1 , T2 , Const [H2 ]# λ]): NatTRel [ F1 [ H1 ] :: T1 , F1 , H2 :: T2 , Const [ H2 ] # λ] =
148
148
new NatTRel [F1 [H1 ] :: T1 , F1 , H2 :: T2 , Const [H2 ]# λ] {
149
149
def map (f : F1 ~> Const [H2 ]# λ, fa : F1 [H1 ] :: T1 ): H2 :: T2 = f(fa.head) :: nt.map(f, fa.tail)
150
150
}
151
151
152
- implicit def hlistNatTRel5 [H1 , T1 <: HList , H2 , T2 <: HList ](implicit nt : NatTRel [T1 , Id , T2 , Const [H2 ]# λ]) =
152
+ implicit def hlistNatTRel5 [H1 , T1 <: HList , H2 , T2 <: HList ](implicit nt : NatTRel [T1 , Id , T2 , Const [H2 ]# λ]): NatTRel [ H1 :: T1 , Id , H2 :: T2 , Const [ H2 ] # λ] =
153
153
new NatTRel [H1 :: T1 , Id , H2 :: T2 , Const [H2 ]# λ] {
154
154
def map (f : Id ~> Const [H2 ]# λ, fa : H1 :: T1 ): H2 :: T2 = f(fa.head) :: nt.map(f, fa.tail)
155
155
}
@@ -214,12 +214,12 @@ object hlist {
214
214
215
215
type Aux [L <: HList , Out0 <: HKernel ] = HKernelAux [L ] { type Out = Out0 }
216
216
217
- implicit def mkHNilHKernel = new HKernelAux [HNil ] {
217
+ implicit def mkHNilHKernel : Aux [ HNil , HNilHKernel ] = new HKernelAux [HNil ] {
218
218
type Out = HNilHKernel
219
219
def apply () = HNilHKernel
220
220
}
221
221
222
- implicit def mkHListHKernel [H , T <: HList , CtOut <: HKernel ](implicit ct : HKernelAux .Aux [T , CtOut ]) = new HKernelAux [H :: T ] {
222
+ implicit def mkHListHKernel [H , T <: HList , CtOut <: HKernel ](implicit ct : HKernelAux .Aux [T , CtOut ]): Aux [ H :: T , HConsHKernel [ H , CtOut ]] = new HKernelAux [H :: T ] {
223
223
type Out = HConsHKernel [H , CtOut ]
224
224
def apply () = HConsHKernel [H , CtOut ](ct())
225
225
}
@@ -2740,7 +2740,7 @@ object hlist {
2740
2740
type Aux [L <: HList , V , P <: Poly , Out0 <: HList ] = RightScanner0 [L , V , P ] { type Out = Out0 }
2741
2741
}
2742
2742
2743
- implicit def hlistRightScanner0 [H , H0 , T <: HList , P <: Poly , C2Result ](implicit ev : Case2 .Aux [P , H0 , H , C2Result ]) =
2743
+ implicit def hlistRightScanner0 [H , H0 , T <: HList , P <: Poly , C2Result ](implicit ev : Case2 .Aux [P , H0 , H , C2Result ]): RightScanner0 . Aux [ H :: T , H0 , P , C2Result :: H :: T ] =
2744
2744
new RightScanner0 [H :: T , H0 , P ]{
2745
2745
type Out = C2Result :: H :: T
2746
2746
@@ -2845,7 +2845,7 @@ object hlist {
2845
2845
}
2846
2846
2847
2847
implicit def hlistPatch2 [M <: Nat , L <: HList , In <: HList , OutL <: HList , OutP <: HList ]
2848
- (implicit drop : Drop .Aux [L , M , OutL ], prepend : Prepend .Aux [In , OutL , OutP ]) =
2848
+ (implicit drop : Drop .Aux [L , M , OutL ], prepend : Prepend .Aux [In , OutL , OutP ]): Patcher . Aux [_0, M , L , In , OutP ] =
2849
2849
new Patcher [_0, M , L , In ]{
2850
2850
type Out = OutP
2851
2851
@@ -3049,7 +3049,7 @@ object hlist {
3049
3049
}
3050
3050
3051
3051
trait LowPriorityCombinations {
3052
- implicit def combinationHNil [N <: Nat ] =
3052
+ implicit def combinationHNil [N <: Nat ]: Combinations . Aux [ N , HNil , HNil ] =
3053
3053
new Combinations [N , HNil ] {
3054
3054
type Out = HNil
3055
3055
def apply (l : HNil ): Out = HNil
0 commit comments