final
object
HKTypeLambda
extends
TypeLambdaCompanion
Constructors
Members
def
any
(
n:
Int
)
(
implicit
ctx:
Context
)
: HKTypeLambda
def
apply
(
paramNames:
List
[
TypeName
]
)
(
paramInfosExp:
HKTypeLambda => List
[
TypeBounds
]
,
resultTypeExp:
HKTypeLambda => Type
)
(
implicit
ctx:
Context
)
: HKTypeLambda
override
def
fromParams
(
params:
List
[
PI
]
,
resultType:
Type
)
(
implicit
ctx:
Context
)
: Type
Distributes Lambda inside type bounds. Examples:
type T[X] = U becomes type T = [X] -> U
type T[X] <: U becomes type T >: Nothign <: ([X] -> U)
type T[X] >: L <: U becomes type T >: ([X] -> L) <: ([X] -> U)
Distributes Lambda inside type bounds. Examples:
type T[X] = U becomes type T = [X] -> U
type T[X] <: U becomes type T >: Nothign <: ([X] -> U)
type T[X] >: L <: U becomes type T >: ([X] -> L) <: ([X] -> U)
override
def
paramName
(
param:
Of
[
TypeName
]
)
(
implicit
ctx:
Context
)
: TypeName
def
unapply
(
tl:
HKTypeLambda
)
: Some
[
(
List
[
LambdaParam
], Type
)
]