Safe Haskell  None 

 newtype Inverted occ = Inverted {
 unInverted :: Parts occ
 type Parts occ = Map Context (Part occ)
 type Part occ = PrefixTree occ
 type Inverted0 = Inverted Occ0
 type InvertedCompressed = Inverted OccCompressed
 type InvertedSerialized = Inverted OccSerialized
 type InvertedCSerialized = Inverted OccCSerialized
 type InvertedOSerialized = Inverted OccOSerialized
 class ComprOccurrences s where
 toOccurrences :: s > Occurrences
 fromOccurrences :: Occurrences > s
 emptyInverted0 :: Inverted0
 emptyInvertedCompressed :: InvertedCompressed
 emptyInvertedSerialized :: InvertedSerialized
 emptyInvertedCSerialized :: InvertedCSerialized
 emptyInvertedOSerialized :: InvertedOSerialized
 class Sizeof a where
 sizeofAttrsInverted :: Sizeof i => Inverted i > Int64
 mapOcc :: ComprOccurrences s => (Occurrences > Occurrences) > s > s
 zipOcc :: ComprOccurrences s => (Occurrences > Occurrences > Occurrences) > s > s > s
 emptyOcc :: ComprOccurrences s => s
 theOcc :: ComprOccurrences s => s > Occurrences
 nullOcc :: ComprOccurrences s => s > Bool
 unionOcc :: ComprOccurrences s => Occurrences > s > s
 diffOcc :: ComprOccurrences s => Occurrences > s > s
 insertPosOcc :: ComprOccurrences s => DocId > Position > s > s
 deletePosOcc :: ComprOccurrences s => DocId > Position > s > s
 updateDocIdOcc :: ComprOccurrences s => (DocId > DocId) > s > s
 deleteDocIds :: ComprOccurrences s => Occurrences > s > s
 removeDocIdsInverted :: ComprOccurrences i => Occurrences > Inverted i > Inverted i
Documentation
The index consists of a table which maps documents to ids and a number of index parts.
Inverted  

type Parts occ = Map Context (Part occ)Source
The index parts are identified by a name, which should denote the context of the words.
type Part occ = PrefixTree occSource
The index part is the real inverted index. Words are mapped to their occurrences. The part is implemented as a prefix tree
type Inverted0 = Inverted Occ0Source
The pure inverted index implemented as a prefix tree without any space optimizations. This may be taken as a reference for space and time measurements for the other index structures
type InvertedCompressed = Inverted OccCompressedSource
The inverted index with simple9 encoding of the occurence sets
type InvertedSerialized = Inverted OccSerializedSource
The inverted index with serialized occurence maps with simple9 encoded sets
type InvertedCSerialized = Inverted OccCSerializedSource
The inverted index with serialized occurence maps with simple9 encoded sets and with the serialized bytestrings compressed with bzip2
type InvertedOSerialized = Inverted OccOSerializedSource
The pure inverted index with serialized occurence maps and with the serialized bytestrings compressed with bzip2, no simple9 encoding. This is the most space efficient index of the 5 variants, even a few percent smaller then InvertedCSerialized, and a few percent faster in lookup
class ComprOccurrences s whereSource
toOccurrences :: s > OccurrencesSource
fromOccurrences :: Occurrences > sSource
ComprOccurrences OccOSerialized  
ComprOccurrences OccCSerialized  
ComprOccurrences OccSerialized  
ComprOccurrences OccCompressed  
ComprOccurrences Occ0 
sizeofAttrsInverted :: Sizeof i => Inverted i > Int64Source
mapOcc :: ComprOccurrences s => (Occurrences > Occurrences) > s > sSource
zipOcc :: ComprOccurrences s => (Occurrences > Occurrences > Occurrences) > s > s > sSource
emptyOcc :: ComprOccurrences s => sSource
theOcc :: ComprOccurrences s => s > OccurrencesSource
nullOcc :: ComprOccurrences s => s > BoolSource
unionOcc :: ComprOccurrences s => Occurrences > s > sSource
diffOcc :: ComprOccurrences s => Occurrences > s > sSource
insertPosOcc :: ComprOccurrences s => DocId > Position > s > sSource
deletePosOcc :: ComprOccurrences s => DocId > Position > s > sSource
updateDocIdOcc :: ComprOccurrences s => (DocId > DocId) > s > sSource
deleteDocIds :: ComprOccurrences s => Occurrences > s > sSource
removeDocIdsInverted :: ComprOccurrences i => Occurrences > Inverted i > Inverted iSource
Remove DocIds from index