property-list- Apple property list parser

Safe HaskellNone




linearize :: PropertyList -> BPListRecords Abs Source

Flatten a PropertyList to a sequence of BPListRecords. The resulting records will use absolute addressing and will not have any duplicates.

delinearize :: BPListRecords Abs -> PartialPropertyList UnparsedBPListRecord Source

Reconstruct a property list from a collection of BPListRecords

absolutize :: BPListRecords Rel -> BPListRecords Abs Source

Take some BPListRecords using relative addressing and change them to use absolute addressing

intern :: BPListRecords Abs -> BPListRecords Abs Source

Take some BPListRecords using absolute addressing and eliminate all duplicate records, compact the table and update all internal references.

Does not necessarily yield a totally deduplicated table; The process of interning can introduce duplicate records (because it alters arrays, dicts and sets). All other node types will be deduplicated in one pass, though, which is usually sufficient.