# Fast and Functional Data Structures

## Documentation for package ‘Immutables’ version 1.0.1

- DESCRIPTION file
- User guides, package vignettes and other documentation
- Package NEWS
- Package README

## Help Pages

A C E F G I L M O P S U V misc

## -- A --

add_monoids | Add or Merge Measure Monoids
as.list.flexseq | Coerce a Sequence to Base List
as.list.interval_index | Coerce Interval Index to List
as.list.ordered_sequence | Coerce Ordered Sequence to List
as.list.priority_queue | Coerce Priority Queue to List
as_flexseq | Coerce Objects to 'flexseq'
as_interval_index | Build an Interval Index from 'x', 'start', and 'end'
as_iterator.flexseq | Iterate over a 'flexseq' (coro iterator)
as_iterator.priority_queue | Iterate over a 'priority_queue' (coro iterator)
as_ordered_sequence | Build an Ordered Sequence from 'x' and 'keys'
as_priority_queue | Build a Priority Queue from 'x' and 'priorities'

## -- C --

c.flexseq | Concatenate Sequences
count_between | Count Elements in a Key Range
count_key | Count Elements Matching One Key

## -- E --

elements_between | Return Elements in a Key Range

## -- F --

fapply | Fapply with S3 dispatch
flexseq | Construct a Persistent Flexible Sequence

## -- G --

get_measure | Read a Cached Subtree Measure
get_measures | Read Per-Element Monoid Measures

## -- I --

insert | Insert an Element
insert_at | Insert Elements at a Position
interval_index | Construct an Interval Index

## -- L --

length.flexseq | Sequence Length
length.interval_index | Interval Index Length
length.ordered_sequence | Ordered Sequence Length
length.priority_queue | Priority Queue Length
locate_by_predicate | Locate First Predicate Match
loop | Iterate over an iterator (re-exported from coro)
lower_bound | Find First Element with Key '>=' Query

## -- M --

max_endpoint | Maximum Right Endpoint
max_key | Maximum Key Value
max_priority | Maximum Priority Value
measure_monoid | Construct a Measure Monoid Specification
merge.flexseq | Merge Two Sequences
merge.interval_index | Merge Two Interval Indices
merge.ordered_sequence | Merge Two Ordered Sequences
merge.priority_queue | Merge Two Priority Queues
min_endpoint | Minimum Left Endpoint
min_key | Minimum Key Value
min_priority | Minimum Priority Value

## -- O --

ordered_sequence | Construct an Ordered Sequence

## -- P --

peek_all_containing | Peek All Intervals Containing a Query Interval
peek_all_key | Peek All Elements for One Key
peek_all_max | Peek All Maximum-Priority Elements
peek_all_min | Peek All Minimum-Priority Elements
peek_all_overlaps | Peek All Intervals Overlapping a Query Interval
peek_all_point | Peek All Intervals Matching a Point
peek_all_within | Peek All Intervals Within a Query Interval
peek_at | Peek at an Element by Position
peek_back | Peek at the Back Element
peek_containing | Peek First Interval Containing a Query Interval
peek_front | Peek at the Front Element
peek_key | Peek First Element for One Key
peek_max | Peek Maximum-Priority Element
peek_min | Peek Minimum-Priority Element
peek_overlaps | Peek First Interval Overlapping a Query Interval
peek_point | Peek First Interval Matching a Point
peek_within | Peek First Interval Within a Query Interval
plot_structure | Plot the Internal Finger-Tree Structure
pop_all_containing | Pop All Containing Intervals
pop_all_key | Pop All Elements for One Key
pop_all_max | Pop All Maximum-Priority Elements
pop_all_min | Pop All Minimum-Priority Elements
pop_all_overlaps | Pop All Overlapping Intervals
pop_all_point | Pop All Intervals Matching a Point
pop_all_within | Pop All Intervals Within a Query Interval
pop_at | Pop an Element by Position
pop_back | Pop the Back Element
pop_containing | Pop First Containing Interval
pop_front | Pop the Front Element
pop_key | Pop First Element for One Key
pop_max | Pop Maximum-Priority Element
pop_min | Pop Minimum-Priority Element
pop_overlaps | Pop First Overlapping Interval
pop_point | Pop First Interval Matching a Point
pop_within | Pop First Interval Within a Query Interval
print.flexseq | Print a flexseq
print.interval_index | Print an Interval Index Summary
print.ordered_sequence | Print an Ordered Sequence Summary
print.priority_queue | Print a Priority Queue Summary
priority_queue | Construct a Priority Queue
push_back | Push an Element to the Back
push_front | Push an Element to the Front

## -- S --

split_around_by_predicate | Split Around First Predicate Match
split_at | Split at a Position or Name
split_by_predicate | Split into Left and Right Parts
sub-.interval_index | Indexing for Interval Indexes
sub-.ordered_sequence | Indexing for Ordered Sequences
sub-.priority_queue | Indexing for Priority Queues

## -- U --

unlist.flexseq | Coerce a Sequence to an Atomic Vector
upper_bound | Find First Element with Key '>' Query

## -- V --

validate_name_state | Validate name-state invariants only (debug/test utility)
validate_tree | Validate full tree invariants (debug/test utility)

## -- misc --

$.flexseq | Flexseq Indexing
$.interval_index | Indexing for Interval Indexes
$.ordered_sequence | Indexing for Ordered Sequences
$.priority_queue | Indexing for Priority Queues
$<-.flexseq | Flexseq Indexing
$<-.interval_index | Indexing for Interval Indexes
$<-.ordered_sequence | Indexing for Ordered Sequences
$<-.priority_queue | Indexing for Priority Queues
[.flexseq | Flexseq Indexing
[.interval_index | Indexing for Interval Indexes
[.ordered_sequence | Indexing for Ordered Sequences
[.priority_queue | Indexing for Priority Queues
[<-.flexseq | Flexseq Indexing
[<-.interval_index | Indexing for Interval Indexes
[<-.ordered_sequence | Indexing for Ordered Sequences
[<-.priority_queue | Indexing for Priority Queues
[[.flexseq | Flexseq Indexing
[[.interval_index | Indexing for Interval Indexes
[[.ordered_sequence | Indexing for Ordered Sequences
[[.priority_queue | Indexing for Priority Queues
[[<-.flexseq | Flexseq Indexing
[[<-.interval_index | Indexing for Interval Indexes
[[<-.ordered_sequence | Indexing for Ordered Sequences
[[<-.priority_queue | Indexing for Priority Queues