AV
Size: a a a
AV
AV
λO
Field a
и далее intField :: Int -> Field Int
Y
AV
AV
AV
AP
type Field a = {
show : a -> String
value : a
...
}
intField : Int -> Field Int -- "конструктор"
intField x =
{ value = x
, show = toString
}
showField : Field a -> String
showField x = x.show x.value -- диспатчим ad-hoc
Y
λO
λO
λO
Y
type Field a = {
show : a -> String
value : a
...
}
intField : Int -> Field Int -- "конструктор"
intField x =
{ value = x
, show = toString
}
showField : Field a -> String
showField x = x.show x.value -- диспатчим ad-hoc
Y
AV
AV
(T + (0+K))
AV
T
- твой тип, а 0+K возможная аннотицияAV
AV