24 lines
372 B
OCaml
24 lines
372 B
OCaml
class virtual name =
|
|
object
|
|
end
|
|
|
|
and func (args_ty, ret_ty) =
|
|
object(self)
|
|
inherit name
|
|
|
|
val mutable memo_args = None
|
|
|
|
method arguments =
|
|
match memo_args with
|
|
| Some xs -> xs
|
|
| None ->
|
|
let args = List.map (fun ty -> new argument(self, ty)) args_ty in
|
|
memo_args <- Some args; args
|
|
end
|
|
|
|
and argument (func, ty) =
|
|
object
|
|
inherit name
|
|
end
|
|
;;
|