Plasma GitLab Archive
Projects Blog Knowledge

(* $Id: netmcore_ref.ml 1580 2011-04-14 16:06:32Z gerd $ *)

open Netmcore_heap

type 't sref = 't ref heap

type 't sref_descr = 't ref descr

let descr_of_sref = descr_of_heap
let sref_of_descr = heap_of_descr


let sref res_id x =
  create_heap res_id (minimum_size x) (ref x)

let assign r x =
  modify r (fun mut -> (root r) := add mut x)

let deref_ro r =
  !(root r)

let deref_p r f =
  with_value r (fun () -> !(root r)) f

let deref_c r =
  deref_p r copy

let heap r =
  Obj.magic r

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml