AA
Size: a a a
AA
X
Oℕ
Y
AA
Y
X
Y
Oℕ
AA
AA
AA
AA
AA
AA
AA
AA
> let inline foo a b = a + b;;
val inline foo :
a: ^a -> b: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
> let baz f a b = f a b;;
val baz : f:('a -> 'b -> 'c) -> a:'a -> b:'b -> 'c
> let bar a b = baz foo a b;;
val bar : a:int -> b:int -> int
'a
это дотнетные дженерики, ^a
- нет, когда код на одном емеле используется в коде на другом происходит мономорфизм рестрикшон и дефолтингDF
DF