Source file waves_intf.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
41
open Base
module type S = sig
module Data : Data.S
module Wave : Wave.M(Data).S
module Config : sig
type t =
{ mutable signals_width : int
; mutable values_width : int
; mutable wave_width : int
; mutable wave_height : int
; mutable start_cycle : int
; mutable start_signal : int
; mutable selected_signal : int
; mutable wave_cursor : int
; mutable signal_scroll : int
; mutable value_scroll : int
}
[@@deriving sexp]
val default : t
end
type t =
{ cfg : Config.t
; waves : Wave.t array
}
[@@deriving sexp_of]
end
module M (Data : Data.S) (Wave : Wave.M(Data).S) = struct
module type S = S with module Data := Data and module Wave := Wave
end
module type Waves = sig
module type S = S
module M = M
module Make (Data : Data.S) (Wave : Wave.M(Data).S) : M(Data)(Wave).S
end