śĪbčZē-      !"#$%&'()*+,None-./0123-./0123-./0123 Safe-Inferred454545 Safe-Inferred6789:;<=>?@ABC 6789:;<=>? 6789:;<=>?@ABCNoneNThis class is a closed one; the user is not supposed to create new instances. @ It allows treating unique and non-unique keys in the same way. DEFGDEDEFGNoneHIJKLMNOPQRSTUVWXYZHIJKLMNOPQRSTUVWYZ HIJKLPONMQRSTUVWXYZNone [\]^_`abcde[\]^ace [\]^_`abcdeNone fghijklmnfghijkfghijklmn None=This type represent tables. Each table is the set of values. ( Individual values can be accessed with  s  or  s. $ Tables are never created manually,  they should be generated by    or loaded by  . C Both functions require the structure of the table to be described  as the . RThis function traverses through all values in the table, applying the same action . to all of them. Errors are silently ignored. opqrstuvwxyz{|oprstuvwyz{| opqrstuvwxyz{|None CThis type represents references to individual values in the table.  It is returned by   and  functions. QThis is a more generic type, which represents a set of values in the same table. This function returns the  that the  is from. .This function reads the value from the table. = It fails if the value was removed before or became invalid. 6This function removes the value from whatever table it's in. 6 It returnes the original value, provided that it wasn't removed before A or invalidated by removing some other value this one references  with  . 4This function overrides the value with another one. N All indices referencing the original value would be referencing the new one. F It fails if the original value was removed before or became invalid. =This function inserts a new value into the table and gives a  back. A Failure indicates that one of the unique indices for this value N coincides with the same index of another value already present in the table.  It won'!t happen for non-unique indices. 8This function iterates through all elements of the set. 8This function gives the set of all values in the table. } }  } None .This type can be used for columns in a table.  It' s sort of a  ForeignKey$ accompanied with a specific index. *This function gets an Id of the variable. .This function looks up the specific Id in the . ~ s pointing to different !s may accidentally appear equal.  €~  €~None‚FThis is a type of foreign keys. Each foreign key points to one table. 3 It is used to find the values in this table using . + Foreign keys are created at the same time s are.  They can't be added afterwards. ?This function searches for some particular index in the table. W It fails if there is no value with that index. Empty set of values is never returned. . For non-unique indices it returns the set of  s. 6This function deletes the value from the table. It won't be accessible anymore. : It never fails; nonexistent values are silently skipped. JThis function overrides the existing value in the table with the new one. S All foreign keys pointing to the original value become pointing to the new value. A It returns the original value, which is no longer in the table. - Failure means that there was no such value. 8This function returns the table that the key points to. ƒ‚„…†‡ ƒ‚„†‡ƒ‚„…†‡None ?This is the full specification, of both table and set of keys,  which should be fed to   and   functions. !This type operator adds one more  to the set,  or allows to get a / back with pattern-matching. Use it like this:  do (table, ... :+: foreignKey) F <- createTable $ FullSpec {..., keySpec = ... :+: unique myKey} %This type represents an empty set of s or s. !This is the specification of one $. It could be unique or non-unique. HThis type represents the table structure. It can be generated using the  ˆ interface of the  like this: 9 data MyData = {myField1 :: Integer, myField2 :: String} @ tabSpec = TableSpec (MyData <$> val myField1 <*> val myField2) This is the internal of the  type. 1This function specifies one column in the table. : It instructs the library to store one part of the value. !1This function specifies one column in the table. L It instructs the library to store one part of the value in a specific way. "8This function specifies one column in the table. Unlike   , it doesn't T store some part of the value; instead it stores the reference to some other table. #This function eases the use of  s as columns of the table. $&This function specifies a unique key. %*This function specifies a non-unique key. ‰Š‹ŒŽ !"#‘$%’“‰ !"#‘$%‰‹ŠŒŽ !"#‘$%’“None&DThis class is here for technical reasons; it has just one instance. 'This is a class of sets of s and  s (&This function creates an empty table,  given the table structure ()  and the set of keys (). M It returns the table itself, accompanied with the same set of foreign keys, 3 allowing one to search through the table quickly,  or to make a new . &”'•–(—˜™&'•–(&”'•–(—˜™None)*)*)*None+1This function saves the table to the ByteString.  Note that it doesn'3t really matter if the type of values in the table  are serializable. WNB: if any index used to access the values in this table depended on any foreign keys, ) and targets of these keys have changed, E the index could be different after storing and restoring the table. ,3This function reads the table from the ByteString. š›œ+,+,š›œ+,None-  !"#$%&'()*+,-*)     !"#$%(&' ,+    !"#$%&' ()*+,--../01234567 89:;<=>?@ABCDEEFFGHIJKLMNOPQRSTUUVWXYZ[\]]^^_`abcdeeffghijklmnnoopqrst  u u v w x y z { | } ~  € %‚ƒ„ „…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžhmemdb-0.2.0.4 Data.HMemDbData.HMemDb.UtilsData.HMemDb.MapTVarData.HMemDb.ReferencesData.HMemDb.RefContainerData.HMemDb.BinData.HMemDb.KeyBackendsData.HMemDb.RefConverterData.HMemDb.TablesTableVar ForeignKey createTablegetTableFullSpecData.HMemDb.TableVarsselectData.HMemDb.TableVarIdData.HMemDb.ForeignKeysData.HMemDb.SpecsData.HMemDb.CreateTableKeySpec TableSpecData.HMemDb.BinaryData.HMemDb.PersistenceMS RefContainerTable foldTable_ TableVarStableVarTargetreadTVdeleteTVmodifyTVinsertforTV selectAll TableVarIdvarToIdidToVardeleteupdate keyTargettabSpeckeySpec:+:KeysColSpecvalmvalkeytrefunique nonunique IsKeySpec CreateTableSPGSputTable fillTableliftPureenumElempureOoBindbindOfixArray replicateO liftMaybe readTVarMapCRefRef refContentrefIndexdeRef cRefIndexdeCRefreadCRef $fOrdCRef$fEqCRef$fOrdRef$fEqRefinsRefdelRef$fRefContainerSet$fRefContainerIdBinbinPutbinGet TableRefsTRPairTRVarTRProxyTRNil TableGetDataProxyunProxybinUnitbinProxytableVarBinGetbinCRefbinPairKeyBack PreKeyBackbrackets insertIntoKeyinsertIntoKeys deleteFromKeydeleteFromKeys modifyInKey modifyInKeysRefConv PreRefConvrcFromrcTo|*|$fApplicativeRefConv$fFunctorRefConvPreTabletabCounttabConv tabContent tabIndicestabRefs emptyPreTableinsertTVarIntoTableinsertIntoTableinsertRefIntoTabledeleteFromTable modifyInTable$fEqTableVarIdunTVId$fOrdTableVarId PreForeignKeyrunPreForeignKeymakeForeignKeygetCRefbaseControl.Applicative ApplicativeCSPartCSEnd TableSpecPartTSPRefTSPKeyTSPValcspToRCmakeRC$fApplicativeColSpec$fFunctorColSpec makeTableKS makeTablefixKeys$fCreateTable:+:$fIsKeySpecKeySpec$fCreateTableKeysputTVar readValue putPreTable