Значение символа # перед типами js_of_ocaml dom
Что означает знак "#" в следующей подписи?
val insertBefore : #node Js.t -> #node Js.t -> #node Js.t Js.opt -> unit
1 ответ
Решение
Увидеть #-types
раздел справочного руководства по OCaml ( http://caml.inria.fr/pub/docs/manual-ocaml/types.html).
Тип функции #node -> t
берет объект класса node
или его подкласс и возвращает t
,
Например,
class c = object method x = 1 end
let g : #c -> int = fun o -> o#x
функция g
может взять объект класса c
или его подкласс. #c
это сокращение от < x : int; ..>
следовательно,
let h = (g : < x : int; ...> -> int)
проверено типом.