Module Gist.Func

Operating on functions.

Functions

type 'a gist := 'a t
type ('a, 'b) t = ('a, 'b) func

The type for representing functions from type 'a to 'b.

val make : ?meta:('a -> 'b) Meta.t -> 'a gist -> 'b gist -> ('a, 'b) func

make d r is a function with domain represented by d and range represented by r.

val meta : ('a, 'b) func -> ('a -> 'b) Meta.t

meta f is the metadata of f.

val domain : ('a, 'b) func -> 'a gist

domain f is representation of the domain of f.

val range : ('a, 'b) func -> 'b gist

range f is representation of the range of f.

val with_meta : ('a -> 'b) Meta.t -> ('a, 'b) func -> ('a, 'b) func

with_meta meta f is f with meta meta.