package ocaml-basics

  1. Overview
  2. Docs

Source file OBMonoid.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
module type Kernel = sig
  type 'a t

  val add: 'a t -> 'a t -> 'a t
  val zero: 'a t
end

module type S = sig
  include Kernel

  module Infix: sig
    val (++): 'a t -> 'a t -> 'a t
  end
end

module Make(K: Kernel) = struct
  type 'a t = 'a K.t

  let add = K.add
  let zero = K.zero

  module Infix = struct
    let (++) = K.add
  end
end