package ppx_repr
PPX deriver for type representations
Install
Dune Dependency
Authors
Maintainers
Sources
repr-fuzz-0.3.0.tbz
sha256=d9bd2fe51c2eb6fca27731034c46f9a77dc8bc9fb7b76216f8a571603d6e7d74
sha512=7b4ad2cbcd92f6647a1abe1d82557f02e4955c5f37f02089388c752e23b865af0f55fdd6bc63a1d2a00962baf96ccd99ccd9b8ecd8898dcc2a0cd17302f067c3
doc/src/ppx_repr.lib/monad_intf.ml.html
Source file monad_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 42 43 44 45 46 47 48 49 50 51 52 53
(* * Copyright (c) 2019-2020 Craig Ferguson <me@craigfe.io> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) module type S = sig type ('a, 'p) t val return : 'a -> ('a, 'p) t val map : ('a -> 'b) -> ('a, 'p) t -> ('b, 'p) t val bind : ('a -> ('b, 'p) t) -> ('a, 'p) t -> ('b, 'p) t val sequence : ('a, 'p) t list -> ('a list, 'p) t module Syntax : sig val ( let+ ) : ('a, 'p) t -> ('a -> 'b) -> ('b, 'p) t val ( let* ) : ('a, 'p) t -> ('a -> ('b, 'p) t) -> ('b, 'p) t end end module type Monad = sig module type S = S module Reader : sig (** Computations that read values from a shared environment. *) include S (** @inline *) val run : ('a, 'e) t -> 'e -> 'a (** Runs a {!('a, 'e) t} and extracts the final value ['a] from it. *) val ask : ('e, 'e) t (** Retrieves the monad environment. *) val asks : ('e -> 'a) -> ('a, 'e) t (** Retrieves a projection of the current monad environment. *) val local : ('e -> 'e) -> ('a, 'e) t -> ('a, 'e) t (** [local f m] executes a computation in [m] in an environment modified by [f]. *) end end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>