Source file computation_status.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
open! Core

type 'input t =
  | Active of 'input
  | Inactive
[@@deriving sexp_of]

let of_option = function
  | Some x -> Active x
  | None -> Inactive
;;

let bind t ~f =
  match t with
  | Active x -> f x
  | Inactive -> Inactive
;;

let map t ~f =
  match t with
  | Active x -> Active (f x)
  | Inactive -> Inactive
;;