レコードと高階関数で書けるんだ!TAPLに載ってるのを読んで、へー(×2)と思ったので紹介するね!*1 # type t = { mutable name : string; mutable age : int };; type t = { mutable name : string; mutable age : int; } # type m = { get_name : unit -> string; get_age : unit -> int; birthday : unit -> unit };; type m = { get_name : unit -> string; get_age : unit -> int; birthday : unit -> unit; } # let obj = let self = { name = "osiire"; age = 20; } in