package grenier

  1. Overview
  2. Docs
A collection of various algorithms in OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

grenier-0.16.tbz
sha256=8fd22abf9f4589c206008654fa9eebb1cf4a58737ebb34138c6709520f36b75f
sha512=f60315eccfecaec9cb4c3bd020ef6f94d05ed6b13038109b904ead6e4e5662f4ed95415855b3c763293b762b696f1962045393fd592742d54cf5607d0ef2961a

doc/grenier.binder_introducer/Binder_introducer/index.html

Module Binder_introducerSource

Sourcetype 'a graph = 'a Fastdom.graph = {
  1. memoize : 'b. ('a -> 'b) -> 'a -> 'b;
    (*

    Memoize a function on nodes

    *)
  2. successors : 'b. ('b -> 'a -> 'b) -> 'b -> 'a -> 'b;
    (*

    Fold over successors of a node

    *)
}

Representation of a graph with nodes of type 'a

Rewrite a (possibly cyclic) directed graph by introducing let-binders at dominating nodes

Sourcetype ('term, 'var) binding_structure = {
  1. map_subterms : ('term -> 'term) -> 'term -> 'term;
  2. name_term : 'term -> 'var;
  3. var_term : 'var -> 'term;
  4. introduce_let : recursive:bool -> ('var * 'term) list -> 'term -> 'term;
}
Sourceval explicit_sharing : 'a graph -> ('a, 'b) binding_structure -> 'a -> 'a