Source file StoreRef.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
(***************************************************************************)
(*                                                                         *)
(*                                 UnionFind                               *)
(*                                                                         *)
(*                       François Pottier, Inria Paris                     *)
(*                                                                         *)
(*  Copyright Inria. All rights reserved. This file is distributed under   *)
(*  the terms of the GNU Library General Public License version 2, with a  *)
(*  special exception on linking, as described in the file LICENSE.        *)
(***************************************************************************)

(* When OCaml's built-in store is used, no explicit store is needed. *)

type 'a store =
  unit

let new_store () =
  ()

(* Copying is not supported. *)

let copy _s =
  assert false

(* A reference is a primitive reference. *)

type 'a rref =
  'a ref

let make () v =
  ref v

let get () x =
  !x

let set () x v =
  x := v

let eq () x y =
  x == y