`module type Signal = `

`sig`

`type ``'a`

t

`val eval : ``'a t ->`

default:'a -> Biocaml_genomeMap.Chromosome.t -> int -> 'a

function evaluation at some point in the genome

`val fold : ``'a t ->`

init:'c -> f:('c -> Biocaml_genomeMap.Make.location -> 'b -> 'c) -> 'c

folds on constant intervals of the function, in increasing order

`val to_stream : ``'a t ->`

(Biocaml_genomeMap.Make.location * 'a) Stream.t

stream over all constant intervals of the function, in
increasing order

`val of_stream : ``('a -> 'a -> 'a) ->`

(Biocaml_genomeMap.Make.location * 'a) Stream.t ->

'a t

`of_stream f ls`

builds a signal from a collection of
annotated locations. `f`

is used when two locations intersect, to
compute the annotation on their intersection. *Beware*, `f`

should be associative and commutative since when many locations
in `ls`

intersect, there is no guarantee on the order followed to
aggregate them and their annotation.`end`

Partial function over the genome (e.g. conservation signal)

This module implements a partial function over the genome: each
base may be associated to a value. Alternatively, this can be
seen as a collection of non-overlapping regions each labeled
with a value