package bonsai

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file theme.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
open! Core
open! Import
module Constants = Constants
module Underlying = Underlying_intf

module type Impl_s = sig
  include Underlying.S

  val singleton : c
end

type t = (module Impl_s)

let override_constants (theme : t) ~(f : Constants.t -> Constants.t) : t =
  let module T = (val theme) in
  let prev_constants = T.singleton#constants in
  let new_constants = f prev_constants in
  (module struct
    class c =
      object
        inherit T.c
        method! constants = new_constants
      end

    let singleton = new c
  end)
;;

let name ((module T) : t) = T.singleton#theme_name
OCaml

Innovation. Community. Security.