### Accepts any type of Ranges object as an element.
### CompressedNormalIRangesList cannot hold NormalIRanges as its elements,
### due to the compression combining everything into a single
### NormalIRanges (which could easily become non-normal). So just have it
"at least one element of object is not normal"
"'value' must extend class IntegerList or integer"
### TODO: Why not define this at the List level? Or even at the Vector level?
"'value' must be a single string or NULL"
"'universe' must be a single string or NULL"
"all elements in '...' must be Ranges objects"
"'compress' must be TRUE when passing the 'start' and 'end' arguments"
"all elements in '...' must be IRanges objects"
### Support subsetting by another RangesList
"'[' subsetting by RangesList is defunct.\n"
### Merges various RangesList objects into a single RangesList object.
### The merging is either by name (if all the RangesList objects have names),
### or by position (if any RangesList object is missing names).
### When merging by name, and in case of duplicated names within a given
### RangesList, the elements corresponding to the duplicated names are ignored.
### When merging by position, all the RangesList objects must have the same
### Note that the "range" method for RangesList objects expects "merge" to
"all RangesList objects to merge must have the same universe"
"if any RangesList objects to merge are missing names, "
### S3/S4 combo for as.data.frame.RangesList
### S3/S4 combo for as.list.CompressedNormalIRangesList
## this case handles RangesList of Partitioning objects (not combinable)
## otherwise, SimpleRangesList->SimpleIRangesList uses a methods package default
"cannot coerce a non-logical 'RleList' or a logical 'RleList' "
"with NAs to a CompressedIRangesList object"
"with NAs to a SimpleIRangesList object"
"with NAs to a CompressedNormalIRangesList object"
"with NAs to a SimpleNormalIRangesList object"
### The "max" and "min" methods for NormalIRangesList objects.
"'x' must be a CompressedNormalIRangesList object"
### Seems broken to me. We probably don't need this anyway!
#          function(x, f, drop = FALSE, ...)