package ppx_repr
PPX deriver for type representations
Install
Dune Dependency
Authors
Maintainers
Sources
repr-fuzz-0.6.0.tbz
sha256=bb8a0f94df002fc19dcb598834271eaddeffa1d57041491ff3d2b9e3e80d075e
sha512=2218845ba1b42e3983bc9727879c704433571655c85251c43edb9bf85ceec35c3b662091e32a744a5340a9c641b1cb5fa591389a68832faf0bb71981d6d91e1d
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)"
>