From 3a8c793d3683e1631bb203807d8f8c4775732e2c Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Fri, 22 Apr 2016 23:45:40 +0200 Subject: [PATCH] doc for 0.17 --- 0.17/CCAllocCache.Arr.html | 125 + 0.17/CCAllocCache.html | 115 + 0.17/CCApp_parse.Chan.html | 120 + 0.17/CCApp_parse.INPUT.html | 107 + 0.17/CCApp_parse.Infix.html | 125 + 0.17/CCApp_parse.Make.html | 136 + 0.17/CCApp_parse.MakeFromReader.html | 136 + 0.17/CCApp_parse.READER.html | 113 + 0.17/CCApp_parse.S.html | 120 + 0.17/CCApp_parse.Str.html | 122 + 0.17/CCApp_parse.html | 361 + 0.17/CCArray.MONO_ARRAY.html | 110 + 0.17/CCArray.S.html | 224 + 0.17/CCArray.Sub.html | 139 + 0.17/CCArray.html | 201 + 0.17/CCArray1.Bool.html | 156 + 0.17/CCArray1.Float.html | 144 + 0.17/CCArray1.Int.html | 144 + 0.17/CCArray1.S.Infix.html | 115 + 0.17/CCArray1.S.html | 140 + 0.17/CCArray1.View.Float.html | 103 + 0.17/CCArray1.View.Int.html | 103 + 0.17/CCArray1.View.S.html | 108 + 0.17/CCArray1.View.html | 157 + 0.17/CCArray1.html | 280 + 0.17/CCBV.html | 234 + 0.17/CCBatch.COLLECTION.html | 113 + 0.17/CCBatch.Make.html | 151 + 0.17/CCBatch.S.html | 139 + 0.17/CCBatch.html | 122 + 0.17/CCBigstring.html | 216 + 0.17/CCBitField.EMPTY.html | 104 + 0.17/CCBitField.Make.html | 210 + 0.17/CCBitField.S.FIELD.html | 114 + 0.17/CCBitField.S.html | 198 + 0.17/CCBitField.html | 160 + 0.17/CCBlockingQueue.html | 164 + 0.17/CCBloom.html | 197 + 0.17/CCBool.html | 129 + 0.17/CCCache.html | 200 + 0.17/CCCat.APPLICATIVE.html | 110 + 0.17/CCCat.FOLDABLE.html | 107 + 0.17/CCCat.FREE_MONAD.F.html | 103 + 0.17/CCCat.FREE_MONAD.html | 133 + 0.17/CCCat.FUNCTOR.html | 107 + 0.17/CCCat.MONAD.html | 107 + 0.17/CCCat.MONAD_BARE.html | 108 + 0.17/CCCat.MONAD_TRANSFORMER.M.html | 103 + 0.17/CCCat.MONAD_TRANSFORMER.html | 107 + 0.17/CCCat.MONOID.html | 106 + 0.17/CCCat.MakeFree.html | 139 + 0.17/CCCat.MakeFreeFold.html | 124 + 0.17/CCCat.TRAVERSE.html | 123 + 0.17/CCCat.WrapMonad.html | 122 + 0.17/CCCat.html | 140 + 0.17/CCChar.html | 114 + 0.17/CCDeque.html | 272 + 0.17/CCError.Infix.html | 104 + 0.17/CCError.MONAD.html | 107 + 0.17/CCError.Traverse.html | 119 + 0.17/CCError.html | 324 + 0.17/CCFQueue.html | 257 + 0.17/CCFlatHashtbl.HASHABLE.html | 106 + 0.17/CCFlatHashtbl.Make.html | 155 + 0.17/CCFlatHashtbl.S.html | 143 + 0.17/CCFlatHashtbl.html | 117 + 0.17/CCFloat.Infix.html | 127 + 0.17/CCFloat.html | 208 + 0.17/CCFormat.html | 294 + 0.17/CCFun.Monad.html | 122 + 0.17/CCFun.html | 189 + 0.17/CCGraph.Dot.html | 127 + 0.17/CCGraph.LazyTree.html | 116 + 0.17/CCGraph.MAP.html | 131 + 0.17/CCGraph.Map.html | 147 + 0.17/CCGraph.Seq.html | 111 + 0.17/CCGraph.Traverse.Event.html | 126 + 0.17/CCGraph.Traverse.html | 133 + 0.17/CCGraph.html | 451 + 0.17/CCHash.HASH.html | 115 + 0.17/CCHash.Make.html | 134 + 0.17/CCHash.S.html | 122 + 0.17/CCHash.html | 225 + 0.17/CCHashSet.ELEMENT.html | 109 + 0.17/CCHashSet.Make.html | 215 + 0.17/CCHashSet.S.html | 203 + 0.17/CCHashSet.html | 119 + 0.17/CCHashTrie.KEY.html | 109 + 0.17/CCHashTrie.Make.html | 204 + 0.17/CCHashTrie.S.html | 190 + 0.17/CCHashTrie.Transient.html | 144 + 0.17/CCHashTrie.html | 148 + 0.17/CCHashconsedSet.ELT.html | 112 + 0.17/CCHashconsedSet.Make.html | 169 + 0.17/CCHashconsedSet.S.html | 157 + 0.17/CCHashconsedSet.html | 117 + 0.17/CCHashtbl.COUNTER.html | 166 + 0.17/CCHashtbl.DEFAULT.html | 141 + 0.17/CCHashtbl.Make.html | 217 + 0.17/CCHashtbl.MakeCounter.html | 187 + 0.17/CCHashtbl.MakeDefault.html | 155 + 0.17/CCHashtbl.S.html | 203 + 0.17/CCHashtbl.html | 246 + 0.17/CCHeap.Make.html | 213 + 0.17/CCHeap.PARTIAL_ORD.html | 108 + 0.17/CCHeap.S.html | 201 + 0.17/CCHeap.html | 124 + 0.17/CCHet.Key.html | 109 + 0.17/CCHet.Map.html | 124 + 0.17/CCHet.Tbl.html | 125 + 0.17/CCHet.html | 137 + 0.17/CCIO.File.html | 192 + 0.17/CCIO.html | 247 + 0.17/CCImmutArray.html | 179 + 0.17/CCInt.Infix.html | 127 + 0.17/CCInt.html | 163 + 0.17/CCInt64.html | 150 + 0.17/CCIntMap.html | 220 + 0.17/CCKList.Infix.html | 108 + 0.17/CCKList.MONAD.html | 107 + 0.17/CCKList.Traverse.html | 118 + 0.17/CCKList.html | 392 + 0.17/CCKMP.Make.html | 150 + 0.17/CCKMP.S.html | 138 + 0.17/CCKMP.STRING.html | 110 + 0.17/CCKMP.html | 117 + 0.17/CCKTree.Dot.html | 144 + 0.17/CCKTree.html | 228 + 0.17/CCKTree.pset-c.html | 104 + 0.17/CCLazy_list.Infix.html | 101 + 0.17/CCLazy_list.html | 173 + 0.17/CCLevenshtein.Make.html | 165 + 0.17/CCLevenshtein.S.Index.html | 172 + 0.17/CCLevenshtein.S.html | 151 + 0.17/CCLevenshtein.STRING.html | 111 + 0.17/CCLevenshtein.html | 183 + 0.17/CCLinq.AdaptMap.html | 121 + 0.17/CCLinq.AdaptSet.html | 120 + 0.17/CCLinq.Array.html | 106 + 0.17/CCLinq.IO.html | 138 + 0.17/CCLinq.Infix.html | 107 + 0.17/CCLinq.List.html | 106 + 0.17/CCLinq.PMap.html | 147 + 0.17/CCLinq.html | 442 + 0.17/CCList.Assoc.html | 136 + 0.17/CCList.Idx.html | 128 + 0.17/CCList.Infix.html | 111 + 0.17/CCList.MONAD.html | 107 + 0.17/CCList.Ref.html | 130 + 0.17/CCList.Set.html | 136 + 0.17/CCList.Traverse.html | 126 + 0.17/CCList.Zipper.html | 202 + 0.17/CCList.html | 450 + 0.17/CCLock.LockRef.html | 109 + 0.17/CCLock.html | 200 + 0.17/CCMap.Make.html | 163 + 0.17/CCMap.S.html | 147 + 0.17/CCMap.html | 123 + 0.17/CCMixmap.Make.html | 190 + 0.17/CCMixmap.ORD.html | 105 + 0.17/CCMixmap.S.html | 178 + 0.17/CCMixmap.html | 151 + 0.17/CCMixset.html | 166 + 0.17/CCMixtbl.html | 234 + 0.17/CCMonadIO.File.html | 131 + 0.17/CCMonadIO.Raw.html | 109 + 0.17/CCMonadIO.Seq.html | 212 + 0.17/CCMonadIO.html | 311 + 0.17/CCMultiMap.BIDIR.html | 174 + 0.17/CCMultiMap.Make.html | 209 + 0.17/CCMultiMap.MakeBidir.html | 194 + 0.17/CCMultiMap.OrderedType.html | 107 + 0.17/CCMultiMap.S.html | 190 + 0.17/CCMultiMap.html | 120 + 0.17/CCMultiSet.Make.html | 190 + 0.17/CCMultiSet.S.html | 176 + 0.17/CCMultiSet.html | 111 + 0.17/CCOpt.Infix.html | 104 + 0.17/CCOpt.html | 268 + 0.17/CCOrd.html | 164 + 0.17/CCPair.html | 180 + 0.17/CCParse.MemoTbl.html | 111 + 0.17/CCParse.U.html | 127 + 0.17/CCParse.html | 522 + 0.17/CCPersistentArray.html | 241 + 0.17/CCPersistentHashtbl.HashedType.html | 106 + 0.17/CCPersistentHashtbl.Make.html | 227 + 0.17/CCPersistentHashtbl.S.html | 215 + 0.17/CCPersistentHashtbl.html | 136 + 0.17/CCPool.Make.Fut.Infix.html | 103 + 0.17/CCPool.Make.Fut.html | 244 + 0.17/CCPool.Make.html | 140 + 0.17/CCPool.PARAM.html | 107 + 0.17/CCPool.html | 142 + 0.17/CCPrint.MONAD_IO.html | 113 + 0.17/CCPrint.MakeIO.html | 137 + 0.17/CCPrint.html | 208 + 0.17/CCRAL.Infix.html | 124 + 0.17/CCRAL.html | 288 + 0.17/CCRandom.html | 263 + 0.17/CCRef.html | 157 + 0.17/CCResult.Infix.html | 104 + 0.17/CCResult.MONAD.html | 107 + 0.17/CCResult.Traverse.html | 119 + 0.17/CCResult.html | 330 + 0.17/CCRingBuffer.Array.Byte.html | 155 + 0.17/CCRingBuffer.Array.Make.html | 172 + 0.17/CCRingBuffer.Array.S.html | 150 + 0.17/CCRingBuffer.Array.html | 116 + 0.17/CCRingBuffer.Byte.html | 258 + 0.17/CCRingBuffer.Make.html | 273 + 0.17/CCRingBuffer.MakeFromArray.html | 272 + 0.17/CCRingBuffer.S.Array.html | 153 + 0.17/CCRingBuffer.S.html | 258 + 0.17/CCRingBuffer.html | 140 + 0.17/CCSemaphore.html | 142 + 0.17/CCSet.Make.html | 131 + 0.17/CCSet.S.html | 115 + 0.17/CCSet.html | 120 + 0.17/CCSexp.Traverse.html | 188 + 0.17/CCSexp.html | 171 + 0.17/CCSexpM.D.html | 105 + 0.17/CCSexpM.ID_MONAD.html | 112 + 0.17/CCSexpM.MONAD.html | 104 + 0.17/CCSexpM.MakeDecode.html | 133 + 0.17/CCSexpM.html | 186 + 0.17/CCString.S.html | 126 + 0.17/CCString.Split.html | 149 + 0.17/CCString.Sub.html | 123 + 0.17/CCString.html | 376 + 0.17/CCThread.Arr.html | 113 + 0.17/CCThread.Barrier.html | 131 + 0.17/CCThread.html | 139 + 0.17/CCTimer.html | 156 + 0.17/CCTrie.Make.html | 215 + 0.17/CCTrie.MakeArray.html | 217 + 0.17/CCTrie.MakeList.html | 217 + 0.17/CCTrie.ORDERED.html | 105 + 0.17/CCTrie.S.html | 203 + 0.17/CCTrie.String.html | 201 + 0.17/CCTrie.WORD.html | 110 + 0.17/CCTrie.html | 134 + 0.17/CCUnix.Infix.html | 109 + 0.17/CCUnix.html | 353 + 0.17/CCVector.html | 455 + 0.17/CCWBTree.KEY.html | 106 + 0.17/CCWBTree.Make.html | 204 + 0.17/CCWBTree.MakeFull.html | 207 + 0.17/CCWBTree.ORD.html | 105 + 0.17/CCWBTree.S.html | 190 + 0.17/CCWBTree.html | 133 + 0.17/Containers.Array.html | 105 + 0.17/Containers.Bool.html | 126 + 0.17/Containers.Char.html | 107 + 0.17/Containers.Error.html | 317 + 0.17/Containers.Float.html | 204 + 0.17/Containers.Format.html | 107 + 0.17/Containers.Fun.html | 186 + 0.17/Containers.Hash.html | 222 + 0.17/Containers.Hashtbl.Counter.html | 182 + 0.17/Containers.Hashtbl.Make'.html | 217 + 0.17/Containers.Hashtbl.MakeDefault.html | 153 + 0.17/Containers.Hashtbl.S'.html | 201 + 0.17/Containers.Hashtbl.html | 112 + 0.17/Containers.Int.html | 160 + 0.17/Containers.Int64.html | 143 + 0.17/Containers.List.html | 107 + 0.17/Containers.Map.OrderedType.html | 99 + 0.17/Containers.Map.html | 106 + 0.17/Containers.Option.html | 265 + 0.17/Containers.Pair.html | 177 + 0.17/Containers.Random.html | 107 + 0.17/Containers.Ref.html | 153 + 0.17/Containers.Result.html | 321 + 0.17/Containers.Set.OrderedType.html | 99 + 0.17/Containers.Set.html | 106 + 0.17/Containers.String.html | 107 + 0.17/Containers.Vector.html | 454 + 0.17/Containers.html | 139 + 0.17/Containers_advanced.Batch.html | 113 + 0.17/Containers_advanced.Cat.html | 133 + 0.17/Containers_advanced.Linq.html | 400 + 0.17/Containers_advanced.MonadIO.html | 301 + 0.17/Containers_advanced.html | 107 + 0.17/Containers_io_is_deprecated.html | 114 + 0.17/Containers_string.App_parse.html | 325 + 0.17/Containers_string.KMP.html | 114 + 0.17/Containers_string.Levenshtein.html | 173 + 0.17/Containers_string.Parse.html | 464 + 0.17/Containers_string.html | 107 + 0.17/html.stamp | 1 + 0.17/index.html | 559 + 0.17/index_attributes.html | 98 + 0.17/index_class_types.html | 104 + 0.17/index_classes.html | 98 + 0.17/index_exceptions.html | 175 + 0.17/index_extensions.html | 98 + 0.17/index_methods.html | 104 + 0.17/index_module_types.html | 294 + 0.17/index_modules.html | 883 ++ 0.17/index_types.html | 1142 ++ 0.17/index_values.html | 9450 +++++++++++++++++ 0.17/style.css | 41 + 0.17/type_CCAllocCache.Arr.html | 97 + 0.17/type_CCAllocCache.html | 101 + 0.17/type_CCApp_parse.Chan.html | 96 + 0.17/type_CCApp_parse.INPUT.html | 91 + 0.17/type_CCApp_parse.Infix.html | 100 + 0.17/type_CCApp_parse.Make.html | 97 + 0.17/type_CCApp_parse.MakeFromReader.html | 97 + 0.17/type_CCApp_parse.READER.html | 100 + 0.17/type_CCApp_parse.S.html | 100 + 0.17/type_CCApp_parse.Str.html | 96 + 0.17/type_CCApp_parse.html | 213 + 0.17/type_CCArray.MONO_ARRAY.html | 97 + 0.17/type_CCArray.S.html | 139 + 0.17/type_CCArray.Sub.html | 142 + 0.17/type_CCArray.html | 272 + 0.17/type_CCArray1.Bool.html | 125 + 0.17/type_CCArray1.Float.html | 129 + 0.17/type_CCArray1.Int.html | 129 + 0.17/type_CCArray1.S.Infix.html | 104 + 0.17/type_CCArray1.S.html | 141 + 0.17/type_CCArray1.View.Float.html | 99 + 0.17/type_CCArray1.View.Int.html | 99 + 0.17/type_CCArray1.View.S.html | 109 + 0.17/type_CCArray1.View.html | 157 + 0.17/type_CCArray1.html | 458 + 0.17/type_CCBV.html | 122 + 0.17/type_CCBatch.COLLECTION.html | 103 + 0.17/type_CCBatch.Make.html | 106 + 0.17/type_CCBatch.S.html | 108 + 0.17/type_CCBatch.html | 148 + 0.17/type_CCBigstring.html | 136 + 0.17/type_CCBitField.EMPTY.html | 91 + 0.17/type_CCBitField.Make.html | 91 + 0.17/type_CCBitField.S.FIELD.html | 98 + 0.17/type_CCBitField.S.html | 118 + 0.17/type_CCBitField.html | 128 + 0.17/type_CCBlockingQueue.html | 103 + 0.17/type_CCBloom.html | 111 + 0.17/type_CCBool.html | 100 + 0.17/type_CCCache.html | 112 + 0.17/type_CCCat.APPLICATIVE.html | 98 + 0.17/type_CCCat.FOLDABLE.html | 91 + 0.17/type_CCCat.FREE_MONAD.F.html | 91 + 0.17/type_CCCat.FREE_MONAD.html | 100 + 0.17/type_CCCat.FUNCTOR.html | 94 + 0.17/type_CCCat.MONAD.html | 98 + 0.17/type_CCCat.MONAD_BARE.html | 97 + 0.17/type_CCCat.MONAD_TRANSFORMER.M.html | 91 + 0.17/type_CCCat.MONAD_TRANSFORMER.html | 100 + 0.17/type_CCCat.MONOID.html | 95 + 0.17/type_CCCat.MakeFree.html | 102 + 0.17/type_CCCat.MakeFreeFold.html | 96 + 0.17/type_CCCat.TRAVERSE.html | 98 + 0.17/type_CCCat.WrapMonad.html | 99 + 0.17/type_CCCat.html | 194 + 0.17/type_CCChar.html | 97 + 0.17/type_CCDeque.html | 124 + 0.17/type_CCError.Infix.html | 99 + 0.17/type_CCError.MONAD.html | 96 + 0.17/type_CCError.Traverse.html | 100 + 0.17/type_CCError.html | 190 + 0.17/type_CCFQueue.html | 141 + 0.17/type_CCFlatHashtbl.HASHABLE.html | 95 + 0.17/type_CCFlatHashtbl.Make.html | 110 + 0.17/type_CCFlatHashtbl.S.html | 112 + 0.17/type_CCFlatHashtbl.html | 146 + 0.17/type_CCFloat.Infix.html | 98 + 0.17/type_CCFloat.html | 148 + 0.17/type_CCFormat.html | 164 + 0.17/type_CCFun.Monad.html | 98 + 0.17/type_CCFun.html | 118 + 0.17/type_CCGraph.Dot.html | 116 + 0.17/type_CCGraph.LazyTree.html | 98 + 0.17/type_CCGraph.MAP.html | 126 + 0.17/type_CCGraph.Map.html | 110 + 0.17/type_CCGraph.Seq.html | 101 + 0.17/type_CCGraph.Traverse.Event.html | 117 + 0.17/type_CCGraph.Traverse.html | 159 + 0.17/type_CCGraph.html | 338 + 0.17/type_CCHash.HASH.html | 100 + 0.17/type_CCHash.Make.html | 113 + 0.17/type_CCHash.S.html | 118 + 0.17/type_CCHash.html | 198 + 0.17/type_CCHashSet.ELEMENT.html | 95 + 0.17/type_CCHashSet.Make.html | 123 + 0.17/type_CCHashSet.S.html | 124 + 0.17/type_CCHashSet.html | 170 + 0.17/type_CCHashTrie.KEY.html | 95 + 0.17/type_CCHashTrie.Make.html | 127 + 0.17/type_CCHashTrie.S.html | 154 + 0.17/type_CCHashTrie.Transient.html | 100 + 0.17/type_CCHashTrie.html | 225 + 0.17/type_CCHashconsedSet.ELT.html | 95 + 0.17/type_CCHashconsedSet.Make.html | 120 + 0.17/type_CCHashconsedSet.S.html | 131 + 0.17/type_CCHashconsedSet.html | 177 + 0.17/type_CCHashtbl.COUNTER.html | 110 + 0.17/type_CCHashtbl.DEFAULT.html | 102 + 0.17/type_CCHashtbl.Make.html | 128 + 0.17/type_CCHashtbl.MakeCounter.html | 107 + 0.17/type_CCHashtbl.MakeDefault.html | 101 + 0.17/type_CCHashtbl.S.html | 128 + 0.17/type_CCHashtbl.html | 266 + 0.17/type_CCHeap.Make.html | 123 + 0.17/type_CCHeap.PARTIAL_ORD.html | 91 + 0.17/type_CCHeap.S.html | 123 + 0.17/type_CCHeap.html | 171 + 0.17/type_CCHet.Key.html | 95 + 0.17/type_CCHet.Map.html | 107 + 0.17/type_CCHet.Tbl.html | 106 + 0.17/type_CCHet.html | 136 + 0.17/type_CCIO.File.html | 114 + 0.17/type_CCIO.html | 146 + 0.17/type_CCImmutArray.html | 125 + 0.17/type_CCInt.Infix.html | 98 + 0.17/type_CCInt.html | 126 + 0.17/type_CCInt64.html | 127 + 0.17/type_CCIntMap.html | 149 + 0.17/type_CCKList.Infix.html | 99 + 0.17/type_CCKList.MONAD.html | 96 + 0.17/type_CCKList.Traverse.html | 96 + 0.17/type_CCKList.html | 196 + 0.17/type_CCKMP.Make.html | 103 + 0.17/type_CCKMP.S.html | 104 + 0.17/type_CCKMP.STRING.html | 97 + 0.17/type_CCKMP.html | 145 + 0.17/type_CCKTree.Dot.html | 118 + 0.17/type_CCKTree.html | 152 + 0.17/type_CCKTree.pset.html | 91 + 0.17/type_CCLazy_list.Infix.html | 95 + 0.17/type_CCLazy_list.html | 118 + 0.17/type_CCLevenshtein.Make.html | 123 + 0.17/type_CCLevenshtein.S.Index.html | 139 + 0.17/type_CCLevenshtein.S.html | 156 + 0.17/type_CCLevenshtein.STRING.html | 99 + 0.17/type_CCLevenshtein.html | 236 + 0.17/type_CCLinq.AdaptMap.html | 97 + 0.17/type_CCLinq.AdaptSet.html | 96 + 0.17/type_CCLinq.Array.html | 95 + 0.17/type_CCLinq.IO.html | 104 + 0.17/type_CCLinq.Infix.html | 96 + 0.17/type_CCLinq.List.html | 95 + 0.17/type_CCLinq.PMap.html | 117 + 0.17/type_CCLinq.html | 284 + 0.17/type_CCList.Assoc.html | 107 + 0.17/type_CCList.Idx.html | 100 + 0.17/type_CCList.Infix.html | 99 + 0.17/type_CCList.MONAD.html | 96 + 0.17/type_CCList.Ref.html | 100 + 0.17/type_CCList.Set.html | 101 + 0.17/type_CCList.Traverse.html | 97 + 0.17/type_CCList.Zipper.html | 112 + 0.17/type_CCList.html | 294 + 0.17/type_CCLock.LockRef.html | 96 + 0.17/type_CCLock.html | 116 + 0.17/type_CCMap.Make.html | 145 + 0.17/type_CCMap.S.html | 145 + 0.17/type_CCMap.html | 209 + 0.17/type_CCMixmap.Make.html | 109 + 0.17/type_CCMixmap.ORD.html | 91 + 0.17/type_CCMixmap.S.html | 118 + 0.17/type_CCMixmap.html | 147 + 0.17/type_CCMixset.html | 100 + 0.17/type_CCMixtbl.html | 112 + 0.17/type_CCMonadIO.File.html | 104 + 0.17/type_CCMonadIO.Raw.html | 91 + 0.17/type_CCMonadIO.Seq.html | 136 + 0.17/type_CCMonadIO.html | 209 + 0.17/type_CCMultiMap.BIDIR.html | 137 + 0.17/type_CCMultiMap.Make.html | 118 + 0.17/type_CCMultiMap.MakeBidir.html | 115 + 0.17/type_CCMultiMap.OrderedType.html | 94 + 0.17/type_CCMultiMap.S.html | 132 + 0.17/type_CCMultiMap.html | 246 + 0.17/type_CCMultiSet.Make.html | 121 + 0.17/type_CCMultiSet.S.html | 123 + 0.17/type_CCMultiSet.html | 160 + 0.17/type_CCOpt.Infix.html | 97 + 0.17/type_CCOpt.html | 144 + 0.17/type_CCOrd.html | 108 + 0.17/type_CCPair.html | 119 + 0.17/type_CCParse.MemoTbl.html | 91 + 0.17/type_CCParse.U.html | 111 + 0.17/type_CCParse.html | 181 + 0.17/type_CCPersistentArray.html | 129 + 0.17/type_CCPersistentHashtbl.HashedType.html | 97 + 0.17/type_CCPersistentHashtbl.Make.html | 129 + 0.17/type_CCPersistentHashtbl.S.html | 172 + 0.17/type_CCPersistentHashtbl.html | 230 + 0.17/type_CCPool.Make.Fut.Infix.html | 102 + 0.17/type_CCPool.Make.Fut.html | 152 + 0.17/type_CCPool.Make.html | 170 + 0.17/type_CCPool.PARAM.html | 91 + 0.17/type_CCPool.html | 177 + 0.17/type_CCPrint.MONAD_IO.html | 98 + 0.17/type_CCPrint.MakeIO.html | 97 + 0.17/type_CCPrint.html | 151 + 0.17/type_CCRAL.Infix.html | 98 + 0.17/type_CCRAL.html | 162 + 0.17/type_CCRandom.html | 134 + 0.17/type_CCRef.html | 110 + 0.17/type_CCResult.Infix.html | 99 + 0.17/type_CCResult.MONAD.html | 96 + 0.17/type_CCResult.Traverse.html | 101 + 0.17/type_CCResult.html | 208 + 0.17/type_CCRingBuffer.Array.Byte.html | 103 + 0.17/type_CCRingBuffer.Array.Make.html | 104 + 0.17/type_CCRingBuffer.Array.S.html | 106 + 0.17/type_CCRingBuffer.Array.html | 140 + 0.17/type_CCRingBuffer.Byte.html | 136 + 0.17/type_CCRingBuffer.Make.html | 137 + 0.17/type_CCRingBuffer.MakeFromArray.html | 137 + 0.17/type_CCRingBuffer.S.Array.html | 91 + 0.17/type_CCRingBuffer.S.html | 123 + 0.17/type_CCRingBuffer.html | 322 + 0.17/type_CCSemaphore.html | 99 + 0.17/type_CCSet.Make.html | 132 + 0.17/type_CCSet.S.html | 131 + 0.17/type_CCSet.html | 181 + 0.17/type_CCSexp.Traverse.html | 121 + 0.17/type_CCSexp.html | 144 + 0.17/type_CCSexpM.D.html | 95 + 0.17/type_CCSexpM.ID_MONAD.html | 95 + 0.17/type_CCSexpM.MONAD.html | 96 + 0.17/type_CCSexpM.MakeDecode.html | 98 + 0.17/type_CCSexpM.html | 146 + 0.17/type_CCString.S.html | 102 + 0.17/type_CCString.Split.html | 104 + 0.17/type_CCString.Sub.html | 107 + 0.17/type_CCString.html | 201 + 0.17/type_CCThread.Arr.html | 94 + 0.17/type_CCThread.Barrier.html | 98 + 0.17/type_CCThread.html | 111 + 0.17/type_CCTimer.html | 102 + 0.17/type_CCTrie.Make.html | 121 + 0.17/type_CCTrie.MakeArray.html | 121 + 0.17/type_CCTrie.MakeList.html | 121 + 0.17/type_CCTrie.ORDERED.html | 91 + 0.17/type_CCTrie.S.html | 128 + 0.17/type_CCTrie.String.html | 120 + 0.17/type_CCTrie.WORD.html | 97 + 0.17/type_CCTrie.html | 271 + 0.17/type_CCUnix.Infix.html | 96 + 0.17/type_CCUnix.html | 148 + 0.17/type_CCVector.html | 205 + 0.17/type_CCWBTree.KEY.html | 91 + 0.17/type_CCWBTree.Make.html | 132 + 0.17/type_CCWBTree.MakeFull.html | 132 + 0.17/type_CCWBTree.ORD.html | 91 + 0.17/type_CCWBTree.S.html | 147 + 0.17/type_CCWBTree.html | 248 + 0.17/type_Containers.Array.html | 233 + 0.17/type_Containers.Bool.html | 91 + 0.17/type_Containers.Char.html | 103 + 0.17/type_Containers.Error.html | 91 + 0.17/type_Containers.Float.html | 91 + 0.17/type_Containers.Format.html | 307 + 0.17/type_Containers.Fun.html | 91 + 0.17/type_Containers.Hash.html | 91 + 0.17/type_Containers.Hashtbl.Counter.html | 91 + 0.17/type_Containers.Hashtbl.Make'.html | 91 + 0.17/type_Containers.Hashtbl.MakeDefault.html | 91 + 0.17/type_Containers.Hashtbl.S'.html | 91 + 0.17/type_Containers.Hashtbl.html | 205 + 0.17/type_Containers.Int.html | 91 + 0.17/type_Containers.Int64.html | 91 + 0.17/type_Containers.List.html | 234 + 0.17/type_Containers.Map.OrderedType.html | 91 + 0.17/type_Containers.Map.html | 152 + 0.17/type_Containers.Option.html | 91 + 0.17/type_Containers.Pair.html | 91 + 0.17/type_Containers.Random.html | 142 + 0.17/type_Containers.Ref.html | 91 + 0.17/type_Containers.Result.html | 91 + 0.17/type_Containers.Set.OrderedType.html | 91 + 0.17/type_Containers.Set.html | 139 + 0.17/type_Containers.String.html | 197 + 0.17/type_Containers.Vector.html | 91 + 0.17/type_Containers.html | 91 + 0.17/type_Containers_advanced.Batch.html | 91 + 0.17/type_Containers_advanced.Cat.html | 91 + 0.17/type_Containers_advanced.Linq.html | 91 + 0.17/type_Containers_advanced.MonadIO.html | 91 + 0.17/type_Containers_advanced.html | 91 + 0.17/type_Containers_io_is_deprecated.html | 91 + 0.17/type_Containers_string.App_parse.html | 91 + 0.17/type_Containers_string.KMP.html | 91 + 0.17/type_Containers_string.Levenshtein.html | 91 + 0.17/type_Containers_string.Parse.html | 91 + 0.17/type_Containers_string.html | 91 + 593 files changed, 97594 insertions(+) create mode 100644 0.17/CCAllocCache.Arr.html create mode 100644 0.17/CCAllocCache.html create mode 100644 0.17/CCApp_parse.Chan.html create mode 100644 0.17/CCApp_parse.INPUT.html create mode 100644 0.17/CCApp_parse.Infix.html create mode 100644 0.17/CCApp_parse.Make.html create mode 100644 0.17/CCApp_parse.MakeFromReader.html create mode 100644 0.17/CCApp_parse.READER.html create mode 100644 0.17/CCApp_parse.S.html create mode 100644 0.17/CCApp_parse.Str.html create mode 100644 0.17/CCApp_parse.html create mode 100644 0.17/CCArray.MONO_ARRAY.html create mode 100644 0.17/CCArray.S.html create mode 100644 0.17/CCArray.Sub.html create mode 100644 0.17/CCArray.html create mode 100644 0.17/CCArray1.Bool.html create mode 100644 0.17/CCArray1.Float.html create mode 100644 0.17/CCArray1.Int.html create mode 100644 0.17/CCArray1.S.Infix.html create mode 100644 0.17/CCArray1.S.html create mode 100644 0.17/CCArray1.View.Float.html create mode 100644 0.17/CCArray1.View.Int.html create mode 100644 0.17/CCArray1.View.S.html create mode 100644 0.17/CCArray1.View.html create mode 100644 0.17/CCArray1.html create mode 100644 0.17/CCBV.html create mode 100644 0.17/CCBatch.COLLECTION.html create mode 100644 0.17/CCBatch.Make.html create mode 100644 0.17/CCBatch.S.html create mode 100644 0.17/CCBatch.html create mode 100644 0.17/CCBigstring.html create mode 100644 0.17/CCBitField.EMPTY.html create mode 100644 0.17/CCBitField.Make.html create mode 100644 0.17/CCBitField.S.FIELD.html create mode 100644 0.17/CCBitField.S.html create mode 100644 0.17/CCBitField.html create mode 100644 0.17/CCBlockingQueue.html create mode 100644 0.17/CCBloom.html create mode 100644 0.17/CCBool.html create mode 100644 0.17/CCCache.html create mode 100644 0.17/CCCat.APPLICATIVE.html create mode 100644 0.17/CCCat.FOLDABLE.html create mode 100644 0.17/CCCat.FREE_MONAD.F.html create mode 100644 0.17/CCCat.FREE_MONAD.html create mode 100644 0.17/CCCat.FUNCTOR.html create mode 100644 0.17/CCCat.MONAD.html create mode 100644 0.17/CCCat.MONAD_BARE.html create mode 100644 0.17/CCCat.MONAD_TRANSFORMER.M.html create mode 100644 0.17/CCCat.MONAD_TRANSFORMER.html create mode 100644 0.17/CCCat.MONOID.html create mode 100644 0.17/CCCat.MakeFree.html create mode 100644 0.17/CCCat.MakeFreeFold.html create mode 100644 0.17/CCCat.TRAVERSE.html create mode 100644 0.17/CCCat.WrapMonad.html create mode 100644 0.17/CCCat.html create mode 100644 0.17/CCChar.html create mode 100644 0.17/CCDeque.html create mode 100644 0.17/CCError.Infix.html create mode 100644 0.17/CCError.MONAD.html create mode 100644 0.17/CCError.Traverse.html create mode 100644 0.17/CCError.html create mode 100644 0.17/CCFQueue.html create mode 100644 0.17/CCFlatHashtbl.HASHABLE.html create mode 100644 0.17/CCFlatHashtbl.Make.html create mode 100644 0.17/CCFlatHashtbl.S.html create mode 100644 0.17/CCFlatHashtbl.html create mode 100644 0.17/CCFloat.Infix.html create mode 100644 0.17/CCFloat.html create mode 100644 0.17/CCFormat.html create mode 100644 0.17/CCFun.Monad.html create mode 100644 0.17/CCFun.html create mode 100644 0.17/CCGraph.Dot.html create mode 100644 0.17/CCGraph.LazyTree.html create mode 100644 0.17/CCGraph.MAP.html create mode 100644 0.17/CCGraph.Map.html create mode 100644 0.17/CCGraph.Seq.html create mode 100644 0.17/CCGraph.Traverse.Event.html create mode 100644 0.17/CCGraph.Traverse.html create mode 100644 0.17/CCGraph.html create mode 100644 0.17/CCHash.HASH.html create mode 100644 0.17/CCHash.Make.html create mode 100644 0.17/CCHash.S.html create mode 100644 0.17/CCHash.html create mode 100644 0.17/CCHashSet.ELEMENT.html create mode 100644 0.17/CCHashSet.Make.html create mode 100644 0.17/CCHashSet.S.html create mode 100644 0.17/CCHashSet.html create mode 100644 0.17/CCHashTrie.KEY.html create mode 100644 0.17/CCHashTrie.Make.html create mode 100644 0.17/CCHashTrie.S.html create mode 100644 0.17/CCHashTrie.Transient.html create mode 100644 0.17/CCHashTrie.html create mode 100644 0.17/CCHashconsedSet.ELT.html create mode 100644 0.17/CCHashconsedSet.Make.html create mode 100644 0.17/CCHashconsedSet.S.html create mode 100644 0.17/CCHashconsedSet.html create mode 100644 0.17/CCHashtbl.COUNTER.html create mode 100644 0.17/CCHashtbl.DEFAULT.html create mode 100644 0.17/CCHashtbl.Make.html create mode 100644 0.17/CCHashtbl.MakeCounter.html create mode 100644 0.17/CCHashtbl.MakeDefault.html create mode 100644 0.17/CCHashtbl.S.html create mode 100644 0.17/CCHashtbl.html create mode 100644 0.17/CCHeap.Make.html create mode 100644 0.17/CCHeap.PARTIAL_ORD.html create mode 100644 0.17/CCHeap.S.html create mode 100644 0.17/CCHeap.html create mode 100644 0.17/CCHet.Key.html create mode 100644 0.17/CCHet.Map.html create mode 100644 0.17/CCHet.Tbl.html create mode 100644 0.17/CCHet.html create mode 100644 0.17/CCIO.File.html create mode 100644 0.17/CCIO.html create mode 100644 0.17/CCImmutArray.html create mode 100644 0.17/CCInt.Infix.html create mode 100644 0.17/CCInt.html create mode 100644 0.17/CCInt64.html create mode 100644 0.17/CCIntMap.html create mode 100644 0.17/CCKList.Infix.html create mode 100644 0.17/CCKList.MONAD.html create mode 100644 0.17/CCKList.Traverse.html create mode 100644 0.17/CCKList.html create mode 100644 0.17/CCKMP.Make.html create mode 100644 0.17/CCKMP.S.html create mode 100644 0.17/CCKMP.STRING.html create mode 100644 0.17/CCKMP.html create mode 100644 0.17/CCKTree.Dot.html create mode 100644 0.17/CCKTree.html create mode 100644 0.17/CCKTree.pset-c.html create mode 100644 0.17/CCLazy_list.Infix.html create mode 100644 0.17/CCLazy_list.html create mode 100644 0.17/CCLevenshtein.Make.html create mode 100644 0.17/CCLevenshtein.S.Index.html create mode 100644 0.17/CCLevenshtein.S.html create mode 100644 0.17/CCLevenshtein.STRING.html create mode 100644 0.17/CCLevenshtein.html create mode 100644 0.17/CCLinq.AdaptMap.html create mode 100644 0.17/CCLinq.AdaptSet.html create mode 100644 0.17/CCLinq.Array.html create mode 100644 0.17/CCLinq.IO.html create mode 100644 0.17/CCLinq.Infix.html create mode 100644 0.17/CCLinq.List.html create mode 100644 0.17/CCLinq.PMap.html create mode 100644 0.17/CCLinq.html create mode 100644 0.17/CCList.Assoc.html create mode 100644 0.17/CCList.Idx.html create mode 100644 0.17/CCList.Infix.html create mode 100644 0.17/CCList.MONAD.html create mode 100644 0.17/CCList.Ref.html create mode 100644 0.17/CCList.Set.html create mode 100644 0.17/CCList.Traverse.html create mode 100644 0.17/CCList.Zipper.html create mode 100644 0.17/CCList.html create mode 100644 0.17/CCLock.LockRef.html create mode 100644 0.17/CCLock.html create mode 100644 0.17/CCMap.Make.html create mode 100644 0.17/CCMap.S.html create mode 100644 0.17/CCMap.html create mode 100644 0.17/CCMixmap.Make.html create mode 100644 0.17/CCMixmap.ORD.html create mode 100644 0.17/CCMixmap.S.html create mode 100644 0.17/CCMixmap.html create mode 100644 0.17/CCMixset.html create mode 100644 0.17/CCMixtbl.html create mode 100644 0.17/CCMonadIO.File.html create mode 100644 0.17/CCMonadIO.Raw.html create mode 100644 0.17/CCMonadIO.Seq.html create mode 100644 0.17/CCMonadIO.html create mode 100644 0.17/CCMultiMap.BIDIR.html create mode 100644 0.17/CCMultiMap.Make.html create mode 100644 0.17/CCMultiMap.MakeBidir.html create mode 100644 0.17/CCMultiMap.OrderedType.html create mode 100644 0.17/CCMultiMap.S.html create mode 100644 0.17/CCMultiMap.html create mode 100644 0.17/CCMultiSet.Make.html create mode 100644 0.17/CCMultiSet.S.html create mode 100644 0.17/CCMultiSet.html create mode 100644 0.17/CCOpt.Infix.html create mode 100644 0.17/CCOpt.html create mode 100644 0.17/CCOrd.html create mode 100644 0.17/CCPair.html create mode 100644 0.17/CCParse.MemoTbl.html create mode 100644 0.17/CCParse.U.html create mode 100644 0.17/CCParse.html create mode 100644 0.17/CCPersistentArray.html create mode 100644 0.17/CCPersistentHashtbl.HashedType.html create mode 100644 0.17/CCPersistentHashtbl.Make.html create mode 100644 0.17/CCPersistentHashtbl.S.html create mode 100644 0.17/CCPersistentHashtbl.html create mode 100644 0.17/CCPool.Make.Fut.Infix.html create mode 100644 0.17/CCPool.Make.Fut.html create mode 100644 0.17/CCPool.Make.html create mode 100644 0.17/CCPool.PARAM.html create mode 100644 0.17/CCPool.html create mode 100644 0.17/CCPrint.MONAD_IO.html create mode 100644 0.17/CCPrint.MakeIO.html create mode 100644 0.17/CCPrint.html create mode 100644 0.17/CCRAL.Infix.html create mode 100644 0.17/CCRAL.html create mode 100644 0.17/CCRandom.html create mode 100644 0.17/CCRef.html create mode 100644 0.17/CCResult.Infix.html create mode 100644 0.17/CCResult.MONAD.html create mode 100644 0.17/CCResult.Traverse.html create mode 100644 0.17/CCResult.html create mode 100644 0.17/CCRingBuffer.Array.Byte.html create mode 100644 0.17/CCRingBuffer.Array.Make.html create mode 100644 0.17/CCRingBuffer.Array.S.html create mode 100644 0.17/CCRingBuffer.Array.html create mode 100644 0.17/CCRingBuffer.Byte.html create mode 100644 0.17/CCRingBuffer.Make.html create mode 100644 0.17/CCRingBuffer.MakeFromArray.html create mode 100644 0.17/CCRingBuffer.S.Array.html create mode 100644 0.17/CCRingBuffer.S.html create mode 100644 0.17/CCRingBuffer.html create mode 100644 0.17/CCSemaphore.html create mode 100644 0.17/CCSet.Make.html create mode 100644 0.17/CCSet.S.html create mode 100644 0.17/CCSet.html create mode 100644 0.17/CCSexp.Traverse.html create mode 100644 0.17/CCSexp.html create mode 100644 0.17/CCSexpM.D.html create mode 100644 0.17/CCSexpM.ID_MONAD.html create mode 100644 0.17/CCSexpM.MONAD.html create mode 100644 0.17/CCSexpM.MakeDecode.html create mode 100644 0.17/CCSexpM.html create mode 100644 0.17/CCString.S.html create mode 100644 0.17/CCString.Split.html create mode 100644 0.17/CCString.Sub.html create mode 100644 0.17/CCString.html create mode 100644 0.17/CCThread.Arr.html create mode 100644 0.17/CCThread.Barrier.html create mode 100644 0.17/CCThread.html create mode 100644 0.17/CCTimer.html create mode 100644 0.17/CCTrie.Make.html create mode 100644 0.17/CCTrie.MakeArray.html create mode 100644 0.17/CCTrie.MakeList.html create mode 100644 0.17/CCTrie.ORDERED.html create mode 100644 0.17/CCTrie.S.html create mode 100644 0.17/CCTrie.String.html create mode 100644 0.17/CCTrie.WORD.html create mode 100644 0.17/CCTrie.html create mode 100644 0.17/CCUnix.Infix.html create mode 100644 0.17/CCUnix.html create mode 100644 0.17/CCVector.html create mode 100644 0.17/CCWBTree.KEY.html create mode 100644 0.17/CCWBTree.Make.html create mode 100644 0.17/CCWBTree.MakeFull.html create mode 100644 0.17/CCWBTree.ORD.html create mode 100644 0.17/CCWBTree.S.html create mode 100644 0.17/CCWBTree.html create mode 100644 0.17/Containers.Array.html create mode 100644 0.17/Containers.Bool.html create mode 100644 0.17/Containers.Char.html create mode 100644 0.17/Containers.Error.html create mode 100644 0.17/Containers.Float.html create mode 100644 0.17/Containers.Format.html create mode 100644 0.17/Containers.Fun.html create mode 100644 0.17/Containers.Hash.html create mode 100644 0.17/Containers.Hashtbl.Counter.html create mode 100644 0.17/Containers.Hashtbl.Make'.html create mode 100644 0.17/Containers.Hashtbl.MakeDefault.html create mode 100644 0.17/Containers.Hashtbl.S'.html create mode 100644 0.17/Containers.Hashtbl.html create mode 100644 0.17/Containers.Int.html create mode 100644 0.17/Containers.Int64.html create mode 100644 0.17/Containers.List.html create mode 100644 0.17/Containers.Map.OrderedType.html create mode 100644 0.17/Containers.Map.html create mode 100644 0.17/Containers.Option.html create mode 100644 0.17/Containers.Pair.html create mode 100644 0.17/Containers.Random.html create mode 100644 0.17/Containers.Ref.html create mode 100644 0.17/Containers.Result.html create mode 100644 0.17/Containers.Set.OrderedType.html create mode 100644 0.17/Containers.Set.html create mode 100644 0.17/Containers.String.html create mode 100644 0.17/Containers.Vector.html create mode 100644 0.17/Containers.html create mode 100644 0.17/Containers_advanced.Batch.html create mode 100644 0.17/Containers_advanced.Cat.html create mode 100644 0.17/Containers_advanced.Linq.html create mode 100644 0.17/Containers_advanced.MonadIO.html create mode 100644 0.17/Containers_advanced.html create mode 100644 0.17/Containers_io_is_deprecated.html create mode 100644 0.17/Containers_string.App_parse.html create mode 100644 0.17/Containers_string.KMP.html create mode 100644 0.17/Containers_string.Levenshtein.html create mode 100644 0.17/Containers_string.Parse.html create mode 100644 0.17/Containers_string.html create mode 100644 0.17/html.stamp create mode 100644 0.17/index.html create mode 100644 0.17/index_attributes.html create mode 100644 0.17/index_class_types.html create mode 100644 0.17/index_classes.html create mode 100644 0.17/index_exceptions.html create mode 100644 0.17/index_extensions.html create mode 100644 0.17/index_methods.html create mode 100644 0.17/index_module_types.html create mode 100644 0.17/index_modules.html create mode 100644 0.17/index_types.html create mode 100644 0.17/index_values.html create mode 100644 0.17/style.css create mode 100644 0.17/type_CCAllocCache.Arr.html create mode 100644 0.17/type_CCAllocCache.html create mode 100644 0.17/type_CCApp_parse.Chan.html create mode 100644 0.17/type_CCApp_parse.INPUT.html create mode 100644 0.17/type_CCApp_parse.Infix.html create mode 100644 0.17/type_CCApp_parse.Make.html create mode 100644 0.17/type_CCApp_parse.MakeFromReader.html create mode 100644 0.17/type_CCApp_parse.READER.html create mode 100644 0.17/type_CCApp_parse.S.html create mode 100644 0.17/type_CCApp_parse.Str.html create mode 100644 0.17/type_CCApp_parse.html create mode 100644 0.17/type_CCArray.MONO_ARRAY.html create mode 100644 0.17/type_CCArray.S.html create mode 100644 0.17/type_CCArray.Sub.html create mode 100644 0.17/type_CCArray.html create mode 100644 0.17/type_CCArray1.Bool.html create mode 100644 0.17/type_CCArray1.Float.html create mode 100644 0.17/type_CCArray1.Int.html create mode 100644 0.17/type_CCArray1.S.Infix.html create mode 100644 0.17/type_CCArray1.S.html create mode 100644 0.17/type_CCArray1.View.Float.html create mode 100644 0.17/type_CCArray1.View.Int.html create mode 100644 0.17/type_CCArray1.View.S.html create mode 100644 0.17/type_CCArray1.View.html create mode 100644 0.17/type_CCArray1.html create mode 100644 0.17/type_CCBV.html create mode 100644 0.17/type_CCBatch.COLLECTION.html create mode 100644 0.17/type_CCBatch.Make.html create mode 100644 0.17/type_CCBatch.S.html create mode 100644 0.17/type_CCBatch.html create mode 100644 0.17/type_CCBigstring.html create mode 100644 0.17/type_CCBitField.EMPTY.html create mode 100644 0.17/type_CCBitField.Make.html create mode 100644 0.17/type_CCBitField.S.FIELD.html create mode 100644 0.17/type_CCBitField.S.html create mode 100644 0.17/type_CCBitField.html create mode 100644 0.17/type_CCBlockingQueue.html create mode 100644 0.17/type_CCBloom.html create mode 100644 0.17/type_CCBool.html create mode 100644 0.17/type_CCCache.html create mode 100644 0.17/type_CCCat.APPLICATIVE.html create mode 100644 0.17/type_CCCat.FOLDABLE.html create mode 100644 0.17/type_CCCat.FREE_MONAD.F.html create mode 100644 0.17/type_CCCat.FREE_MONAD.html create mode 100644 0.17/type_CCCat.FUNCTOR.html create mode 100644 0.17/type_CCCat.MONAD.html create mode 100644 0.17/type_CCCat.MONAD_BARE.html create mode 100644 0.17/type_CCCat.MONAD_TRANSFORMER.M.html create mode 100644 0.17/type_CCCat.MONAD_TRANSFORMER.html create mode 100644 0.17/type_CCCat.MONOID.html create mode 100644 0.17/type_CCCat.MakeFree.html create mode 100644 0.17/type_CCCat.MakeFreeFold.html create mode 100644 0.17/type_CCCat.TRAVERSE.html create mode 100644 0.17/type_CCCat.WrapMonad.html create mode 100644 0.17/type_CCCat.html create mode 100644 0.17/type_CCChar.html create mode 100644 0.17/type_CCDeque.html create mode 100644 0.17/type_CCError.Infix.html create mode 100644 0.17/type_CCError.MONAD.html create mode 100644 0.17/type_CCError.Traverse.html create mode 100644 0.17/type_CCError.html create mode 100644 0.17/type_CCFQueue.html create mode 100644 0.17/type_CCFlatHashtbl.HASHABLE.html create mode 100644 0.17/type_CCFlatHashtbl.Make.html create mode 100644 0.17/type_CCFlatHashtbl.S.html create mode 100644 0.17/type_CCFlatHashtbl.html create mode 100644 0.17/type_CCFloat.Infix.html create mode 100644 0.17/type_CCFloat.html create mode 100644 0.17/type_CCFormat.html create mode 100644 0.17/type_CCFun.Monad.html create mode 100644 0.17/type_CCFun.html create mode 100644 0.17/type_CCGraph.Dot.html create mode 100644 0.17/type_CCGraph.LazyTree.html create mode 100644 0.17/type_CCGraph.MAP.html create mode 100644 0.17/type_CCGraph.Map.html create mode 100644 0.17/type_CCGraph.Seq.html create mode 100644 0.17/type_CCGraph.Traverse.Event.html create mode 100644 0.17/type_CCGraph.Traverse.html create mode 100644 0.17/type_CCGraph.html create mode 100644 0.17/type_CCHash.HASH.html create mode 100644 0.17/type_CCHash.Make.html create mode 100644 0.17/type_CCHash.S.html create mode 100644 0.17/type_CCHash.html create mode 100644 0.17/type_CCHashSet.ELEMENT.html create mode 100644 0.17/type_CCHashSet.Make.html create mode 100644 0.17/type_CCHashSet.S.html create mode 100644 0.17/type_CCHashSet.html create mode 100644 0.17/type_CCHashTrie.KEY.html create mode 100644 0.17/type_CCHashTrie.Make.html create mode 100644 0.17/type_CCHashTrie.S.html create mode 100644 0.17/type_CCHashTrie.Transient.html create mode 100644 0.17/type_CCHashTrie.html create mode 100644 0.17/type_CCHashconsedSet.ELT.html create mode 100644 0.17/type_CCHashconsedSet.Make.html create mode 100644 0.17/type_CCHashconsedSet.S.html create mode 100644 0.17/type_CCHashconsedSet.html create mode 100644 0.17/type_CCHashtbl.COUNTER.html create mode 100644 0.17/type_CCHashtbl.DEFAULT.html create mode 100644 0.17/type_CCHashtbl.Make.html create mode 100644 0.17/type_CCHashtbl.MakeCounter.html create mode 100644 0.17/type_CCHashtbl.MakeDefault.html create mode 100644 0.17/type_CCHashtbl.S.html create mode 100644 0.17/type_CCHashtbl.html create mode 100644 0.17/type_CCHeap.Make.html create mode 100644 0.17/type_CCHeap.PARTIAL_ORD.html create mode 100644 0.17/type_CCHeap.S.html create mode 100644 0.17/type_CCHeap.html create mode 100644 0.17/type_CCHet.Key.html create mode 100644 0.17/type_CCHet.Map.html create mode 100644 0.17/type_CCHet.Tbl.html create mode 100644 0.17/type_CCHet.html create mode 100644 0.17/type_CCIO.File.html create mode 100644 0.17/type_CCIO.html create mode 100644 0.17/type_CCImmutArray.html create mode 100644 0.17/type_CCInt.Infix.html create mode 100644 0.17/type_CCInt.html create mode 100644 0.17/type_CCInt64.html create mode 100644 0.17/type_CCIntMap.html create mode 100644 0.17/type_CCKList.Infix.html create mode 100644 0.17/type_CCKList.MONAD.html create mode 100644 0.17/type_CCKList.Traverse.html create mode 100644 0.17/type_CCKList.html create mode 100644 0.17/type_CCKMP.Make.html create mode 100644 0.17/type_CCKMP.S.html create mode 100644 0.17/type_CCKMP.STRING.html create mode 100644 0.17/type_CCKMP.html create mode 100644 0.17/type_CCKTree.Dot.html create mode 100644 0.17/type_CCKTree.html create mode 100644 0.17/type_CCKTree.pset.html create mode 100644 0.17/type_CCLazy_list.Infix.html create mode 100644 0.17/type_CCLazy_list.html create mode 100644 0.17/type_CCLevenshtein.Make.html create mode 100644 0.17/type_CCLevenshtein.S.Index.html create mode 100644 0.17/type_CCLevenshtein.S.html create mode 100644 0.17/type_CCLevenshtein.STRING.html create mode 100644 0.17/type_CCLevenshtein.html create mode 100644 0.17/type_CCLinq.AdaptMap.html create mode 100644 0.17/type_CCLinq.AdaptSet.html create mode 100644 0.17/type_CCLinq.Array.html create mode 100644 0.17/type_CCLinq.IO.html create mode 100644 0.17/type_CCLinq.Infix.html create mode 100644 0.17/type_CCLinq.List.html create mode 100644 0.17/type_CCLinq.PMap.html create mode 100644 0.17/type_CCLinq.html create mode 100644 0.17/type_CCList.Assoc.html create mode 100644 0.17/type_CCList.Idx.html create mode 100644 0.17/type_CCList.Infix.html create mode 100644 0.17/type_CCList.MONAD.html create mode 100644 0.17/type_CCList.Ref.html create mode 100644 0.17/type_CCList.Set.html create mode 100644 0.17/type_CCList.Traverse.html create mode 100644 0.17/type_CCList.Zipper.html create mode 100644 0.17/type_CCList.html create mode 100644 0.17/type_CCLock.LockRef.html create mode 100644 0.17/type_CCLock.html create mode 100644 0.17/type_CCMap.Make.html create mode 100644 0.17/type_CCMap.S.html create mode 100644 0.17/type_CCMap.html create mode 100644 0.17/type_CCMixmap.Make.html create mode 100644 0.17/type_CCMixmap.ORD.html create mode 100644 0.17/type_CCMixmap.S.html create mode 100644 0.17/type_CCMixmap.html create mode 100644 0.17/type_CCMixset.html create mode 100644 0.17/type_CCMixtbl.html create mode 100644 0.17/type_CCMonadIO.File.html create mode 100644 0.17/type_CCMonadIO.Raw.html create mode 100644 0.17/type_CCMonadIO.Seq.html create mode 100644 0.17/type_CCMonadIO.html create mode 100644 0.17/type_CCMultiMap.BIDIR.html create mode 100644 0.17/type_CCMultiMap.Make.html create mode 100644 0.17/type_CCMultiMap.MakeBidir.html create mode 100644 0.17/type_CCMultiMap.OrderedType.html create mode 100644 0.17/type_CCMultiMap.S.html create mode 100644 0.17/type_CCMultiMap.html create mode 100644 0.17/type_CCMultiSet.Make.html create mode 100644 0.17/type_CCMultiSet.S.html create mode 100644 0.17/type_CCMultiSet.html create mode 100644 0.17/type_CCOpt.Infix.html create mode 100644 0.17/type_CCOpt.html create mode 100644 0.17/type_CCOrd.html create mode 100644 0.17/type_CCPair.html create mode 100644 0.17/type_CCParse.MemoTbl.html create mode 100644 0.17/type_CCParse.U.html create mode 100644 0.17/type_CCParse.html create mode 100644 0.17/type_CCPersistentArray.html create mode 100644 0.17/type_CCPersistentHashtbl.HashedType.html create mode 100644 0.17/type_CCPersistentHashtbl.Make.html create mode 100644 0.17/type_CCPersistentHashtbl.S.html create mode 100644 0.17/type_CCPersistentHashtbl.html create mode 100644 0.17/type_CCPool.Make.Fut.Infix.html create mode 100644 0.17/type_CCPool.Make.Fut.html create mode 100644 0.17/type_CCPool.Make.html create mode 100644 0.17/type_CCPool.PARAM.html create mode 100644 0.17/type_CCPool.html create mode 100644 0.17/type_CCPrint.MONAD_IO.html create mode 100644 0.17/type_CCPrint.MakeIO.html create mode 100644 0.17/type_CCPrint.html create mode 100644 0.17/type_CCRAL.Infix.html create mode 100644 0.17/type_CCRAL.html create mode 100644 0.17/type_CCRandom.html create mode 100644 0.17/type_CCRef.html create mode 100644 0.17/type_CCResult.Infix.html create mode 100644 0.17/type_CCResult.MONAD.html create mode 100644 0.17/type_CCResult.Traverse.html create mode 100644 0.17/type_CCResult.html create mode 100644 0.17/type_CCRingBuffer.Array.Byte.html create mode 100644 0.17/type_CCRingBuffer.Array.Make.html create mode 100644 0.17/type_CCRingBuffer.Array.S.html create mode 100644 0.17/type_CCRingBuffer.Array.html create mode 100644 0.17/type_CCRingBuffer.Byte.html create mode 100644 0.17/type_CCRingBuffer.Make.html create mode 100644 0.17/type_CCRingBuffer.MakeFromArray.html create mode 100644 0.17/type_CCRingBuffer.S.Array.html create mode 100644 0.17/type_CCRingBuffer.S.html create mode 100644 0.17/type_CCRingBuffer.html create mode 100644 0.17/type_CCSemaphore.html create mode 100644 0.17/type_CCSet.Make.html create mode 100644 0.17/type_CCSet.S.html create mode 100644 0.17/type_CCSet.html create mode 100644 0.17/type_CCSexp.Traverse.html create mode 100644 0.17/type_CCSexp.html create mode 100644 0.17/type_CCSexpM.D.html create mode 100644 0.17/type_CCSexpM.ID_MONAD.html create mode 100644 0.17/type_CCSexpM.MONAD.html create mode 100644 0.17/type_CCSexpM.MakeDecode.html create mode 100644 0.17/type_CCSexpM.html create mode 100644 0.17/type_CCString.S.html create mode 100644 0.17/type_CCString.Split.html create mode 100644 0.17/type_CCString.Sub.html create mode 100644 0.17/type_CCString.html create mode 100644 0.17/type_CCThread.Arr.html create mode 100644 0.17/type_CCThread.Barrier.html create mode 100644 0.17/type_CCThread.html create mode 100644 0.17/type_CCTimer.html create mode 100644 0.17/type_CCTrie.Make.html create mode 100644 0.17/type_CCTrie.MakeArray.html create mode 100644 0.17/type_CCTrie.MakeList.html create mode 100644 0.17/type_CCTrie.ORDERED.html create mode 100644 0.17/type_CCTrie.S.html create mode 100644 0.17/type_CCTrie.String.html create mode 100644 0.17/type_CCTrie.WORD.html create mode 100644 0.17/type_CCTrie.html create mode 100644 0.17/type_CCUnix.Infix.html create mode 100644 0.17/type_CCUnix.html create mode 100644 0.17/type_CCVector.html create mode 100644 0.17/type_CCWBTree.KEY.html create mode 100644 0.17/type_CCWBTree.Make.html create mode 100644 0.17/type_CCWBTree.MakeFull.html create mode 100644 0.17/type_CCWBTree.ORD.html create mode 100644 0.17/type_CCWBTree.S.html create mode 100644 0.17/type_CCWBTree.html create mode 100644 0.17/type_Containers.Array.html create mode 100644 0.17/type_Containers.Bool.html create mode 100644 0.17/type_Containers.Char.html create mode 100644 0.17/type_Containers.Error.html create mode 100644 0.17/type_Containers.Float.html create mode 100644 0.17/type_Containers.Format.html create mode 100644 0.17/type_Containers.Fun.html create mode 100644 0.17/type_Containers.Hash.html create mode 100644 0.17/type_Containers.Hashtbl.Counter.html create mode 100644 0.17/type_Containers.Hashtbl.Make'.html create mode 100644 0.17/type_Containers.Hashtbl.MakeDefault.html create mode 100644 0.17/type_Containers.Hashtbl.S'.html create mode 100644 0.17/type_Containers.Hashtbl.html create mode 100644 0.17/type_Containers.Int.html create mode 100644 0.17/type_Containers.Int64.html create mode 100644 0.17/type_Containers.List.html create mode 100644 0.17/type_Containers.Map.OrderedType.html create mode 100644 0.17/type_Containers.Map.html create mode 100644 0.17/type_Containers.Option.html create mode 100644 0.17/type_Containers.Pair.html create mode 100644 0.17/type_Containers.Random.html create mode 100644 0.17/type_Containers.Ref.html create mode 100644 0.17/type_Containers.Result.html create mode 100644 0.17/type_Containers.Set.OrderedType.html create mode 100644 0.17/type_Containers.Set.html create mode 100644 0.17/type_Containers.String.html create mode 100644 0.17/type_Containers.Vector.html create mode 100644 0.17/type_Containers.html create mode 100644 0.17/type_Containers_advanced.Batch.html create mode 100644 0.17/type_Containers_advanced.Cat.html create mode 100644 0.17/type_Containers_advanced.Linq.html create mode 100644 0.17/type_Containers_advanced.MonadIO.html create mode 100644 0.17/type_Containers_advanced.html create mode 100644 0.17/type_Containers_io_is_deprecated.html create mode 100644 0.17/type_Containers_string.App_parse.html create mode 100644 0.17/type_Containers_string.KMP.html create mode 100644 0.17/type_Containers_string.Levenshtein.html create mode 100644 0.17/type_Containers_string.Parse.html create mode 100644 0.17/type_Containers_string.html diff --git a/0.17/CCAllocCache.Arr.html b/0.17/CCAllocCache.Arr.html new file mode 100644 index 00000000..a65e581d --- /dev/null +++ b/0.17/CCAllocCache.Arr.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCAllocCache.Arr + + + +

Module CCAllocCache.Arr

+ +
module Arr: sig .. end

+ +
type 'a t 
+
+Cache for 'a arrays
+
+ + +
val create : ?buck_size:int -> int -> 'a t
+create n makes a new cache of arrays up to length n
+
+
buck_size : number of arrays cached for each array length
+ +
val make : 'a t -> int -> 'a -> 'a array
+make cache i x is like Array.make i x, + but might return a cached array instead of allocating one. + NOTE: if the array is already allocated then it + will NOT be filled with x
+
+ +
val free : 'a t -> 'a array -> unit
+Return array to the cache. The array's elements will not be GC'd
+
+ +
val with_ : 'a t -> int -> 'a -> f:('a array -> 'b) -> 'b
+Combines CCAllocCache.Arr.make and CCAllocCache.Arr.free
+
+ \ No newline at end of file diff --git a/0.17/CCAllocCache.html b/0.17/CCAllocCache.html new file mode 100644 index 00000000..d83f296c --- /dev/null +++ b/0.17/CCAllocCache.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCAllocCache + + + +

Module CCAllocCache

+ +
module CCAllocCache: sig .. end
+

Simple Cache for Allocations

+

+ + Be very careful not to use-after-free or double-free. +

+ + NOT THREAD SAFE + status: experimental
+Since 0.15
+

+
+ +
module Arr: sig .. end
\ No newline at end of file diff --git a/0.17/CCApp_parse.Chan.html b/0.17/CCApp_parse.Chan.html new file mode 100644 index 00000000..ee7d5e7b --- /dev/null +++ b/0.17/CCApp_parse.Chan.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Chan + + + +

Module CCApp_parse.Chan

+ +
module Chan: S  with type source = in_channel

+ +
type source 
+
+Source of characters
+
+ + +
val parse : source ->
'a CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+Parse the given source using the parser, and returns the parsed value.
+
+ +
val parse' : source -> 'a CCApp_parse.t -> ('a, string) CCApp_parse.result
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure
+
+ +
val parse_exn : source -> 'a CCApp_parse.t -> 'a
+Unsafe version of CCApp_parse.S.parse.
+Raises Error if parsing fails
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.INPUT.html b/0.17/CCApp_parse.INPUT.html new file mode 100644 index 00000000..183e552a --- /dev/null +++ b/0.17/CCApp_parse.INPUT.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.INPUT + + + +

Module type CCApp_parse.INPUT

+ +
module type INPUT = sig .. end

+ +
type t 
+ + +
val read : t -> Bytes.t -> int -> int -> int
\ No newline at end of file diff --git a/0.17/CCApp_parse.Infix.html b/0.17/CCApp_parse.Infix.html new file mode 100644 index 00000000..f70e6bbc --- /dev/null +++ b/0.17/CCApp_parse.Infix.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Infix + + + +

Module CCApp_parse.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : 'a CCApp_parse.t -> ('a -> 'b) -> 'b CCApp_parse.t
+Infix version of CCApp_parse.map
+
+ +
val (<*>) : ('a -> 'b) CCApp_parse.t -> 'a CCApp_parse.t -> 'b CCApp_parse.t
+Synonym to CCApp_parse.app
+
+ +
val (>>) : 'b CCApp_parse.t -> 'a CCApp_parse.t -> 'a CCApp_parse.t
+a >> b parses a, ignores its result, then parses b
+
+ +
val (<<) : 'a CCApp_parse.t -> 'b CCApp_parse.t -> 'a CCApp_parse.t
+a << b parses a, then b, and discards b to return a
+
+ +
val (<+>) : 'a CCApp_parse.t -> 'a CCApp_parse.t -> 'a CCApp_parse.t
+a <+> b is choice [a;b], a binary choice
+
+ +
val (<::>) : 'a CCApp_parse.t -> 'a list CCApp_parse.t -> 'a list CCApp_parse.t
+a <::> b is app (fun x l -> x::l) a b
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.Make.html b/0.17/CCApp_parse.Make.html new file mode 100644 index 00000000..995955f2 --- /dev/null +++ b/0.17/CCApp_parse.Make.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Make + + + +

Functor CCApp_parse.Make

+ +
module Make (I : INPUT) : S  with type source = I.t
+ + + + +
Parameters: + + + + +
+I:INPUT +
+
+
+ +
type source 
+
+Source of characters
+
+ + +
val parse : source ->
'a CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+Parse the given source using the parser, and returns the parsed value.
+
+ +
val parse' : source -> 'a CCApp_parse.t -> ('a, string) CCApp_parse.result
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure
+
+ +
val parse_exn : source -> 'a CCApp_parse.t -> 'a
+Unsafe version of CCApp_parse.S.parse.
+Raises Error if parsing fails
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.MakeFromReader.html b/0.17/CCApp_parse.MakeFromReader.html new file mode 100644 index 00000000..c42999cf --- /dev/null +++ b/0.17/CCApp_parse.MakeFromReader.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.MakeFromReader + + + +

Functor CCApp_parse.MakeFromReader

+ +
module MakeFromReader (R : READER) : S  with type source = R.source
+ + + + +
Parameters: + + + + +
+R:READER +
+
+
+ +
type source 
+
+Source of characters
+
+ + +
val parse : source ->
'a CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+Parse the given source using the parser, and returns the parsed value.
+
+ +
val parse' : source -> 'a CCApp_parse.t -> ('a, string) CCApp_parse.result
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure
+
+ +
val parse_exn : source -> 'a CCApp_parse.t -> 'a
+Unsafe version of CCApp_parse.S.parse.
+Raises Error if parsing fails
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.READER.html b/0.17/CCApp_parse.READER.html new file mode 100644 index 00000000..b304de26 --- /dev/null +++ b/0.17/CCApp_parse.READER.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.READER + + + +

Module type CCApp_parse.READER

+ +
module type READER = sig .. end

+ +
type t 
+ + +
type source 
+ + +
val create : source -> t
+
val peek : t -> CCApp_parse.token
+
val next : t -> CCApp_parse.token
+
val junk : t -> unit
+
val line : t -> int
+
val col : t -> int
\ No newline at end of file diff --git a/0.17/CCApp_parse.S.html b/0.17/CCApp_parse.S.html new file mode 100644 index 00000000..40adbed9 --- /dev/null +++ b/0.17/CCApp_parse.S.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.S + + + +

Module type CCApp_parse.S

+ +
module type S = sig .. end

+ +
type source 
+
+Source of characters
+
+ + +
val parse : source ->
'a CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+Parse the given source using the parser, and returns the parsed value.
+
+ +
val parse' : source -> 'a CCApp_parse.t -> ('a, string) CCApp_parse.result
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure
+
+ +
val parse_exn : source -> 'a CCApp_parse.t -> 'a
+Unsafe version of CCApp_parse.S.parse.
+Raises Error if parsing fails
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.Str.html b/0.17/CCApp_parse.Str.html new file mode 100644 index 00000000..945ff949 --- /dev/null +++ b/0.17/CCApp_parse.Str.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Str + + + +

Module CCApp_parse.Str

+ +
module Str: S  with type source = string

+ +
type source 
+
+Source of characters
+
+ + +
val parse : source ->
'a CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+Parse the given source using the parser, and returns the parsed value.
+
+ +
val parse' : source -> 'a CCApp_parse.t -> ('a, string) CCApp_parse.result
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure
+
+ +
val parse_exn : source -> 'a CCApp_parse.t -> 'a
+Unsafe version of CCApp_parse.S.parse.
+Raises Error if parsing fails
+
+ \ No newline at end of file diff --git a/0.17/CCApp_parse.html b/0.17/CCApp_parse.html new file mode 100644 index 00000000..e88b85fa --- /dev/null +++ b/0.17/CCApp_parse.html @@ -0,0 +1,361 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse + + + +

Module CCApp_parse

+ +
module CCApp_parse: sig .. end
+Deprecated.CCParse is more expressive and stable +

+ +status: deprecated
+

Applicative Parser Combinators

+

+ + Example: basic S-expr parser +

+ +

  open Containers_string.App_parse;;
+
+  type sexp = Atom of string | List of sexp list;;
+
+  let mkatom a = Atom a;;
+  let mklist l = List l;;
+
+  let ident_char = alpha_num <+> any_of "|!;$#@%&-_/=*.:~+[]<>'" ;;
+  let ident = many1 ident_char >|= str_of_l ;;
+  let atom = (ident <+> quoted) >|= mkatom ;;
+
+  let sexp = fix (fun sexp ->
+    white >>
+      (atom <+>
+       ((char '(' >> many sexp << char ')') >|= mklist)
+      )
+  );;
+
+  Str.parse_exn "(a (b c d) e)" sexp;;
+
+

+Since 0.10
+
+
+ +
type ('a, 'b) result = [ `Error of 'b | `Ok of 'a ] 
+ + +
type 'a t 
+
+Parser that yields an error or a value of type 'a
+
+ +
+
Combinators

+ +
val return : 'a -> 'a t
+Parser that succeeds with the given value
+
+ +
val pure : 'a -> 'a t
+Synonym to CCApp_parse.return
+
+ +
val junk : unit t
+Skip next char
+
+ +
val fail : string -> 'a t
+fail msg fails with the given error message
+
+ +
val failf : ('a, unit, string, 'b t) Pervasives.format4 -> 'a
+
val app : ('a -> 'b) t -> 'a t -> 'b t
+Applicative
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map the parsed value
+
+ +
val int : int t
+Parse an integer
+
+ +
val float : float t
+Parse a floating point number
+
+ +
val bool : bool t
+Parse "true" or "false"
+
+ +
val char : char -> char t
+char c parses c and c only
+
+ +
val any_of : string -> char t
+Parse any of the chars present in the given string
+
+ +
val alpha_lower : char t
+
val alpha_upper : char t
+
val alpha : char t
+
val symbols : char t
+Symbols, such as "!-=_"...
+
+ +
val num : char t
+
val alpha_num : char t
+
val word : string t
+word parses any identifier not starting with an integer and + not containing any whitespace nor delimiter + TODO: specify
+
+ +
val quoted : string t
+Quoted string, following OCaml conventions
+
+ +
val str_of_l : char list -> string
+Helper to build strings from lists of chars
+
+ +
val spaces : unit t
+Parse a sequence of '\t' and ' '
+
+ +
val spaces1 : unit t
+Same as CCApp_parse.spaces but requires at least one space
+
+ +
val white : unit t
+Parse a sequence of '\t', '\n' and ' '
+
+ +
val white1 : unit t
+
val eof : unit t
+Matches the end of input, fails otherwise
+
+ +
val many : ?sep:unit t -> 'a t -> 'a list t
+0 or more parsed elements of the given type.
+
+
sep : separator between elements of the list (for instance, space)
+ +
val many1 : ?sep:unit t -> 'a t -> 'a list t
+Same as CCApp_parse.many, but needs at least one element
+
+ +
val skip : 'a t -> unit t
+Skip 0 or more instances of the given parser
+
+ +
val skip1 : 'a t -> unit t
+
val opt : 'a t -> 'a option t
+opt x tries to parse x, and returns None otherwise
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+filter f p parses the same as p, but fails if the returned value + does not satisfy f
+
+ +
val switch_c : ?default:'a t ->
(char * 'a t) list -> 'a t
+switch_c l matches the next char and uses the corresponding parser. + Fails if the next char is not in the list, unless default is defined.
+Raises Invalid_argument if some char occurs several times in l
+
+
default : parser to use if no char matches
+ +
val switch_s : (string * 'a t) list -> 'a t
+switch_s l attempts to match matches any of the strings in l. + If one of those strings matches, the corresponding parser + is used from now on.
+Raises Invalid_argument if some string is a prefix of another string, + or is empty, or if the list is empty
+
+ +
val choice : 'a t list -> 'a t
+choice l chooses between the parsers, unambiguously
+Raises Invalid_argument if the list is empty, or if some parsers + overlap, making the choice ambiguous
+
+ +
val fix : ('a t -> 'a t) -> 'a t
+fix f makes a fixpoint
+
+ +
module Infix: sig .. end
+
include CCApp_parse.Infix
+
+

Signatures


+
+

Signatures


+
+
Parsing

+ +
type error = {
+ + + + + + + + + + + + + + +
+   +line : int;
+   +col : int;
+   +msg : string;
+} + + + +
val string_of_error : error -> string
+
exception Error of error
+ +
module type S = sig .. end

+

Parse


+ +
module type INPUT = sig .. end
+
module Make (I : INPUT) : S  with type source = I.t

+

Low-level interface


+ +
val print : Format.formatter -> 'a t -> unit
+Print a parser structure, for debug purpose
+
+ +
type token = 
+ + + + + + + + + +
+| +Yield of char
+| +EOF
+ + + +
module type READER = sig .. end
+
module MakeFromReader (R : READER) : S  with type source = R.source

+

Defaults


+ +
module Str: S  with type source = string
+
module Chan: S  with type source = in_channel
\ No newline at end of file diff --git a/0.17/CCArray.MONO_ARRAY.html b/0.17/CCArray.MONO_ARRAY.html new file mode 100644 index 00000000..14c46671 --- /dev/null +++ b/0.17/CCArray.MONO_ARRAY.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.MONO_ARRAY + + + +

Module type CCArray.MONO_ARRAY

+ +
module type MONO_ARRAY = sig .. end

+ +
type elt 
+ + +
type t 
+ + +
val length : t -> int
+
val get : t -> int -> elt
+
val set : t -> int -> elt -> unit
\ No newline at end of file diff --git a/0.17/CCArray.S.html b/0.17/CCArray.S.html new file mode 100644 index 00000000..ce96c066 --- /dev/null +++ b/0.17/CCArray.S.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.S + + + +

Module type CCArray.S

+ +
module type S = sig .. end

+ +
type 'a t 
+
+Array, or sub-array, containing elements of type 'a
+
+ + +
val empty : 'a t
+
val equal : 'a CCArray.equal -> 'a t CCArray.equal
+
val compare : 'a CCArray.ord -> 'a t CCArray.ord
+
val get : 'a t -> int -> 'a
+
val set : 'a t -> int -> 'a -> unit
+
val length : 'a t -> int
+
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+
val foldi : ('a -> int -> 'b -> 'a) -> 'a -> 'b t -> 'a
+Fold left on array, with index
+
+ +
val fold_while : ('a -> 'b -> 'a * [ `Continue | `Stop ]) -> 'a -> 'b t -> 'a
+Fold left on array until a stop condition via ('a, `Stop) is + indicated by the accumulator
+Since 0.8
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+
val iteri : (int -> 'a -> unit) -> 'a t -> unit
+
val blit : 'a t -> int -> 'a t -> int -> int -> unit
+blit from i into j len copies len elements from the first array + to the second. See Array.blit.
+
+ +
val reverse_in_place : 'a t -> unit
+Reverse the array in place
+
+ +
val find : ('a -> 'b option) -> 'a t -> 'b option
+find f a returns Some y if there is an element x such + that f x = Some y, else it returns None
+
+ +
val findi : (int -> 'a -> 'b option) -> 'a t -> 'b option
+Like CCArray.S.find, but also pass the index to the predicate function.
+Since 0.3.4
+
+ +
val find_idx : ('a -> bool) -> 'a t -> (int * 'a) option
+find_idx p x returns Some (i,x) where x is the i-th element of l, + and p x holds. Otherwise returns None
+Since 0.3.4
+
+ +
val lookup : ?cmp:'a CCArray.ord -> 'a -> 'a t -> int option
+Lookup the index of some value in a sorted array.
+Returns None if the key is not present, or + Some i (i the index of the key) otherwise
+
+ +
val lookup_exn : ?cmp:'a CCArray.ord -> 'a -> 'a t -> int
+Same as CCArray.S.lookup_exn, but
+Raises Not_found if the key is not present
+
+ +
val bsearch : ?cmp:('a -> 'a -> int) ->
'a ->
'a t ->
[ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+bsearch ?cmp x arr finds the index of the object x in the array arr, + provided arr is sorted using cmp. If the array is not sorted, + the result is not specified (may raise Invalid_argument). +

+ + Complexity: O(log n) where n is the length of the array + (dichotomic search).
+Since 0.13
+Raises Invalid_argument if the array is found to be unsorted w.r.t cmp
+Returns - `At i if cmp arr.(i) x = 0 (for some i)

+
+
+ +
val for_all : ('a -> bool) -> 'a t -> bool
+
val for_all2 : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+Forall on pairs of arrays.
+Raises Invalid_argument if they have distinct lengths
+
+ +
val exists : ('a -> bool) -> 'a t -> bool
+
val exists2 : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+Exists on pairs of arrays.
+Raises Invalid_argument if they have distinct lengths
+
+ +
val shuffle : 'a t -> unit
+Shuffle randomly the array, in place
+
+ +
val shuffle_with : Random.State.t -> 'a t -> unit
+Like shuffle but using a specialized random state
+
+ +
val random_choose : 'a t -> 'a CCArray.random_gen
+Choose an element randomly.
+Raises Not_found if the array/slice is empty
+
+ +
val to_seq : 'a t -> 'a CCArray.sequence
+
val to_gen : 'a t -> 'a CCArray.gen
+
val to_klist : 'a t -> 'a CCArray.klist

+

IO


+ +
val pp : ?sep:string -> (Buffer.t -> 'a -> unit) -> Buffer.t -> 'a t -> unit
+Print an array of items with printing function
+
+ +
val pp_i : ?sep:string ->
(Buffer.t -> int -> 'a -> unit) -> Buffer.t -> 'a t -> unit
+Print an array, giving the printing function both index and item
+
+ +
val print : ?sep:string ->
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a t -> unit
+Print an array of items with printing function
+
+ \ No newline at end of file diff --git a/0.17/CCArray.Sub.html b/0.17/CCArray.Sub.html new file mode 100644 index 00000000..d390894f --- /dev/null +++ b/0.17/CCArray.Sub.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.Sub + + + +

Module CCArray.Sub

+ +
module Sub: sig .. end

+ +
type 'a t 
+
+A slice is an array, an offset, and a length
+
+ + +
val make : 'a array -> int -> len:int -> 'a t
+Create a slice.
+Raises Invalid_argument if the slice isn't valid
+
+ +
val of_slice : 'a array * int * int -> 'a t
+Make a sub-array from a triple (arr, i, len) where arr is the array, + i the offset in arr, and len the number of elements of the slice.
+Raises Invalid_argument if the slice isn't valid (See CCArray.Sub.make)
+
+ +
val to_slice : 'a t -> 'a array * int * int
+Convert into a triple (arr, i, len) where len is the length of + the subarray of arr starting at offset i
+
+ +
val full : 'a array -> 'a t
+Slice that covers the full array
+
+ +
val underlying : 'a t -> 'a array
+Underlying array (shared). Modifying this array will modify the slice
+
+ +
val copy : 'a t -> 'a array
+Copy into a new array
+
+ +
val sub : 'a t -> int -> int -> 'a t
+Sub-slice
+
+ +
include CCArray.S
+ \ No newline at end of file diff --git a/0.17/CCArray.html b/0.17/CCArray.html new file mode 100644 index 00000000..4d51196a --- /dev/null +++ b/0.17/CCArray.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray + + + +

Module CCArray

+ +
module CCArray: sig .. end
+

Array utils


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ +
+

Abstract Signature


+ +
module type S = sig .. end

+

Arrays


+ +
type 'a t = 'a array 
+ + +
include CCArray.S
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+
val filter : ('a -> bool) -> 'a t -> 'a t
+Filter elements out of the array. Only the elements satisfying + the given predicate will be kept.
+
+ +
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+Map each element into another value, or discard it
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b array
+Transform each element into an array, then flatten
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Infix version of CCArray.flat_map
+
+ +
val (>>|) : 'a t -> ('a -> 'b) -> 'b t
+Infix version of CCArray.map
+Since 0.8
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix version of CCArray.map
+Since 0.8
+
+ +
val except_idx : 'a t -> int -> 'a list
+Remove given index, obtaining the list of the other elements
+
+ +
val (--) : int -> int -> int t
+Range array
+
+ +
val (--^) : int -> int -> int t
+Range array, excluding right bound
+Since 0.17
+
+ +
val random : 'a random_gen -> 'a t random_gen
+
val random_non_empty : 'a random_gen -> 'a t random_gen
+
val random_len : int -> 'a random_gen -> 'a t random_gen

+

Slices

+A slice is a part of an array, that requires no copying and shares +its storage with the original array. +

+ +All indexing in a slice is relative to the beginning of a slice, not +to the underlying array (meaning a slice is effectively like +a regular array)
+ +

module Sub: sig .. end

+

Generic Functions


+ +
module type MONO_ARRAY = sig .. end
+
val sort_generic : (module CCArray.MONO_ARRAY with type elt = 'elt and type t = 'arr) ->
?cmp:('elt -> 'elt -> int) -> 'arr -> unit
+Sort the array, without allocating (eats stack space though). Performance + might be lower than Array.sort.
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCArray1.Bool.html b/0.17/CCArray1.Bool.html new file mode 100644 index 00000000..644d0d43 --- /dev/null +++ b/0.17/CCArray1.Bool.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Bool + + + +

Module CCArray1.Bool

+ +
module Bool: sig .. end

+ +
type ('b, [< `R | `W ]) t = (int, 'b, [< `R | `W ] as 'a) CCArray1.array_ 
+
+A simple bitvector based on some integral type 'b
+
+ + +
val get : ('a, [< `R | `W > `R ]) t -> int -> bool
+
val set : ('a, [< `R | `W > `W ]) t -> int -> bool -> unit
+
val zeroes : int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) t
+
val ones : int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) t
+
val iter_zeroes : f:(int -> unit) -> ('a, [< `R | `W > `R ]) t -> unit
+iter_ones ~f a calls f i for every index i such that get a i = false
+
+ +
val iter_ones : f:(int -> unit) -> ('a, [< `R | `W > `R ]) t -> unit
+iter_ones ~f a calls f i for every index i such that get a i = true
+
+ +
val cardinal : ('a, [< `R | `W > `R ]) t -> int
+Number of ones
+
+ +
val pp : ('a, [< `R | `W > `R ]) t CCArray1.printer
+Print the bitvector nicely
+
+
+
Operations

+ +
val or_ : ?res:('b, [< `R | `W > `W ] as 'a) t ->
('b, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> ('b, 'a) t
+or_ a b ~into puts the boolean "or" of a and b in into + expects length into = max (length a) (length b)
+Raises WrongDimension if dimensions do not match
+
+ +
val and_ : ?res:('b, [< `R | `W > `W ] as 'a) t ->
('b, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> ('b, 'a) t
+Boolean conjunction. See or for the parameters
+
+ +
val not_ : ?res:('b, [< `R | `W > `W ] as 'a) t ->
('b, [< `R | `W > `R ]) t -> ('b, 'a) t
+Boolean negation (negation of a 0 becomes a 1)
+
+ +
val mix : ?res:('b, [< `R | `W > `W ] as 'a) t ->
('b, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> ('b, 'a) t
+mix a b ~into assumes length a + length b = length into and + mixes (interleaves) bits of a and b in into.
+Raises WrongDimension if dimensions do not match
+
+ +
val convolution : ?res:('b, [< `R | `W > `W ] as 'a) t ->
('b, [< `R | `W > `R ]) t ->
by:('b, [< `R | `W > `R ]) t -> ('b, 'a) t
+convolution a ~by:b ~into assumes length into = length a >= length b + and computes the boolean convolution of a by b
+Raises WrongDimension if dimensions do not match
+
+ \ No newline at end of file diff --git a/0.17/CCArray1.Float.html b/0.17/CCArray1.Float.html new file mode 100644 index 00000000..e299cfdd --- /dev/null +++ b/0.17/CCArray1.Float.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Float + + + +

Module CCArray1.Float

+ +
module Float: S  with type elt = float

+ +
type elt 
+ + +
type ('a, [< `R | `W ]) t = (elt, 'a, [< `R | `W ] as 'b) CCArray1.array_ 
+ + +
val add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise sum
+Raises WrongDimension if dimensions do not fit
+
+ +
val mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise product
+
+ +
val scalar_add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val scalar_mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient sum of elements
+
+ +
val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient product of elements
+
+ +
val dot_product : ('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> elt
+dot_product a b returns sum_i a(i)*b(i) with the given + sum and product, on elt. + dot_product a b = sum_elt (product a b)
+Raises WrongDimension if a and b do not have the same size
+
+ +
module Infix: sig .. end
+
include CCArray1.S.Infix
+ \ No newline at end of file diff --git a/0.17/CCArray1.Int.html b/0.17/CCArray1.Int.html new file mode 100644 index 00000000..1771daaa --- /dev/null +++ b/0.17/CCArray1.Int.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Int + + + +

Module CCArray1.Int

+ +
module Int: S  with type elt = int

+ +
type elt 
+ + +
type ('a, [< `R | `W ]) t = (elt, 'a, [< `R | `W ] as 'b) CCArray1.array_ 
+ + +
val add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise sum
+Raises WrongDimension if dimensions do not fit
+
+ +
val mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise product
+
+ +
val scalar_add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val scalar_mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient sum of elements
+
+ +
val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient product of elements
+
+ +
val dot_product : ('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> elt
+dot_product a b returns sum_i a(i)*b(i) with the given + sum and product, on elt. + dot_product a b = sum_elt (product a b)
+Raises WrongDimension if a and b do not have the same size
+
+ +
module Infix: sig .. end
+
include CCArray1.S.Infix
+ \ No newline at end of file diff --git a/0.17/CCArray1.S.Infix.html b/0.17/CCArray1.S.Infix.html new file mode 100644 index 00000000..a3791775 --- /dev/null +++ b/0.17/CCArray1.S.Infix.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.S.Infix + + + +

Module CCArray1.S.Infix

+ +
module Infix: sig .. end

+ +
val ( * ) : ('a, [< `R | `W > `R ]) CCArray1.S.t ->
('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, [< `R | `W ]) CCArray1.S.t
+Alias to CCArray1.S.mult
+
+ +
val (+) : ('a, [< `R | `W > `R ]) CCArray1.S.t ->
('b, [< `R | `W > `R ]) CCArray1.S.t -> ('a, [< `R | `W ]) CCArray1.S.t
+Alias to CCArray1.S.add
+
+ +
val ( *! ) : ('a, [< `R | `W > `R ]) CCArray1.S.t ->
CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+Alias to CCArray1.S.scalar_mult
+
+ +
val (+!) : ('a, [< `R | `W > `R ]) CCArray1.S.t ->
CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+Alias to CCArray1.S.scalar_add
+
+ \ No newline at end of file diff --git a/0.17/CCArray1.S.html b/0.17/CCArray1.S.html new file mode 100644 index 00000000..dbae84c5 --- /dev/null +++ b/0.17/CCArray1.S.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.S + + + +

Module type CCArray1.S

+ +
module type S = sig .. end

+ +
type elt 
+ + +
type ('a, [< `R | `W ]) t = (elt, 'a, [< `R | `W ] as 'b) CCArray1.array_ 
+ + +
val add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise sum
+Raises WrongDimension if dimensions do not fit
+
+ +
val mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+Elementwise product
+
+ +
val scalar_add : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val scalar_mult : ?res:('a, [< `R | `W > `W ] as 'b) t ->
('a, [< `R | `W > `R ]) t ->
x:elt -> ('a, 'b) t
+Raises WrongDimension if dimensions do not fit
+
+ +
val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient sum of elements
+
+ +
val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+Efficient product of elements
+
+ +
val dot_product : ('a, [< `R | `W > `R ]) t ->
('b, [< `R | `W > `R ]) t -> elt
+dot_product a b returns sum_i a(i)*b(i) with the given + sum and product, on elt. + dot_product a b = sum_elt (product a b)
+Raises WrongDimension if a and b do not have the same size
+
+ +
module Infix: sig .. end
+
include CCArray1.S.Infix
+ \ No newline at end of file diff --git a/0.17/CCArray1.View.Float.html b/0.17/CCArray1.View.Float.html new file mode 100644 index 00000000..7dd138b0 --- /dev/null +++ b/0.17/CCArray1.View.Float.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.Float + + + +

Module CCArray1.View.Float

+ +
module Float: sig .. end

+ +
include CCArray1.View.S
+ \ No newline at end of file diff --git a/0.17/CCArray1.View.Int.html b/0.17/CCArray1.View.Int.html new file mode 100644 index 00000000..a2b90093 --- /dev/null +++ b/0.17/CCArray1.View.Int.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.Int + + + +

Module CCArray1.View.Int

+ +
module Int: sig .. end

+ +
include CCArray1.View.S
+ \ No newline at end of file diff --git a/0.17/CCArray1.View.S.html b/0.17/CCArray1.View.S.html new file mode 100644 index 00000000..5bfe0e27 --- /dev/null +++ b/0.17/CCArray1.View.S.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.S + + + +

Module type CCArray1.View.S

+ +
module type S = sig .. end

+ +
type elt 
+ + +
val mult : elt CCArray1.View.t ->
elt CCArray1.View.t -> elt CCArray1.View.t
+
val add : elt CCArray1.View.t ->
elt CCArray1.View.t -> elt CCArray1.View.t
+
val sum : elt CCArray1.View.t -> elt
+
val prod : elt CCArray1.View.t -> elt
+
val add_scalar : elt CCArray1.View.t ->
x:elt -> elt CCArray1.View.t
+
val mult_scalar : elt CCArray1.View.t ->
x:elt -> elt CCArray1.View.t
\ No newline at end of file diff --git a/0.17/CCArray1.View.html b/0.17/CCArray1.View.html new file mode 100644 index 00000000..ffcdec26 --- /dev/null +++ b/0.17/CCArray1.View.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View + + + +

Module CCArray1.View

+ +
module View: sig .. end

+ +
type 'a t 
+
+A view on an array or part of an array
+
+ + +
val of_array : ('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'a t
+
val get : 'a t -> int -> 'a
+get v i returns the i-th element of v. Caution, this is not + as cheap as a regular array indexing, and it might involve recursion.
+Raises Invalid_argument if index out of bounds
+
+ +
val length : 'a t -> int
+length v is the number of elements of v
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Map values
+
+ +
val map2 : f:('a -> 'b -> 'c) ->
'a t -> 'b t -> 'c t
+Map values
+Raises WrongDimension if lengths do not fit
+
+ +
val select : idx:(int, 'b, [< `R | `W > `R ]) CCArray1.array_ ->
'a t -> 'a t
+select ~idx v is the view that has length length idx + and such that get (select ~idx a) i = get a (get idx i)
+
+ +
val select_a : idx:int array -> 'a t -> 'a t
+See CCArray1.View.select
+
+ +
val select_view : idx:int t -> 'a t -> 'a t
+See CCArray1.View.select
+
+ +
val foldi : ('b -> int -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on values with their index
+
+ +
val iteri : f:(int -> 'a -> unit) -> 'a t -> unit
+iteri ~f v iterates on elements of v with their index
+
+ +
module type S = sig .. end
+
module Int: sig .. end
+
module Float: sig .. end
+
val raw : length:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int) ->
get:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int -> 'a) ->
('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'a t
+
val to_array : ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.array_ ->
?kind:('a, 'b) Bigarray.kind ->
'a t -> ('a, 'b, 'c) CCArray1.array_
+to_array v returns a fresh copy of the content of v. + Exactly one of res and kind must be provided
+
+ \ No newline at end of file diff --git a/0.17/CCArray1.html b/0.17/CCArray1.html new file mode 100644 index 00000000..43563ce6 --- /dev/null +++ b/0.17/CCArray1.html @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1 + + + +

Module CCArray1

+ +
module CCArray1: sig .. end
+Deprecated.do not use, this was always experimental + NOTE this module will be removed soon and should not be depended upon +

+ + status: deprecated
+

Bigarrays of dimension 1


+Since 0.12
+
+
+
+

used types


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type random = Random.State.t 
+ + +
type json = [ `Assoc of (string * json) list
| `Bool of bool
| `Float of float
| `Int of int
| `List of json list
| `Null
| `String of string ]
+ + +
type 'a to_json = 'a -> json 
+ + +
type 'a of_json = json -> 'a or_error 
+ +
+

Type Declarations


+ +
type ('a, 'b, [< `R | `W ]) t 
+
+Array of OCaml values of type 'a with C representation of type b' + with permissions 'perm
+
+ + +
type ('a, 'b, [< `R | `W ]) array_ = ('a, 'b, [< `R | `W ] as 'c) t 
+ + +
exception WrongDimension
+
+Raised when arrays do not have expected length
+
+
+

Basic Operations


+ +
val make : ?x:'a ->
kind:('a, 'b) Bigarray.kind -> int -> ('a, 'b, [< `R | `W ]) t
+New array with undefined elements
+
+
x : optional element to fill every slot
+
kind : the kind of bigarray
+ +
val make_int : int -> (int, Bigarray.int_elt, [< `R | `W ]) t
+
val make_char : int -> (char, Bigarray.int8_unsigned_elt, [< `R | `W ]) t
+
val make_int8s : int -> (int, Bigarray.int8_signed_elt, [< `R | `W ]) t
+
val make_int8u : int -> (int, Bigarray.int8_unsigned_elt, [< `R | `W ]) t
+
val make_int16s : int -> (int, Bigarray.int16_signed_elt, [< `R | `W ]) t
+
val make_int16u : int -> (int, Bigarray.int16_unsigned_elt, [< `R | `W ]) t
+
val make_int32 : int -> (int32, Bigarray.int32_elt, [< `R | `W ]) t
+
val make_int64 : int -> (int64, Bigarray.int64_elt, [< `R | `W ]) t
+
val make_native : int -> (nativeint, Bigarray.nativeint_elt, [< `R | `W ]) t
+
val make_float32 : int -> (float, Bigarray.float32_elt, [< `R | `W ]) t
+
val make_float64 : int -> (float, Bigarray.float64_elt, [< `R | `W ]) t
+
val make_complex32 : int -> (Complex.t, Bigarray.complex32_elt, [< `R | `W ]) t
+
val make_complex64 : int -> (Complex.t, Bigarray.complex64_elt, [< `R | `W ]) t
+
val init : kind:('a, 'b) Bigarray.kind ->
f:(int -> 'a) -> int -> ('a, 'b, [< `R | `W ]) t
+Initialize with given size and initialization function
+
+ +
val of_bigarray : ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t ->
('a, 'b, [< `R | `W ]) t
+Convert from a big array
+
+ +
val to_bigarray : ('a, 'b, [ `R | `W ]) t ->
('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
+Obtain the underlying array
+
+ +
val ro : ('a, 'b, [< `R | `W > `R ]) t -> ('a, 'b, [ `R ]) t
+Change permission (old reference to array might still be mutable!)
+
+ +
val wo : ('a, 'b, [< `R | `W > `W ]) t -> ('a, 'b, [ `W ]) t
+Change permission
+
+ +
val length : ('a, 'b, [< `R | `W > `R ]) t -> int
+Number of elements
+
+ +
val set : ('a, 'b, [< `R | `W > `W ]) t -> int -> 'a -> unit
+set n-th element
+
+ +
val get : ('a, 'b, [< `R | `W > `R ]) t -> int -> 'a
+Get n-th element
+
+ +
val fill : ('a, 'b, [< `R | `W > `W ]) t -> 'a -> unit
+fill a x fills a with x
+
+ +
val sub : ('a, 'b, [< `R | `W ] as 'c) t ->
int -> int -> ('a, 'b, 'c) t
+sub a i len takes the slice of length len starting at offset i
+
+ +
val blit : ('a, 'b, [< `R | `W > `R ]) t ->
('a, 'b, [< `R | `W > `W ]) t -> unit
+blit the first array to the second
+
+ +
val copy : ('a, 'b, [< `R | `W > `R ]) t -> ('a, 'b, [< `R | `W ]) t
+Fresh copy
+
+ +
val iter : f:('a -> unit) -> ('a, 'b, [< `R | `W > `R ]) t -> unit
+iter a ~f calls f v where get a i = v for each i < length a. + It iterates on all bits in increasing order
+
+ +
val iteri : f:(int -> 'a -> unit) -> ('a, 'b, [< `R | `W > `R ]) t -> unit
+iteri a ~f calls f i v where get a i = v for each i < length a. + It iterates on all elements in increasing order
+
+ +
val foldi : ('b -> int -> 'a -> 'b) -> 'b -> ('a, 'c, [< `R | `W > `R ]) t -> 'b
+
val for_all : f:('a -> bool) -> ('a, 'b, [< `R | `W > `R ]) t -> bool
+
val exists : f:('a -> bool) -> ('a, 'b, [< `R | `W > `R ]) t -> bool
+
val pp : 'a printer ->
('a, 'b, [< `R | `W > `R ]) t printer
+Print the SDR nicely
+
+
+

Boolean Vectors


+ +
module Bool: sig .. end

+

Operations


+ +
val map : ?res:('a, 'b, [< `R | `W > `W ] as 'c) t ->
f:('a -> 'a) ->
('a, 'b, [< `R | `W > `R ]) t -> ('a, 'b, 'c) t
+
val map2 : ?res:('a, 'b, [< `R | `W > `W ] as 'c) t ->
f:('a -> 'a2 -> 'a) ->
('a, 'b, [< `R | `W > `R ]) t ->
('a2, 'd, [< `R | `W > `R ]) t -> ('a, 'b, 'c) t
+
val append : ?res:('a, 'b, [< `R | `W > `W ] as 'c) t ->
('a, 'b, [< `R | `W > `R ]) t ->
('a, 'b, [< `R | `W > `R ]) t -> ('a, 'b, 'c) t
+append a b ~into assumes length a + length b = length into and + copies a and b side by side in into
+Raises WrongDimension if dimensions do not match
+
+ +
val filter : ?res:(Bigarray.int8_unsigned_elt, [< `R | `W > `W ] as 'c) Bool.t ->
f:('a -> bool) ->
('a, 'b, [< `R | `W > `R ]) t ->
(Bigarray.int8_unsigned_elt, 'c) Bool.t
+
module type S = sig .. end
+
module Int: S  with type elt = int
+
module Float: S  with type elt = float

+

Conversions


+ +
val to_list : ('a, 'b, [< `R | `W > `R ]) t -> 'a list
+
val to_array : ('a, 'b, [< `R | `W > `R ]) t -> 'a array
+
val to_seq : ('a, 'b, [< `R | `W > `R ]) t -> 'a sequence
+
val of_array : kind:('a, 'b) Bigarray.kind -> 'a array -> ('a, 'b, [< `R | `W ]) t

+

Serialization


+ +
val to_yojson : 'a to_json ->
('a, 'b, [< `R | `W > `R ]) t to_json
+
val of_yojson : kind:('a, 'b) Bigarray.kind ->
'a of_json -> ('a, 'b, [< `R | `W ]) t of_json
+
val int_to_yojson : int to_json
+
val int_of_yojson : int of_json
+
val float_to_yojson : float to_json
+
val float_of_yojson : float of_json

+

Views


+ +
module View: sig .. end
\ No newline at end of file diff --git a/0.17/CCBV.html b/0.17/CCBV.html new file mode 100644 index 00000000..244df741 --- /dev/null +++ b/0.17/CCBV.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBV + + + +

Module CCBV

+ +
module CCBV: sig .. end
+

Imperative Bitvectors

+

+ +The size of the bitvector is rounded up to the multiple of 30 or 62. +In other words some functions such as CCBV.iter might iterate on more +bits than what was originally asked for.
+

+
+ +
type t 
+
+A resizable bitvector
+
+ + +
val empty : unit -> t
+Empty bitvector
+
+ +
val create : size:int -> bool -> t
+Create a bitvector of given size, with given default value
+
+ +
val copy : t -> t
+Copy of bitvector
+
+ +
val cardinal : t -> int
+Number of bits set
+
+ +
val length : t -> int
+Length of underlying array
+
+ +
val resize : t -> int -> unit
+Resize the BV so that it has at least the given physical length + resize bv n should make bv able to store (Sys.word_size - 2)* n bits
+
+ +
val is_empty : t -> bool
+Any bit set?
+
+ +
val set : t -> int -> unit
+Set i-th bit.
+
+ +
val get : t -> int -> bool
+Is the i-th bit true? Returns false if the index is too high
+
+ +
val reset : t -> int -> unit
+Set i-th bit to 0
+
+ +
val flip : t -> int -> unit
+Flip i-th bit
+
+ +
val clear : t -> unit
+Set every bit to 0
+
+ +
val iter : t -> (int -> bool -> unit) -> unit
+Iterate on all bits
+
+ +
val iter_true : t -> (int -> unit) -> unit
+Iterate on bits set to 1
+
+ +
val to_list : t -> int list
+List of indexes that are true
+
+ +
val to_sorted_list : t -> int list
+Same as CCBV.to_list, but also guarantees the list is sorted in + increasing order
+
+ +
val of_list : int list -> t
+From a list of true bits
+
+ +
val first : t -> int
+First set bit, or
+Raises Not_found if all bits are 0
+
+ +
val filter : t -> (int -> bool) -> unit
+filter bv p only keeps the true bits of bv whose index + satisfies p index
+
+ +
val union_into : into:t -> t -> unit
+union ~into bv sets into to the union of itself and bv.
+
+ +
val inter_into : into:t -> t -> unit
+inter ~into bv sets into to the intersection of itself and bv
+
+ +
val union : t -> t -> t
+union bv1 bv2 returns the union of the two sets
+
+ +
val inter : t -> t -> t
+inter bv1 bv2 returns the intersection of the two sets
+
+ +
val select : t -> 'a array -> 'a list
+select arr bv selects the elements of arr whose index + corresponds to a true bit in bv. If bv is too short, elements of arr + with too high an index cannot be selected and are therefore not + selected.
+
+ +
val selecti : t -> 'a array -> ('a * int) list
+Same as CCBV.select, but selected elements are paired with their index
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
val to_seq : t -> int sequence
+
val of_seq : int sequence -> t
+
val print : Format.formatter -> t -> unit
+Print the bitvector as a string of bits
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCBatch.COLLECTION.html b/0.17/CCBatch.COLLECTION.html new file mode 100644 index 00000000..a1d1577d --- /dev/null +++ b/0.17/CCBatch.COLLECTION.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.COLLECTION + + + +

Module type CCBatch.COLLECTION

+ +
module type COLLECTION = sig .. end
+

Definition of a Collection


+
+
+ +
type 'a t 
+ + +
val empty : 'a t
+
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+
val map : ('a -> 'b) -> 'a t -> 'b t
+
val filter : ('a -> bool) -> 'a t -> 'a t
+
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+
val flat_map : ('a -> 'b t) ->
'a t -> 'b t
\ No newline at end of file diff --git a/0.17/CCBatch.Make.html b/0.17/CCBatch.Make.html new file mode 100644 index 00000000..968d632b --- /dev/null +++ b/0.17/CCBatch.Make.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.Make + + + +

Functor CCBatch.Make

+ +
module Make (C : COLLECTION) : S  with type 'a t = 'a C.t
+

Functor


+
+ + + + + +
Parameters: + + + + +
+C:COLLECTION +
+
+
+ +
type 'a t 
+ + +
type ('a, 'b) op 
+
+Operation that converts a 'a t into a 'b t
+
+ + +
val apply : ('a, 'b) op -> 'a t -> 'b t
+Apply the operation to the collection.
+
+ +
val apply_fold : ('a, 'b) op -> ('c -> 'b -> 'c) -> 'c -> 'a t -> 'c
+Apply the operation plus a fold to the collection.
+
+ +
val apply' : 'a t -> ('a, 'b) op -> 'b t
+Flip of CCBatch.S.apply
+
+
+
Combinators

+ +
val id : ('a, 'a) op
+
val map : ('a -> 'b) -> ('a, 'b) op
+
val filter : ('a -> bool) -> ('a, 'a) op
+
val filter_map : ('a -> 'b option) -> ('a, 'b) op
+
val flat_map : ('a -> 'b t) -> ('a, 'b) op
+
val extern : ('a t -> 'b t) -> ('a, 'b) op
+Use a specific function that won't be optimized
+
+ +
val compose : ('b, 'c) op -> ('a, 'b) op -> ('a, 'c) op
+
val (>>>) : ('a, 'b) op -> ('b, 'c) op -> ('a, 'c) op
\ No newline at end of file diff --git a/0.17/CCBatch.S.html b/0.17/CCBatch.S.html new file mode 100644 index 00000000..520fe2a6 --- /dev/null +++ b/0.17/CCBatch.S.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.S + + + +

Module type CCBatch.S

+ +
module type S = sig .. end
+

Definition of a Batch operations


+
+
+ +
type 'a t 
+ + +
type ('a, 'b) op 
+
+Operation that converts a 'a t into a 'b t
+
+ + +
val apply : ('a, 'b) op -> 'a t -> 'b t
+Apply the operation to the collection.
+
+ +
val apply_fold : ('a, 'b) op -> ('c -> 'b -> 'c) -> 'c -> 'a t -> 'c
+Apply the operation plus a fold to the collection.
+
+ +
val apply' : 'a t -> ('a, 'b) op -> 'b t
+Flip of CCBatch.S.apply
+
+
+
Combinators

+ +
val id : ('a, 'a) op
+
val map : ('a -> 'b) -> ('a, 'b) op
+
val filter : ('a -> bool) -> ('a, 'a) op
+
val filter_map : ('a -> 'b option) -> ('a, 'b) op
+
val flat_map : ('a -> 'b t) -> ('a, 'b) op
+
val extern : ('a t -> 'b t) -> ('a, 'b) op
+Use a specific function that won't be optimized
+
+ +
val compose : ('b, 'c) op -> ('a, 'b) op -> ('a, 'c) op
+
val (>>>) : ('a, 'b) op -> ('b, 'c) op -> ('a, 'c) op
\ No newline at end of file diff --git a/0.17/CCBatch.html b/0.17/CCBatch.html new file mode 100644 index 00000000..987743b6 --- /dev/null +++ b/0.17/CCBatch.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch + + + +

Module CCBatch

+ +
module CCBatch: sig .. end
+

Batch Operations on Collections

+Define and combine operations on a collection of elements, then +run the composition of those operations on some collection. The +composition is optimized to minimize the number of intermediate +collections
+
+
+ +
module type COLLECTION = sig .. end
+Definition of a Collection +
+ +
module type S = sig .. end
+Definition of a Batch operations +
+ +
module Make (C : COLLECTION) : S  with type 'a t = 'a C.t
+Functor +
+ \ No newline at end of file diff --git a/0.17/CCBigstring.html b/0.17/CCBigstring.html new file mode 100644 index 00000000..90228cc7 --- /dev/null +++ b/0.17/CCBigstring.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBigstring + + + +

Module CCBigstring

+ +
module CCBigstring: sig .. end
+Deprecated.use the package bigstring instead. +

+ + status: deprecated, do not use anymore
+

Interface to 1-dimension Bigarrays of bytes (char)


+Since 0.7
+
+
+ +
type t = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t 
+ + +
val create : int -> t
+Create a new bigstring of the given size.
+
+ +
val empty : t
+Empty string
+
+ +
val init : int -> (int -> char) -> t
+Initialize with the given function (called at every index)
+
+ +
val fill : t -> char -> unit
+Fill with a single byte
+
+ +
val size : t -> int
+Number of bytes
+
+ +
val length : t -> int
+Alias for size.
+Since 0.8
+
+ +
val get : t -> int -> char
+
val set : t -> int -> char -> unit
+
val blit : t -> int -> t -> int -> int -> unit
+Blit a slice of the bigstring into another
+
+ +
val copy : t -> t
+Copy of the string
+
+ +
val sub : t -> int -> int -> t
+sub s i len takes a slice of length len from the string s, starting + at offset i.
+Raises Invalid_argument if i, len doesn't designate a valid substring
+
+ +
val fold : ('a -> char -> 'a) -> 'a -> t -> 'a
+
val iter : (char -> unit) -> t -> unit
+
val equal : t -> t -> bool
+
val compare : t -> t -> int
+Lexicographic order
+
+
+

Conversions


+ +
val to_bytes : t -> Bytes.t
+
val of_bytes : Bytes.t -> t
+
val of_bytes_slice : Bytes.t -> int -> int -> t
+
val sub_bytes : t -> int -> int -> Bytes.t
+
val blit_to_bytes : t -> int -> Bytes.t -> int -> int -> unit
+
val blit_of_bytes : Bytes.t -> int -> t -> int -> int -> unit
+
val to_string : t -> string
+
val of_string : string -> t
+
val of_string_slice : string -> int -> int -> t
+
val sub_string : t -> int -> int -> string
+
val blit_of_string : string -> int -> t -> int -> int -> unit
+
type 'a gen = unit -> 'a option 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val to_seq : t -> char sequence
+
val to_gen : t -> char gen
+
val to_seq_slice : t -> int -> int -> char sequence
+
val to_gen_slice : t -> int -> int -> char gen
+
val print : t printer
+Since 0.13
+
+
+

Memory-map


+ +
val with_map_file : ?pos:int64 ->
?len:int ->
?mode:int ->
?flags:Pervasives.open_flag list ->
?shared:bool -> string -> (t -> 'a) -> 'a
+with_map_file name f maps the file into memory, opening it, and + call f with a slice pos.... pos+len of the bytes of the file + where len is the length of the file if not provided. + When f returns, the file is closed.
+
+
pos : offset in the file (default 0)
+
mode : the mode for the file, if it's created
+
flags : opening flags (default rdonly) + see Bigarray.Array1.map_file for more details
+
shared : if true, modifications are shared between processes that + have mapped this file (requires the filedescr to be open in write mode).
+ +
val map_file_descr : ?pos:int64 -> ?shared:bool -> Unix.file_descr -> int -> t
+map_file_descr descr len is a lower-level access to an underlying file descriptor.
+
+
shared : if true, modifications are shared between processes that + have mapped this file (requires the filedescr to be open in write mode). + see Bigarray.Array1.map_file for more details
+ \ No newline at end of file diff --git a/0.17/CCBitField.EMPTY.html b/0.17/CCBitField.EMPTY.html new file mode 100644 index 00000000..8165adcc --- /dev/null +++ b/0.17/CCBitField.EMPTY.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.EMPTY + + + +

Module type CCBitField.EMPTY

+ +
module type EMPTY = sig .. end
+Used for generativity on versions of OCaml older than 4.02
+
+
+ \ No newline at end of file diff --git a/0.17/CCBitField.Make.html b/0.17/CCBitField.Make.html new file mode 100644 index 00000000..ff4e5c66 --- /dev/null +++ b/0.17/CCBitField.Make.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.Make + + + +

Functor CCBitField.Make

+ +
module Make (X : EMPTY) : S 
+Create a new bitfield type
+
+ + + + + +
Parameters: + + + + +
+X:EMPTY +
+
+
+ +
type t = private int 
+
+Generative type of bitfields. Each instantiation of the functor + should create a new, incompatible type
+
+ + +
val empty : t
+Empty bitfields (all bits 0)
+
+ +
type '_ field_kind = 
+ + + + + + + + + +
+| +Bool : bool field_kind
+| +Int : int field_kind
+ + + +
module type FIELD = sig .. end
+Field of type value, with a given width and position within the + bitfield type +
+ +
type 'a field = (module CCBitField.S.FIELD with type value = 'a) 
+ + +
val bool : ?name:string -> unit -> bool field
+New field of type bool
+Raises +
+ +
val int2 : ?name:string -> unit -> int field
+New field of type 2-bits int (same as int ~width:2)
+Raises +
+ +
val int3 : ?name:string -> unit -> int field
+New field of type 3-bits int (same as int ~width:3)
+Raises +
+ +
val int : ?name:string -> width:int -> unit -> int field
+New field for width bits.
+Raises +
+ +
val freeze : unit -> unit
+Prevent new fields from being added. From now on, creating + a field will raise Frozen
+
+ +
val total_width : unit -> int
+Current width of the bitfield
+
+ +
type any_field = 
+ + + + +
+| +AnyField : (module CCBitField.S.FIELD with type value = 'a) * 'a field_kind -> any_field
+ + + +
val iter_fields : (any_field -> unit) -> unit
+Iterate on all currently present fields
+
+ +
val pp : Format.formatter -> t -> unit
+Print the bitfield using the current list of fields
+
+ \ No newline at end of file diff --git a/0.17/CCBitField.S.FIELD.html b/0.17/CCBitField.S.FIELD.html new file mode 100644 index 00000000..0735f9df --- /dev/null +++ b/0.17/CCBitField.S.FIELD.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.S.FIELD + + + +

Module type CCBitField.S.FIELD

+ +
module type FIELD = sig .. end
+Field of type value, with a given width and position within the + bitfield type
+
+
+ +
type value 
+
+Values contained in the field
+
+ + +
val get : CCBitField.S.t -> value
+
val set : value -> CCBitField.S.t -> CCBitField.S.t
+
val width : int
+
val name : string
+
val kind : value CCBitField.S.field_kind
\ No newline at end of file diff --git a/0.17/CCBitField.S.html b/0.17/CCBitField.S.html new file mode 100644 index 00000000..a7b97a04 --- /dev/null +++ b/0.17/CCBitField.S.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.S + + + +

Module type CCBitField.S

+ +
module type S = sig .. end
+

Bitfield Signature


+
+
+ +
type t = private int 
+
+Generative type of bitfields. Each instantiation of the functor + should create a new, incompatible type
+
+ + +
val empty : t
+Empty bitfields (all bits 0)
+
+ +
type '_ field_kind = 
+ + + + + + + + + +
+| +Bool : bool field_kind
+| +Int : int field_kind
+ + + +
module type FIELD = sig .. end
+Field of type value, with a given width and position within the + bitfield type +
+ +
type 'a field = (module CCBitField.S.FIELD with type value = 'a) 
+ + +
val bool : ?name:string -> unit -> bool field
+New field of type bool
+Raises +
+ +
val int2 : ?name:string -> unit -> int field
+New field of type 2-bits int (same as int ~width:2)
+Raises +
+ +
val int3 : ?name:string -> unit -> int field
+New field of type 3-bits int (same as int ~width:3)
+Raises +
+ +
val int : ?name:string -> width:int -> unit -> int field
+New field for width bits.
+Raises +
+ +
val freeze : unit -> unit
+Prevent new fields from being added. From now on, creating + a field will raise Frozen
+
+ +
val total_width : unit -> int
+Current width of the bitfield
+
+ +
type any_field = 
+ + + + +
+| +AnyField : (module CCBitField.S.FIELD with type value = 'a) * 'a field_kind -> any_field
+ + + +
val iter_fields : (any_field -> unit) -> unit
+Iterate on all currently present fields
+
+ +
val pp : Format.formatter -> t -> unit
+Print the bitfield using the current list of fields
+
+ \ No newline at end of file diff --git a/0.17/CCBitField.html b/0.17/CCBitField.html new file mode 100644 index 00000000..9e2fe2fd --- /dev/null +++ b/0.17/CCBitField.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField + + + +

Module CCBitField

+ +
module CCBitField: sig .. end
+

Bit Field

+

+ + This module defines efficient bitfields + up to 30 or 62 bits (depending on the architecture) in + a relatively type-safe way. +

+ +

module B = CCBitField.Make(struct end);;
+
+#install_printer B.pp;;
+
+module X = (val B.int ~name:"x" ~width:3 ());;
+module Y = (val B.int ~name:"y" ~width:2 ());;
+module Z = (val B.bool ~name:"z" ());;
+
+let f = B.empty |> X.set 3 |> Y.set 1;;
+
+Z.get f ;;
+
+f |> Z.set true |> Z.get ;;
+
+Format.printf "f: %a@." B.pp f;;
+
+
+

+ +status: experimental
+Since 0.13
+

+
+ +
exception TooManyFields
+
+Raised when too many fields are packed into one bitfield
+
+ +
exception Frozen
+
+Raised when a frozen bitfield is modified
+
+ +
module type EMPTY = sig .. end
+Used for generativity on versions of OCaml older than 4.02 +
+ +
val max_width : int
+System-dependent maximum width for a bitfield, typically 30 or 62
+
+ +
module type S = sig .. end
+Bitfield Signature +
+ +
module Make (X : EMPTY) : S 
+Create a new bitfield type +
+ \ No newline at end of file diff --git a/0.17/CCBlockingQueue.html b/0.17/CCBlockingQueue.html new file mode 100644 index 00000000..2e75f1cd --- /dev/null +++ b/0.17/CCBlockingQueue.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBlockingQueue + + + +

Module CCBlockingQueue

+ +
module CCBlockingQueue: sig .. end
+

Blocking Queue

+

+ + This queue has a limited size. Pushing a value on the queue when it + is full will block.
+Since 0.16
+

+
+ +
type 'a t 
+
+Safe-thread queue for values of type 'a
+
+ + +
val create : int -> 'a t
+Create a new queue of size n. Using n=max_int amounts to using + an infinite queue (2^61 items is a lot to fit in memory); using n=1 + amounts to using a box with 0 or 1 elements inside.
+Raises Invalid_argument if n < 1
+
+ +
val push : 'a t -> 'a -> unit
+push q x pushes x into q, blocking if the queue is full
+
+ +
val take : 'a t -> 'a
+Take the first element, blocking if needed
+
+ +
val push_list : 'a t -> 'a list -> unit
+Push items of the list, one by one
+
+ +
val take_list : 'a t -> int -> 'a list
+take_list n q takes n elements out of q
+
+ +
val try_take : 'a t -> 'a option
+Take the first element if the queue is not empty, return None + otherwise
+
+ +
val try_push : 'a t -> 'a -> bool
+try_push q x pushes x into q if q is not full, in which + case it returns true. + If it fails because q is full, it returns false
+
+ +
val peek : 'a t -> 'a option
+peek q returns Some x if x is the first element of q, + otherwise it returns None
+
+ +
val size : 'a t -> int
+Number of elements currently in the queue
+
+ +
val capacity : 'a t -> int
+Number of values the queue can hold
+
+ \ No newline at end of file diff --git a/0.17/CCBloom.html b/0.17/CCBloom.html new file mode 100644 index 00000000..60619208 --- /dev/null +++ b/0.17/CCBloom.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBloom + + + +

Module CCBloom

+ +
module CCBloom: sig .. end
+

Bloom Filter

+

+ + status: experimental
+Since 0.13
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a hash_funs = ('a -> int) array 
+
+An array of k hash functions on values of type 'a. + Never ever modify such an array after use!
+
+ + +
val default_hash_funs : int -> 'a hash_funs
+Use Hashtbl.seeded_hash on k seeds
+
+
+

Bloom Filter


+ +
type 'a t 
+
+Bloom filter containing values of type 'a
+
+ + +
val create : ?hash:'a hash_funs -> int -> 'a t
+create ?hash size creates a filter with given size, and functions. + By default it uses CCBloom.default_hash_funs
+
+ +
val create_default : ?hash_len:int -> int -> 'a t
+create_default ?hash_len size is the same as + create ~hash:(default_hash_funs hash_len) size. + It uses the given number of default hash functions.
+
+ +
val copy : 'a t -> 'a t
+Copy of the filter
+
+ +
val size : 'a t -> int
+Length of the underlying array. Do not confuse with a cardinal function, + which is impossible to write for bloom filters
+
+ +
val load : 'a t -> float
+Ratio of 1 bits in the underlying array. The closer to 1., the less + accurate CCBloom.mem is
+
+ +
val mem : 'a t -> 'a -> bool
+mem f x tests whether x (probably) belongs to f
+
+ +
val add : 'a t -> 'a -> unit
+add f x adds x into f
+
+ +
val union_mut : into:'a t -> 'a t -> unit
+union_mut ~into f changes into into the union of into and f. + into and f MUST have the same set of hash functions
+Raises Invalid_argument if the two sets do not have the same size
+
+ +
val union : 'a t -> 'a t -> 'a t
+The sets MUST have the same set of hash functions
+Raises Invalid_argument if the two sets do not have the same size
+
+ +
val inter_mut : into:'a t -> 'a t -> unit
+inter_mut ~into f changes into into the intersection of into and f + into and f MUST have the same set of hash functions
+Raises Invalid_argument if the two sets do not have the same size
+
+ +
val inter : 'a t -> 'a t -> 'a t
+The sets MUST have the same set of hash functions
+Raises Invalid_argument if the two sets do not have the same size
+
+
+

Conversions


+ +
val add_list : 'a t -> 'a list -> unit
+
val add_seq : 'a t -> 'a sequence -> unit
+
val add_gen : 'a t -> 'a gen -> unit
\ No newline at end of file diff --git a/0.17/CCBool.html b/0.17/CCBool.html new file mode 100644 index 00000000..d74890b4 --- /dev/null +++ b/0.17/CCBool.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBool + + + +

Module CCBool

+ +
module CCBool: sig .. end
+

Basic Bool functions


+
+
+ +
type t = bool 
+ + +
val compare : t -> t -> int
+Total ordering on booleans, similar to Pervasives.compare
+
+ +
val equal : t -> t -> bool
+
val negate : t -> t
+Negation on booleans (functional version of not)
+
+ +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val pp : t printer
+Printer for booleans
+
+ +
val print : t formatter
\ No newline at end of file diff --git a/0.17/CCCache.html b/0.17/CCCache.html new file mode 100644 index 00000000..e1321a30 --- /dev/null +++ b/0.17/CCCache.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCache + + + +

Module CCCache

+ +
module CCCache: sig .. end
+

Caches

+

+ +Particularly useful for memoization. See CCCache.with_cache and CCCache.with_cache_rec +for more details.
+Since 0.6
+

+
+ +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a hash = 'a -> int 
+ +
+

Value interface

+

+ +Typical use case: one wants to memoize a function f : 'a -> 'b. Code sample: +

let f x =
+  print_endline "call f";
+  x + 1;;
+
+let f' = with_cache (lru 256) f;;
+f' 0;;  (* prints *)
+f' 1;;  (* prints *)
+f' 0;;  (* doesn't print, returns cached value *)
+

+ +
type ('a, 'b) t 
+ + +
val clear : ('a, 'b) t -> unit
+Clear the content of the cache
+
+ +
val with_cache : ('a, 'b) t -> ('a -> 'b) -> 'a -> 'b
+with_cache c f behaves like f, but caches calls to f in the + cache c. It always returns the same value as + f x, if f x returns, or raise the same exception. + However, f may not be called if x is in the cache.
+
+ +
val with_cache_rec : ('a, 'b) t -> (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b
+with_cache_rec c f is a function that first, applies f to + some f' = fix f, such that recursive calls to f' are cached in c. + It is similar to CCCache.with_cache but with a function that takes as + first argument its own recursive version. + Example (memoized Fibonacci function): +
let fib = with_cache_rec (lru 256)
+  (fun fib' n -> match n with
+    | 1 | 2 -> 1
+    | _ -> fib' (n-1) + fib' (n-2)
+  );;
+
+fib 70;;
+

+
+ +
val size : ('a, 'b) t -> int
+Size of the cache (number of entries). At most linear in the number + of entries.
+
+ +
val iter : ('a, 'b) t -> ('a -> 'b -> unit) -> unit
+Iterate on cached values. Should yield size cache pairs.
+
+ +
val dummy : ('a, 'b) t
+Dummy cache, never stores any value
+
+ +
val linear : ?eq:'a equal -> int -> ('a, 'b) t
+Linear cache with the given size. It stores key/value pairs in + an array and does linear search at every call, so it should only be used + with small size.
+
+
eq : optional equality predicate for keys
+ +
val replacing : ?eq:'a equal -> ?hash:'a hash -> int -> ('a, 'b) t
+Replacing cache of the given size. Equality and hash functions can be + parametrized. It's a hash table that handles collisions by replacing + the old value with the new (so a cache entry is evicted when another + entry with the same hash (modulo size) is added). + Never grows wider than the given size.
+
+ +
val lru : ?eq:'a equal -> ?hash:'a hash -> int -> ('a, 'b) t
+LRU cache of the given size ("Least Recently Used": keys that have not been + used recently are deleted first). Never grows wider than the given size.
+
+ +
val unbounded : ?eq:'a equal -> ?hash:'a hash -> int -> ('a, 'b) t
+Unbounded cache, backed by a Hash table. Will grow forever + unless CCCache.clear is called manually.
+
+ \ No newline at end of file diff --git a/0.17/CCCat.APPLICATIVE.html b/0.17/CCCat.APPLICATIVE.html new file mode 100644 index 00000000..fe376683 --- /dev/null +++ b/0.17/CCCat.APPLICATIVE.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.APPLICATIVE + + + +

Module type CCCat.APPLICATIVE

+ +
module type APPLICATIVE = sig .. end

+ +
type +'a t 
+ + +
include CCCat.FUNCTOR
+ +
val pure : 'a -> 'a t
+
val (<*>) : ('a -> 'b) t ->
'a t -> 'b t
\ No newline at end of file diff --git a/0.17/CCCat.FOLDABLE.html b/0.17/CCCat.FOLDABLE.html new file mode 100644 index 00000000..07436788 --- /dev/null +++ b/0.17/CCCat.FOLDABLE.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FOLDABLE + + + +

Module type CCCat.FOLDABLE

+ +
module type FOLDABLE = sig .. end

+ +
type 'a t 
+ + +
val to_seq : 'a t -> 'a CCCat.sequence
\ No newline at end of file diff --git a/0.17/CCCat.FREE_MONAD.F.html b/0.17/CCCat.FREE_MONAD.F.html new file mode 100644 index 00000000..10786c95 --- /dev/null +++ b/0.17/CCCat.FREE_MONAD.F.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FREE_MONAD.F + + + +

Module CCCat.FREE_MONAD.F

+ +
module F: CCCat.FUNCTOR 

+ +
type +'a t 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
\ No newline at end of file diff --git a/0.17/CCCat.FREE_MONAD.html b/0.17/CCCat.FREE_MONAD.html new file mode 100644 index 00000000..34dab725 --- /dev/null +++ b/0.17/CCCat.FREE_MONAD.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FREE_MONAD + + + +

Module type CCCat.FREE_MONAD

+ +
module type FREE_MONAD = sig .. end
+The free monad is built by nesting applications of a functor F. +

+ +For instance, Lisp-like nested lists can be built and dealt with like this: +

  module Lisp = CCCat.FreeMonad(CCList);;
+
+  let l = Lisp.(inj [1;2;3]  >>= fun x -> inj [x; x*2; x+100]);;
+

+
+
+ +
module F: CCCat.FUNCTOR 
+
type 'a t = 
+ + + + + + + + + +
+| +Return of 'a
+| +Roll of 'a t F.t
+ + + +
include CCCat.MONAD
+ +
val inj : 'a F.t -> 'a t
\ No newline at end of file diff --git a/0.17/CCCat.FUNCTOR.html b/0.17/CCCat.FUNCTOR.html new file mode 100644 index 00000000..a1cdf84d --- /dev/null +++ b/0.17/CCCat.FUNCTOR.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FUNCTOR + + + +

Module type CCCat.FUNCTOR

+ +
module type FUNCTOR = sig .. end

+ +
type +'a t 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
\ No newline at end of file diff --git a/0.17/CCCat.MONAD.html b/0.17/CCCat.MONAD.html new file mode 100644 index 00000000..3388b1b4 --- /dev/null +++ b/0.17/CCCat.MONAD.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD + + + +

Module type CCCat.MONAD

+ +
module type MONAD = sig .. end

+ +
include CCCat.MONAD_BARE
+ +
include CCCat.APPLICATIVE
+ \ No newline at end of file diff --git a/0.17/CCCat.MONAD_BARE.html b/0.17/CCCat.MONAD_BARE.html new file mode 100644 index 00000000..5a6c189d --- /dev/null +++ b/0.17/CCCat.MONAD_BARE.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_BARE + + + +

Module type CCCat.MONAD_BARE

+ +
module type MONAD_BARE = sig .. end

+ +
type +'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t ->
('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCCat.MONAD_TRANSFORMER.M.html b/0.17/CCCat.MONAD_TRANSFORMER.M.html new file mode 100644 index 00000000..e8a8ddd1 --- /dev/null +++ b/0.17/CCCat.MONAD_TRANSFORMER.M.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_TRANSFORMER.M + + + +

Module CCCat.MONAD_TRANSFORMER.M

+ +
module M: CCCat.MONAD 

+ +
include CCCat.MONAD_BARE
+ +
include CCCat.APPLICATIVE
+ \ No newline at end of file diff --git a/0.17/CCCat.MONAD_TRANSFORMER.html b/0.17/CCCat.MONAD_TRANSFORMER.html new file mode 100644 index 00000000..0936c374 --- /dev/null +++ b/0.17/CCCat.MONAD_TRANSFORMER.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_TRANSFORMER + + + +

Module type CCCat.MONAD_TRANSFORMER

+ +
module type MONAD_TRANSFORMER = sig .. end

+ +
include CCCat.MONAD
+ +
module M: CCCat.MONAD 
+
val lift : 'a M.t -> 'a t
\ No newline at end of file diff --git a/0.17/CCCat.MONOID.html b/0.17/CCCat.MONOID.html new file mode 100644 index 00000000..837fae35 --- /dev/null +++ b/0.17/CCCat.MONOID.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONOID + + + +

Module type CCCat.MONOID

+ +
module type MONOID = sig .. end

+ +
type t 
+ + +
val empty : t
+
val append : t -> t -> t
\ No newline at end of file diff --git a/0.17/CCCat.MakeFree.html b/0.17/CCCat.MakeFree.html new file mode 100644 index 00000000..d0004c3b --- /dev/null +++ b/0.17/CCCat.MakeFree.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MakeFree + + + +

Functor CCCat.MakeFree

+ +
module MakeFree (F : FUNCTOR) : FREE_MONAD  with module F = F
+ + + + +
Parameters: + + + + +
+F:FUNCTOR +
+
+
+ +
module F: CCCat.FUNCTOR 
+
type 'a t = 
+ + + + + + + + + +
+| +Return of 'a
+| +Roll of 'a t F.t
+ + + +
include CCCat.MONAD
+ +
val inj : 'a F.t -> 'a t
\ No newline at end of file diff --git a/0.17/CCCat.MakeFreeFold.html b/0.17/CCCat.MakeFreeFold.html new file mode 100644 index 00000000..b9adcb80 --- /dev/null +++ b/0.17/CCCat.MakeFreeFold.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MakeFreeFold + + + +

Functor CCCat.MakeFreeFold

+ +
module MakeFreeFold (FM : FREE_MONAD)  (Fold : FOLDABLE  with type 'a t = 'a FM.F.t) : FOLDABLE  with type 'a t = 'a FM.t
+ + + + +
Parameters: + + + + + + + +
+FM:FREE_MONAD +
+Fold:FOLDABLE with type 'a t = 'a FM.F.t +
+
+
+ +
type 'a t 
+ + +
val to_seq : 'a t -> 'a CCCat.sequence
\ No newline at end of file diff --git a/0.17/CCCat.TRAVERSE.html b/0.17/CCCat.TRAVERSE.html new file mode 100644 index 00000000..e9223d00 --- /dev/null +++ b/0.17/CCCat.TRAVERSE.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.TRAVERSE + + + +

Module type CCCat.TRAVERSE

+ +
module type TRAVERSE = (M : MONAD) sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
type +'a t 
+ + +
val sequence_m : 'a M.t t -> 'a t M.t
+
val fold_m : ('b -> 'a -> 'b M.t) -> 'b -> 'a t -> 'b M.t
+
val map_m : ('a -> 'b M.t) -> 'a t -> 'b t M.t
\ No newline at end of file diff --git a/0.17/CCCat.WrapMonad.html b/0.17/CCCat.WrapMonad.html new file mode 100644 index 00000000..284ffdbc --- /dev/null +++ b/0.17/CCCat.WrapMonad.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.WrapMonad + + + +

Functor CCCat.WrapMonad

+ +
module WrapMonad (M : MONAD_BARE) : MONAD  with type 'a t = 'a M.t
+Implement the applicative and functor modules from only return and bind
+
+ + + + + +
Parameters: + + + + +
+M:MONAD_BARE +
+
+
+ +
include CCCat.MONAD_BARE
+ +
include CCCat.APPLICATIVE
+ \ No newline at end of file diff --git a/0.17/CCCat.html b/0.17/CCCat.html new file mode 100644 index 00000000..0a216d5b --- /dev/null +++ b/0.17/CCCat.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat + + + +

Module CCCat

+ +
module CCCat: sig .. end
+

Categorical Constructs

+

+ +Attempt to copy some structures from Haskell and the likes. Disclaimer: +I don't know much about category theory, only about type signatures ;).
+

+
+
+

Signatures


+ +
module type MONOID = sig .. end
+
module type FUNCTOR = sig .. end
+
module type APPLICATIVE = sig .. end
+
module type MONAD_BARE = sig .. end
+
module type MONAD = sig .. end
+
module type MONAD_TRANSFORMER = sig .. end
+
type 'a sequence = ('a -> unit) -> unit 
+
+Cheating: use an equivalent of "to List" with a sequence
+
+ + +
module type FOLDABLE = sig .. end
+
module type TRAVERSE = (M : MONAD) sig .. end
+
module type FREE_MONAD = sig .. end
+The free monad is built by nesting applications of a functor F. +
+
+

Some Implementations


+ +
module WrapMonad (M : MONAD_BARE) : MONAD  with type 'a t = 'a M.t
+Implement the applicative and functor modules from only return and bind +
+ +
module MakeFree (F : FUNCTOR) : FREE_MONAD  with module F = F
+
module MakeFreeFold (FM : FREE_MONAD)  (Fold : FOLDABLE  with type 'a t = 'a FM.F.t) : FOLDABLE  with type 'a t = 'a FM.t
\ No newline at end of file diff --git a/0.17/CCChar.html b/0.17/CCChar.html new file mode 100644 index 00000000..e0252cb2 --- /dev/null +++ b/0.17/CCChar.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCChar + + + +

Module CCChar

+ +
module CCChar: sig .. end
+

Utils around char


+Since 0.14
+
+
+ +
type t = char 
+ + +
val equal : t -> t -> bool
+
val compare : t -> t -> int
+
val pp : Buffer.t -> t -> unit
+
val print : Format.formatter -> t -> unit
\ No newline at end of file diff --git a/0.17/CCDeque.html b/0.17/CCDeque.html new file mode 100644 index 00000000..7f90118d --- /dev/null +++ b/0.17/CCDeque.html @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCDeque + + + +

Module CCDeque

+ +
module CCDeque: sig .. end
+

Imperative deque

+

+ + This structure provides fast access to its front and back elements, + with O(1) operations
+

+
+ +
type 'a t 
+
+Contains 'a elements, queue in both ways
+
+ + +
exception Empty
+ +
val create : unit -> 'a t
+New deque
+
+ +
val clear : 'a t -> unit
+Remove all elements
+Since 0.13
+
+ +
val is_empty : 'a t -> bool
+Is the deque empty?
+
+ +
val equal : ?eq:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+equal a b checks whether a and b contain the same sequence of + elements.
+Since 0.13
+
+
eq : comparison function for elements
+ +
val compare : ?cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
+compare a b compares lexicographically a and b
+Since 0.13
+
+
cmp : comparison function for elements
+ +
val length : 'a t -> int
+Number of elements + used to be linear time, now constant time
+
+ +
val push_front : 'a t -> 'a -> unit
+Push value at the front
+
+ +
val push_back : 'a t -> 'a -> unit
+Push value at the back
+
+ +
val peek_front : 'a t -> 'a
+First value, or
+Raises Empty if empty
+
+ +
val peek_back : 'a t -> 'a
+Last value, or
+Raises Empty if empty
+
+ +
val take_back : 'a t -> 'a
+Take last value, or
+Raises Empty if empty
+
+ +
val take_front : 'a t -> 'a
+Take first value, or
+Raises Empty if empty
+
+ +
val append_front : into:'a t -> 'a t -> unit
+append_front ~into q adds all elements of q at the front + of into + O(length q) in time
+Since 0.13
+
+ +
val append_back : into:'a t -> 'a t -> unit
+append_back ~into q adds all elements of q at the back of into. + O(length q) in time
+Since 0.13
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+Iterate on elements
+
+ +
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on elements
+Since 0.13
+
+
+

Conversions


+ +
type 'a gen = unit -> 'a option 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
val of_seq : 'a sequence -> 'a t
+Create a deque from the sequence.
+Since 0.13 optional argument [deque] disappears, use + {!add_seq_back} instead
+
+ +
val to_seq : 'a t -> 'a sequence
+iterate on the elements
+
+ +
val of_gen : 'a gen -> 'a t
+of_gen g makes a deque containing the elements of g
+Since 0.13
+
+ +
val to_gen : 'a t -> 'a gen
+Iterates on elements of the deque
+Since 0.13
+
+ +
val add_seq_front : 'a t -> 'a sequence -> unit
+add_seq_front q seq adds elements of seq into the front of q, + in reverse order. + O(n) in time, where n is the number of elements to add.
+Since 0.13
+
+ +
val add_seq_back : 'a t -> 'a sequence -> unit
+add_seq_back q seq adds elements of seq into the back of q, + in order. + O(n) in time, where n is the number of elements to add.
+Since 0.13
+
+ +
val copy : 'a t -> 'a t
+Fresh copy, O(n) in time
+
+ +
val of_list : 'a list -> 'a t
+Conversion from list, in order
+Since 0.13
+
+ +
val to_list : 'a t -> 'a list
+List of elements, in order. Less efficient than CCDeque.to_rev_list.
+Since 0.13
+
+ +
val to_rev_list : 'a t -> 'a list
+Efficient conversion to list, in reverse order
+Since 0.13
+
+
+

print


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val print : 'a printer -> 'a t printer
+Print the elements
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCError.Infix.html b/0.17/CCError.Infix.html new file mode 100644 index 00000000..bafb8263 --- /dev/null +++ b/0.17/CCError.Infix.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.Infix + + + +

Module CCError.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : ('a, 'err) CCError.t -> ('a -> 'b) -> ('b, 'err) CCError.t
+
val (>>=) : ('a, 'err) CCError.t -> ('a -> ('b, 'err) CCError.t) -> ('b, 'err) CCError.t
+
val (<*>) : ('a -> 'b, 'err) CCError.t -> ('a, 'err) CCError.t -> ('b, 'err) CCError.t
\ No newline at end of file diff --git a/0.17/CCError.MONAD.html b/0.17/CCError.MONAD.html new file mode 100644 index 00000000..25aaa8e4 --- /dev/null +++ b/0.17/CCError.MONAD.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.MONAD + + + +

Module type CCError.MONAD

+ +
module type MONAD = sig .. end
+

Monadic Operations


+
+
+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCError.Traverse.html b/0.17/CCError.Traverse.html new file mode 100644 index 00000000..6264ee7c --- /dev/null +++ b/0.17/CCError.Traverse.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.Traverse + + + +

Functor CCError.Traverse

+ +
module Traverse (M : MONAD) : sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
val sequence_m : ('a M.t, 'err) CCError.t -> ('a, 'err) CCError.t M.t
+
val fold_m : ('b -> 'a -> 'b M.t) -> 'b -> ('a, 'err) CCError.t -> 'b M.t
+
val map_m : ('a -> 'b M.t) -> ('a, 'err) CCError.t -> ('b, 'err) CCError.t M.t
+
val retry_m : int -> (unit -> ('a, 'err) CCError.t M.t) -> ('a, 'err list) CCError.t M.t
\ No newline at end of file diff --git a/0.17/CCError.html b/0.17/CCError.html new file mode 100644 index 00000000..9c6fab23 --- /dev/null +++ b/0.17/CCError.html @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError + + + +

Module CCError

+ +
module CCError: sig .. end
+

Error Monad

+

+ +The variant is polymorphic in the error type
+Since 0.5
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type ('good, 'bad) t = [ `Error of 'bad | `Ok of 'good ] 
+ + +
val return : 'a -> ('a, 'err) t
+Successfully return a value
+
+ +
val fail : 'err -> ('a, 'err) t
+Fail with an error
+
+ +
val of_exn : exn -> ('a, string) t
+of_exn e uses Printexc to print the exception as a string
+
+ +
val of_exn_trace : exn -> ('a, string) t
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +

+ + Remember to call Printexc.record_backtrace true and compile with the + debug flag for this to work.
+Since 0.14
+

+ +
val fail_printf : ('a, Buffer.t, unit, ('a, string) t) Pervasives.format4 -> 'a
+fail_printf format uses format to obtain an error message + and then returns `Error msg
+Since 0.3.3
+
+ +
val map : ('a -> 'b) -> ('a, 'err) t -> ('b, 'err) t
+Map on success
+
+ +
val map_err : ('err1 -> 'err2) -> ('a, 'err1) t -> ('a, 'err2) t
+Map on error.
+Since 0.5
+
+ +
val map2 : ('a -> 'b) ->
('err1 -> 'err2) -> ('a, 'err1) t -> ('b, 'err2) t
+Same as CCError.map, but also with a function that can transform + the error message in case of failure
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Apply the function only in case of `Ok
+
+ +
val get_exn : ('a, 'b) t -> 'a
+Extract the value x from `Ok x, fails otherwise. + You should be careful with this function, and favor other combinators + whenever possible.
+Raises Invalid_argument if the value is an error.
+
+ +
val catch : ('a, 'err) t -> ok:('a -> 'b) -> err:('err -> 'b) -> 'b
+catch e ~ok ~err calls either ok or err depending on + the value of e. + This is useful for code that does not want to depend on the exact + definition of ('a, 'b) t used, for instance once OCaml gets a + standard Result.t type.
+Since 0.12
+
+ +
val flat_map : ('a -> ('b, 'err) t) -> ('a, 'err) t -> ('b, 'err) t
+
val (>|=) : ('a, 'err) t -> ('a -> 'b) -> ('b, 'err) t
+
val (>>=) : ('a, 'err) t -> ('a -> ('b, 'err) t) -> ('b, 'err) t
+
val equal : ?err:'err equal ->
'a equal -> ('a, 'err) t equal
+
val compare : ?err:'err ord -> 'a ord -> ('a, 'err) t ord
+
val fold : success:('a -> 'b) -> failure:('err -> 'b) -> ('a, 'err) t -> 'b
+fold ~success ~failure e opens e and, if e = `Ok x, returns + success x, otherwise e = `Error s and it returns failure s.
+
+
+

Wrappers

+

+ +The functions CCError.guard, CCError.wrap1, CCError.wrap2 and CCError.wrap3 now return +exceptions in case of failure,
+ +

val guard : (unit -> 'a) -> ('a, exn) t
+guard f runs f () and returns its result wrapped in `Ok. If + f () raises some exception e, then it fails with `Error e
+
+ +
val guard_str : (unit -> 'a) -> ('a, string) t
+Same as CCError.guard but uses CCError.of_exn to print the exception. + See CCError.register_printer
+
+ +
val guard_str_trace : (unit -> 'a) -> ('a, string) t
+Same as CCError.guard_str but uses CCError.of_exn_trace instead of CCError.of_exn so + that the stack trace is printed.
+Since 0.14
+
+ +
val wrap1 : ('a -> 'b) -> 'a -> ('b, exn) t
+Same as CCError.guard but gives the function one argument.
+
+ +
val wrap2 : ('a -> 'b -> 'c) -> 'a -> 'b -> ('c, exn) t
+Same as CCError.guard but gives the function two arguments.
+
+ +
val wrap3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> ('d, exn) t
+Same as CCError.guard but gives the function three arguments.
+
+
+

Applicative


+ +
val pure : 'a -> ('a, 'err) t
+Synonym of CCError.return
+
+ +
val (<*>) : ('a -> 'b, 'err) t -> ('a, 'err) t -> ('b, 'err) t
+a <*> b evaluates a and b, and, in case of success, returns + `Ok (a b). Otherwise, it fails, and the error of a is chosen + over the error of b if both fail.
+
+ +
val join : (('a, 'err) t, 'err) t -> ('a, 'err) t
+join t, in case of success, returns `Ok o from `Ok (`Ok o). Otherwise, + it fails with `Error e where e is the unwrapped error of t.
+Since 0.15
+
+ +
val both : ('a, 'err) t -> ('b, 'err) t -> ('a * 'b, 'err) t
+both a b, in case of success, returns `Ok (o, o') with the ok values + of a and b. Otherwise, it fails, and the error of a is chosen over the + error of b if both fail.
+Since 0.15
+
+
+

Infix


+ +
module Infix: sig .. end

+

Collections


+ +
val map_l : ('a -> ('b, 'err) t) -> 'a list -> ('b list, 'err) t
+
val fold_l : ('b -> 'a -> ('b, 'err) t) -> 'b -> 'a list -> ('b, 'err) t
+
val fold_seq : ('b -> 'a -> ('b, 'err) t) ->
'b -> 'a sequence -> ('b, 'err) t

+

Misc


+ +
val choose : ('a, 'err) t list -> ('a, 'err list) t
+choose l selects a member of l that is a `Ok _ value, + or returns `Error l otherwise, where l is the list of errors.
+
+ +
val retry : int -> (unit -> ('a, 'err) t) -> ('a, 'err list) t
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. If f fails n times, retry n f fails + with the list of successive errors.
+
+ +
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
val to_opt : ('a, 'b) t -> 'a option
+
val of_opt : 'a option -> ('a, string) t
+
val to_seq : ('a, 'b) t -> 'a sequence

+

IO


+ +
val pp : 'a printer -> ('a, string) t printer
+
val print : 'a formatter -> ('a, string) t formatter

+

Global Exception Printers

+

+ +One can register exception printers here, so they will be used by CCError.guard, +CCError.wrap1, etc. The printers should succeed (print) on exceptions they +can deal with, and re-raise the exception otherwise. For instance +if I register a printer for Not_found, it could look like: +

+ +

CCError.register_printer
+    (fun buf exn -> match exn with
+      | Not_found -> Buffer.add_string buf "Not_found"
+      | _ -> raise exn
+    );;
+
+This way a printer that doesn't know how to deal with an exception will +let other printers do it.
+ +
val register_printer : exn printer -> unit
\ No newline at end of file diff --git a/0.17/CCFQueue.html b/0.17/CCFQueue.html new file mode 100644 index 00000000..12f89580 --- /dev/null +++ b/0.17/CCFQueue.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFQueue + + + +

Module CCFQueue

+ +
module CCFQueue: sig .. end
+

Functional queues


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type +'a t 
+
+Queue containing elements of type 'a
+
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : 'a -> 'a t
+
val doubleton : 'a -> 'a -> 'a t
+
exception Empty
+ +
val cons : 'a -> 'a t -> 'a t
+Push element at the front of the queue
+
+ +
val snoc : 'a t -> 'a -> 'a t
+Push element at the end of the queue
+
+ +
val take_front : 'a t -> ('a * 'a t) option
+Get and remove the first element
+
+ +
val take_front_exn : 'a t -> 'a * 'a t
+Same as CCFQueue.take_front, but fails on empty queues.
+Raises Empty if the queue is empty
+
+ +
val take_front_l : int -> 'a t -> 'a list * 'a t
+take_front_l n q takes at most n elements from the front + of q, and returns them wrapped in a list
+
+ +
val take_front_while : ('a -> bool) -> 'a t -> 'a list * 'a t
+
val take_back : 'a t -> ('a t * 'a) option
+Take last element
+
+ +
val take_back_exn : 'a t -> 'a t * 'a
+
val take_back_l : int -> 'a t -> 'a t * 'a list
+take_back_l n q removes and returns the last n elements of q. The + elements are in the order of the queue, that is, the head of the returned + list is the first element to appear via CCFQueue.take_front. + take_back_l 2 (of_list [1;2;3;4]) = of_list [1;2], [3;4]
+
+ +
val take_back_while : ('a -> bool) -> 'a t -> 'a t * 'a list

+

Individual extraction


+ +
val first : 'a t -> 'a option
+First element of the queue
+
+ +
val last : 'a t -> 'a option
+Last element of the queue
+
+ +
val first_exn : 'a t -> 'a
+Same as CCFQueue.first but
+Raises Empty if the queue is empty
+
+ +
val last_exn : 'a t -> 'a
+
val nth : int -> 'a t -> 'a option
+Return the i-th element of the queue in logarithmic time
+
+ +
val nth_exn : int -> 'a t -> 'a
+Unsafe version of CCFQueue.nth
+Raises Not_found if the index is wrong
+
+ +
val tail : 'a t -> 'a t
+Queue deprived of its first element. Does nothing on empty queues
+
+ +
val init : 'a t -> 'a t
+Queue deprived of its last element. Does nothing on empty queues
+
+
+

Global Operations


+ +
val append : 'a t -> 'a t -> 'a t
+Append two queues. Elements from the second one come + after elements of the first one. + Linear in the size of the second queue.
+
+ +
val rev : 'a t -> 'a t
+Reverse the queue, O(n) complexity
+Since 0.10
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Synonym to CCFQueue.map
+
+ +
val size : 'a t -> int
+Number of elements in the queue (constant time)
+
+ +
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+
val iter : ('a -> unit) -> 'a t -> unit
+
val equal : 'a equal -> 'a t equal

+

Conversions


+ +
val of_list : 'a list -> 'a t
+
val to_list : 'a t -> 'a list
+
val add_seq_front : 'a sequence -> 'a t -> 'a t
+
val add_seq_back : 'a t -> 'a sequence -> 'a t
+
val to_seq : 'a t -> 'a sequence
+
val of_seq : 'a sequence -> 'a t
+
val to_klist : 'a t -> 'a klist
+
val of_klist : 'a klist -> 'a t
+
val (--) : int -> int -> int t
+a -- b is the integer range from a to b, both included.
+Since 0.10
+
+ +
val (--^) : int -> int -> int t
+a -- b is the integer range from a to b, where b is excluded.
+Since 0.17
+
+ +
val print : 'a printer -> 'a t printer
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCFlatHashtbl.HASHABLE.html b/0.17/CCFlatHashtbl.HASHABLE.html new file mode 100644 index 00000000..0f4eebd6 --- /dev/null +++ b/0.17/CCFlatHashtbl.HASHABLE.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.HASHABLE + + + +

Module type CCFlatHashtbl.HASHABLE

+ +
module type HASHABLE = sig .. end

+ +
type t 
+ + +
val equal : t -> t -> bool
+
val hash : t -> int
\ No newline at end of file diff --git a/0.17/CCFlatHashtbl.Make.html b/0.17/CCFlatHashtbl.Make.html new file mode 100644 index 00000000..b687f00b --- /dev/null +++ b/0.17/CCFlatHashtbl.Make.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.Make + + + +

Functor CCFlatHashtbl.Make

+ +
module Make (X : HASHABLE) : S  with type key = X.t
+ + + + +
Parameters: + + + + +
+X:HASHABLE +
+
+
+ +
type key 
+ + +
type 'a t 
+ + +
val create : int -> 'a t
+Create a new table of the given initial capacity
+
+ +
val mem : 'a t -> key -> bool
+mem tbl k returns true iff k is mapped to some value + in tbl
+
+ +
val find : 'a t -> key -> 'a option
+
val find_exn : 'a t -> key -> 'a
+
val get : key -> 'a t -> 'a option
+get k tbl recovers the value for k in tbl, or + returns None if k doesn't belong
+
+ +
val get_exn : key -> 'a t -> 'a
+
val add : 'a t -> key -> 'a -> unit
+add tbl k v adds k -> v to tbl, possibly replacing the old + value associated with k.
+
+ +
val remove : 'a t -> key -> unit
+Remove binding
+
+ +
val size : 'a t -> int
+Number of bindings
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val to_list : 'a t -> (key * 'a) list
+
val of_seq : (key * 'a) CCFlatHashtbl.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCFlatHashtbl.sequence
+
val keys : 'a t -> key CCFlatHashtbl.sequence
+
val values : 'a t -> 'a CCFlatHashtbl.sequence
\ No newline at end of file diff --git a/0.17/CCFlatHashtbl.S.html b/0.17/CCFlatHashtbl.S.html new file mode 100644 index 00000000..0a62df92 --- /dev/null +++ b/0.17/CCFlatHashtbl.S.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.S + + + +

Module type CCFlatHashtbl.S

+ +
module type S = sig .. end

+ +
type key 
+ + +
type 'a t 
+ + +
val create : int -> 'a t
+Create a new table of the given initial capacity
+
+ +
val mem : 'a t -> key -> bool
+mem tbl k returns true iff k is mapped to some value + in tbl
+
+ +
val find : 'a t -> key -> 'a option
+
val find_exn : 'a t -> key -> 'a
+
val get : key -> 'a t -> 'a option
+get k tbl recovers the value for k in tbl, or + returns None if k doesn't belong
+
+ +
val get_exn : key -> 'a t -> 'a
+
val add : 'a t -> key -> 'a -> unit
+add tbl k v adds k -> v to tbl, possibly replacing the old + value associated with k.
+
+ +
val remove : 'a t -> key -> unit
+Remove binding
+
+ +
val size : 'a t -> int
+Number of bindings
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val to_list : 'a t -> (key * 'a) list
+
val of_seq : (key * 'a) CCFlatHashtbl.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCFlatHashtbl.sequence
+
val keys : 'a t -> key CCFlatHashtbl.sequence
+
val values : 'a t -> 'a CCFlatHashtbl.sequence
\ No newline at end of file diff --git a/0.17/CCFlatHashtbl.html b/0.17/CCFlatHashtbl.html new file mode 100644 index 00000000..9f8d715d --- /dev/null +++ b/0.17/CCFlatHashtbl.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl + + + +

Module CCFlatHashtbl

+ +
module CCFlatHashtbl: sig .. end
+

Open-Addressing Hash-table

+

+ +This module was previously named CCHashtbl, but the name is now used for +an extension of the standard library's hashtables.
+Since 0.4
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
module type S = sig .. end
+
module type HASHABLE = sig .. end
+
module Make (X : HASHABLE) : S  with type key = X.t
\ No newline at end of file diff --git a/0.17/CCFloat.Infix.html b/0.17/CCFloat.Infix.html new file mode 100644 index 00000000..5646103d --- /dev/null +++ b/0.17/CCFloat.Infix.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFloat.Infix + + + +

Module CCFloat.Infix

+ +
module Infix: sig .. end
+

Infix Operators


+Since 0.17
+
+
+ +
val (=) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ +
val (<>) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ +
val (<) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ +
val (>) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ +
val (<=) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ +
val (>=) : CCFloat.t -> CCFloat.t -> bool
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCFloat.html b/0.17/CCFloat.html new file mode 100644 index 00000000..0c62571d --- /dev/null +++ b/0.17/CCFloat.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFloat + + + +

Module CCFloat

+ +
module CCFloat: sig .. end
+

Basic Float functions


+Since 0.6.1
+
+
+ +
type t = float 
+ + +
type fpclass = Pervasives.fpclass = 
+ + + + + + + + + + + + + + + + + + + + + + + + +
+| +FP_normal
+| +FP_subnormal
+| +FP_zero
+| +FP_infinite
+| +FP_nan
+ + + +
val nan : t
+
val max_value : t
+
val min_value : t
+
val max_finite_value : t
+
val epsilon : float
+
val is_nan : t -> bool
+
val add : t -> t -> t
+
val sub : t -> t -> t
+
val neg : t -> t
+
val abs : t -> t
+
val scale : t -> t -> t
+
val min : t -> t -> t
+
val max : t -> t -> t
+
val equal : t -> t -> bool
+
val compare : float -> float -> int
+
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val pp : t printer
+
val print : t formatter
+
val hash : t -> int
+
val random : t -> t random_gen
+
val random_small : t random_gen
+
val random_range : t -> t -> t random_gen
+
val fsign : t -> float
+fsign x is one of -1., -0., +0., +1., or nan if x is NaN.
+Since 0.7
+
+ +
exception TrapNaN of string
+ +
val sign_exn : t -> int
+sign_exn x will return the sign of x as 1, 0 or -1, or raise an + exception TrapNaN if x is a NaN. + Note that infinities have defined signs in OCaml.
+Since 0.7
+
+ +
val to_int : t -> int
+
val of_int : int -> t
+
val to_string : t -> string
+
val of_string : string -> t
+
val equal_precision : epsilon:t -> t -> t -> bool
+Equality with allowed error up to a non negative epsilon value
+
+ +
val classify : float -> fpclass
+
module Infix: sig .. end
+Infix Operators +
+ +
include CCFloat.Infix
+ \ No newline at end of file diff --git a/0.17/CCFormat.html b/0.17/CCFormat.html new file mode 100644 index 00000000..2dd50429 --- /dev/null +++ b/0.17/CCFormat.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFormat + + + +

Module CCFormat

+ +
module CCFormat: sig .. end
+

Helpers for Format


+Since 0.8
+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type t = Format.formatter 
+ + +
type 'a printer = t -> 'a -> unit 
+ +
+

Combinators


+ +
val silent : 'a printer
+Prints nothing
+
+ +
val unit : unit printer
+
val int : int printer
+
val string : string printer
+
val bool : bool printer
+
val float3 : float printer
+
val float : float printer
+
val char : char printer
+Since 0.14
+
+ +
val int32 : int32 printer
+Since 0.14
+
+ +
val int64 : int64 printer
+Since 0.14
+
+ +
val nativeint : nativeint printer
+Since 0.14
+
+ +
val string_quoted : string printer
+Similar to CCString.print.
+Since 0.14
+
+ +
val list : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> 'a list printer
+
val array : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> 'a array printer
+
val arrayi : ?start:string ->
?stop:string ->
?sep:string -> (int * 'a) printer -> 'a array printer
+
val seq : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> 'a sequence printer
+
val opt : 'a printer -> 'a option printer

+In the tuple printers, the sep argument is only available
+ +
val pair : ?sep:string ->
'a printer -> 'b printer -> ('a * 'b) printer
+
val triple : ?sep:string ->
'a printer ->
'b printer -> 'c printer -> ('a * 'b * 'c) printer
+
val quad : ?sep:string ->
'a printer ->
'b printer ->
'c printer ->
'd printer -> ('a * 'b * 'c * 'd) printer
+
val within : string -> string -> 'a printer -> 'a printer
+within a b p wraps p inside the strings a and b. Convenient, + for instances, for brackets, parenthesis, quotes, etc.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'b printer -> 'a printer
+
val vbox : ?i:int -> 'a printer -> 'a printer
+Wrap the printer in a vertical box
+Since 0.16
+
+
i : level of indentation within the box (default 0)
+ +
val hvbox : ?i:int -> 'a printer -> 'a printer
+Wrap the printer in a horizontal/vertical box
+Since 0.16
+
+
i : level of indentation within the box (default 0)
+ +
val hovbox : ?i:int -> 'a printer -> 'a printer
+Wrap the printer in a horizontal or vertical box
+Since 0.16
+
+
i : level of indentation within the box (default 0)
+ +
val hbox : 'a printer -> 'a printer
+Wrap the printer in an horizontal box
+Since 0.16
+
+
+

ANSI codes

+

+ + Use ANSI escape codes https://en.wikipedia.org/wiki/ANSI_escape_code + to put some colors on the terminal. +

+ + This uses tags in format strings to specify the style. Current styles + are the following: +

+ +

+ +

+ + Example: +

+ +

    set_color_default true;;
+
+    Format.printf
+      "what is your @{<White>favorite color@}? @{<blue>blue@}! No, @{<red>red@}! Ahhhhhhh@.";;
+   
+

+ + status: experimental
+ +

val set_color_tag_handling : t -> unit
+adds functions to support color tags to the given formatter.
+Since 0.15
+
+ +
val set_color_default : bool -> unit
+set_color_default b enables color handling on the standard formatters + (stdout, stderr) if b = true as well as on CCFormat.sprintf formatters; + it disables the color handling if b = false.
+
+ +
val with_color : string -> 'a printer -> 'a printer
+with_color "Blue" pp behaves like the printer pp, but with the given + style. + status: experimental
+Since 0.16
+
+ +
val with_colorf : string -> t -> ('a, t, unit, unit) Pervasives.format4 -> 'a
+with_colorf "Blue" out "%s %d" "yolo" 42 will behave like Format.fprintf, + but wrapping the content with the given style + status: experimental
+Since 0.16
+
+
+

IO


+ +
val output : t -> 'a printer -> 'a -> unit
+
val to_string : 'a printer -> 'a -> string
+
val stdout : t
+
val stderr : t
+
val sprintf : ('a, t, unit, string) Pervasives.format4 -> 'a
+Print into a string any format string that would usually be compatible + with CCFormat.fprintf. Similar to Format.asprintf.
+
+ +
val sprintf_no_color : ('a, t, unit, string) Pervasives.format4 -> 'a
+Similar to CCFormat.sprintf but never prints colors
+Since 0.16
+
+ +
val fprintf : t -> ('a, t, unit) Pervasives.format -> 'a
+Alias to Format.fprintf
+Since 0.14
+
+ +
val ksprintf : f:(string -> 'b) -> ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
+ksprintf fmt ~f formats using fmt, in a way similar to CCFormat.sprintf, + and then calls f on the resulting string.
+Since 0.14
+
+ +
val to_file : string -> ('a, t, unit, unit) Pervasives.format4 -> 'a
+Print to the given file
+
+ \ No newline at end of file diff --git a/0.17/CCFun.Monad.html b/0.17/CCFun.Monad.html new file mode 100644 index 00000000..e0669543 --- /dev/null +++ b/0.17/CCFun.Monad.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFun.Monad + + + +

Functor CCFun.Monad

+ +
module Monad (X : sig
+
type t 
+ +
end) : sig .. end
+ + + + +
Parameters: + + + + +
+X:sig type t end +
+
+
+ +
type 'a t = X.t -> 'a 
+ + +
val return : 'a -> 'a t
+
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCFun.html b/0.17/CCFun.html new file mode 100644 index 00000000..00221c00 --- /dev/null +++ b/0.17/CCFun.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFun + + + +

Module CCFun

+ +
module CCFun: sig .. end
+

Basic Functions


+
+
+ +
val (|>) : 'a -> ('a -> 'b) -> 'b
+Pipeline. x |> f is the same as f x.
+
+ +
val compose : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
+Composition
+
+ +
val compose_binop : ('a -> 'b) -> ('b -> 'b -> 'c) -> 'a -> 'a -> 'c
+compose_binop f g is fun x y -> g (f x) (f y) + Example (partial order): + List.sort (compose_binop fst CCInt.compare) [1, true; 2, false; 1, false]
+Since 0.6
+
+ +
val (%>) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
+Alias to compose
+
+ +
val (@@) : ('a -> 'b) -> 'a -> 'b
+f @@ x is the same as f x, but right-associative.
+Since 0.5
+
+ +
val id : 'a -> 'a
+Identity function
+
+ +
val const : 'a -> 'b -> 'a
+const x y = x for any y
+
+ +
val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
+Flip arguments
+
+ +
val curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
+
val uncurry : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+
val tap : ('a -> 'b) -> 'a -> 'a
+tap f x evaluates f x, discards it, then returns x. Useful + in a pipeline, for instance: +
CCArray.(1 -- 10)
+      |> tap CCArray.shuffle
+      |> tap CCArray.sort Pervasives.compare
+    

+
+ +
val (%) : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
+Mathematical composition
+
+ +
val lexicographic : ('a -> 'a -> int) -> ('a -> 'a -> int) -> 'a -> 'a -> int
+Lexicographic combination of comparison functions
+
+ +
val finally : h:(unit -> 'b) -> f:(unit -> 'a) -> 'a
+finally h f calls f () and returns its result. If it raises, the + same exception is raised; in any case, h () is called after + f () terminates.
+
+ +
val finally1 : h:(unit -> 'c) -> ('a -> 'b) -> 'a -> 'b
+finally1 ~h f x is the same as f x, but after the computation, + h () is called whether f x rose an exception or not.
+Since 0.16
+
+ +
val finally2 : h:(unit -> 'd) -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
+finally2 ~h f x y is the same as f x y, but after the computation, + h () is called whether f x y rose an exception or not.
+Since 0.16
+
+
+

Monad

+

+ +Functions with a fixed domain are monads in their codomain
+ +

module Monad (X : sig
+
type t 
+ +
end) : sig .. end
\ No newline at end of file diff --git a/0.17/CCGraph.Dot.html b/0.17/CCGraph.Dot.html new file mode 100644 index 00000000..cf6a215a --- /dev/null +++ b/0.17/CCGraph.Dot.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Dot + + + +

Module CCGraph.Dot

+ +
module Dot: sig .. end

+ +
type attribute = [ `Color of string
| `Label of string
| `Other of string * string
| `Shape of string
| `Style of string
| `Weight of int ]
+
+Dot attribute
+
+ + +
type vertex_state 
+
+Hidden state associated to a vertex
+
+ + +
val pp : ?tbl:('v, vertex_state) CCGraph.table ->
?eq:('v -> 'v -> bool) ->
?attrs_v:('v -> attribute list) ->
?attrs_e:('e -> attribute list) ->
?name:string -> graph:('v, 'e) CCGraph.t -> Format.formatter -> 'v -> unit
+Print the graph, starting from given vertex, on the formatter
+
+
attrs_v : attributes for vertices
+
attrs_e : attributes for edges
+
name : name of the graph
+ +
val pp_seq : ?tbl:('v, vertex_state) CCGraph.table ->
?eq:('v -> 'v -> bool) ->
?attrs_v:('v -> attribute list) ->
?attrs_e:('e -> attribute list) ->
?name:string ->
graph:('v, 'e) CCGraph.t -> Format.formatter -> 'v CCGraph.sequence -> unit
+
val with_out : string -> (Format.formatter -> 'a) -> 'a
+Shortcut to open a file and write to it
+
+ \ No newline at end of file diff --git a/0.17/CCGraph.LazyTree.html b/0.17/CCGraph.LazyTree.html new file mode 100644 index 00000000..2961dafc --- /dev/null +++ b/0.17/CCGraph.LazyTree.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.LazyTree + + + +

Module CCGraph.LazyTree

+ +
module LazyTree: sig .. end

+ +
type ('v, 'e) t = 
+ + + + +
+| +Vertex of 'v * ('e * ('v, 'e) t) list Lazy.t
+ + + +
val map_v : ('a -> 'b) -> ('a, 'e) t -> ('b, 'e) t
+
val fold_v : ('acc -> 'v -> 'acc) -> 'acc -> ('v, 'a) t -> 'acc
\ No newline at end of file diff --git a/0.17/CCGraph.MAP.html b/0.17/CCGraph.MAP.html new file mode 100644 index 00000000..3e2da3dd --- /dev/null +++ b/0.17/CCGraph.MAP.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.MAP + + + +

Module type CCGraph.MAP

+ +
module type MAP = sig .. end

+ +
type vertex 
+ + +
type t 
+ + +
val as_graph : t ->
(vertex, vertex * vertex) CCGraph.graph
+Graph view of the map
+
+ +
val empty : t
+
val add_edge : vertex -> vertex -> t -> t
+
val remove_edge : vertex -> vertex -> t -> t
+
val add : vertex -> t -> t
+Add a vertex, possibly with no outgoing edge
+
+ +
val remove : vertex -> t -> t
+Remove the vertex and all its outgoing edges. + Edges that point to the vertex are NOT removed, they must be + manually removed with CCGraph.MAP.remove_edge
+
+ +
val union : t -> t -> t
+
val vertices : t -> vertex CCGraph.sequence
+
val vertices_l : t -> vertex list
+
val of_list : (vertex * vertex) list -> t
+
val add_list : (vertex * vertex) list ->
t -> t
+
val to_list : t -> (vertex * vertex) list
+
val of_seq : (vertex * vertex) CCGraph.sequence -> t
+
val add_seq : (vertex * vertex) CCGraph.sequence ->
t -> t
+
val to_seq : t -> (vertex * vertex) CCGraph.sequence
\ No newline at end of file diff --git a/0.17/CCGraph.Map.html b/0.17/CCGraph.Map.html new file mode 100644 index 00000000..10263643 --- /dev/null +++ b/0.17/CCGraph.Map.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Map + + + +

Functor CCGraph.Map

+ +
module Map (O : Map.OrderedType) : MAP  with type vertex = O.t
+ + + + +
Parameters: + + + + +
+O:Map.OrderedType +
+
+
+ +
type vertex 
+ + +
type t 
+ + +
val as_graph : t ->
(vertex, vertex * vertex) CCGraph.graph
+Graph view of the map
+
+ +
val empty : t
+
val add_edge : vertex -> vertex -> t -> t
+
val remove_edge : vertex -> vertex -> t -> t
+
val add : vertex -> t -> t
+Add a vertex, possibly with no outgoing edge
+
+ +
val remove : vertex -> t -> t
+Remove the vertex and all its outgoing edges. + Edges that point to the vertex are NOT removed, they must be + manually removed with CCGraph.MAP.remove_edge
+
+ +
val union : t -> t -> t
+
val vertices : t -> vertex CCGraph.sequence
+
val vertices_l : t -> vertex list
+
val of_list : (vertex * vertex) list -> t
+
val add_list : (vertex * vertex) list ->
t -> t
+
val to_list : t -> (vertex * vertex) list
+
val of_seq : (vertex * vertex) CCGraph.sequence -> t
+
val add_seq : (vertex * vertex) CCGraph.sequence ->
t -> t
+
val to_seq : t -> (vertex * vertex) CCGraph.sequence
\ No newline at end of file diff --git a/0.17/CCGraph.Seq.html b/0.17/CCGraph.Seq.html new file mode 100644 index 00000000..96365dbe --- /dev/null +++ b/0.17/CCGraph.Seq.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Seq + + + +

Module CCGraph.Seq

+ +
module Seq: sig .. end

+ +
type 'a t = 'a CCGraph.sequence 
+ + +
val return : 'a -> 'a CCGraph.sequence
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+
val map : ('a -> 'b) -> 'a t -> 'b t
+
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+
val iter : ('a -> unit) -> 'a t -> unit
+
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+
val to_list : 'a t -> 'a list
\ No newline at end of file diff --git a/0.17/CCGraph.Traverse.Event.html b/0.17/CCGraph.Traverse.Event.html new file mode 100644 index 00000000..0b88e6bb --- /dev/null +++ b/0.17/CCGraph.Traverse.Event.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Traverse.Event + + + +

Module CCGraph.Traverse.Event

+ +
module Event: sig .. end
+

More detailed interface


+
+
+ +
type edge_kind = [ `Back | `Cross | `Forward ] 
+ + +
type ('v, 'e) t = [ `Edge of 'e * edge_kind
| `Enter of 'v * int * 'e CCGraph.Traverse.path
| `Exit of 'v ]
+
+A traversal is a sequence of such events
+
+ + +
val get_vertex : ('v, 'e) t -> ('v * [ `Enter | `Exit ]) option
+
val get_enter : ('v, 'e) t -> 'v option
+
val get_exit : ('v, 'e) t -> 'v option
+
val get_edge : ('v, 'e) t -> 'e option
+
val get_edge_kind : ('v, 'e) t ->
('e * edge_kind) option
+
val dfs : ?tbl:'v CCGraph.set ->
?eq:('v -> 'v -> bool) ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) t CCGraph.sequence_once
+Full version of DFS.
+
+
eq : equality predicate on vertices
+ +
val dfs_tag : ?eq:('v -> 'v -> bool) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.graph ->
'v CCGraph.sequence ->
('v, 'e) t CCGraph.sequence_once
+Full version of DFS using integer tags
+
+
eq : equality predicate on vertices
+ \ No newline at end of file diff --git a/0.17/CCGraph.Traverse.html b/0.17/CCGraph.Traverse.html new file mode 100644 index 00000000..0e62f15b --- /dev/null +++ b/0.17/CCGraph.Traverse.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Traverse + + + +

Module CCGraph.Traverse

+ +
module Traverse: sig .. end

+ +
type 'e path = 'e list 
+ + +
val generic : ?tbl:'v CCGraph.set ->
bag:'v CCGraph.bag ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+Traversal of the given graph, starting from a sequence + of vertices, using the given bag to choose the next vertex to + explore. Each vertex is visited at most once.
+
+ +
val generic_tag : tags:'v CCGraph.tag_set ->
bag:'v CCGraph.bag ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+One-shot traversal of the graph using a tag set and the given bag
+
+ +
val dfs : ?tbl:'v CCGraph.set ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+
val dfs_tag : tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+
val bfs : ?tbl:'v CCGraph.set ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+
val bfs_tag : tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t -> 'v CCGraph.sequence -> 'v CCGraph.sequence_once
+
val dijkstra : ?tbl:'v CCGraph.set ->
?dist:('e -> int) ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence ->
('v * int * 'e path) CCGraph.sequence_once
+Dijkstra algorithm, traverses a graph in increasing distance order. + Yields each vertex paired with its distance to the set of initial vertices + (the smallest distance needed to reach the node from the initial vertices)
+
+
dist : distance from origin of the edge to destination, + must be strictly positive. Default is 1 for every edge
+ +
val dijkstra_tag : ?dist:('e -> int) ->
tags:'v CCGraph.tag_set ->
graph:('v, 'e) CCGraph.t ->
'v CCGraph.sequence ->
('v * int * 'e path) CCGraph.sequence_once
+
module Event: sig .. end
+More detailed interface +
+ \ No newline at end of file diff --git a/0.17/CCGraph.html b/0.17/CCGraph.html new file mode 100644 index 00000000..46fff2b4 --- /dev/null +++ b/0.17/CCGraph.html @@ -0,0 +1,451 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph + + + +

Module CCGraph

+ +
module CCGraph: sig .. end
+

Simple Graph Interface

+

+ + A collections of algorithms on (mostly read-only) graph structures. + The user provides her own graph structure as a ('v, 'e) CCGraph.t, + where 'v is the type of vertices and 'e the type of edges + (for instance, 'e = ('v * 'v) is perfectly fine in many cases). +

+ + Such a ('v, 'e) CCGraph.t structure is a record containing + three functions: two relate edges to their origin and destination, + and one maps vertices to their outgoing edges. + This abstract notion of graph makes it possible to run the algorithms + on any user-specific type that happens to have a graph structure. +

+ + Many graph algorithms here take a sequence of vertices as input. + If the user only has a single vertex (e.g., for a topological sort + from a given vertex), she can use Seq.return x to build a sequence + of one element. +

+ + status: unstable
+Since 0.12
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+
+A sequence of items of type 'a, possibly infinite
+
+ + +
type 'a sequence_once = 'a sequence 
+
+Sequence that should be used only once
+
+ + +
exception Sequence_once
+
+Raised when a sequence meant to be used once is used several times
+
+ +
module Seq: sig .. end

+

Interfaces for graphs


+ +
type ('v, 'e) t = {
+ + + + + + + + + + + + + + +
+   +children : 'v -> 'e sequence;
+   +origin : 'e -> 'v;
+   +dest : 'e -> 'v;
+} + +
+Directed graph with vertices of type 'v and edges of type e'
+
+ + +
type ('v, 'e) graph = ('v, 'e) t 
+ + +
val make : origin:('e -> 'v) ->
dest:('e -> 'v) -> ('v -> 'e sequence) -> ('v, 'e) t
+Make a graph by providing its fields
+Since 0.16
+
+ +
val make_labelled_tuple : ('v -> ('a * 'v) sequence) -> ('v, 'v * 'a * 'v) t
+Make a graph with edges being triples (origin,label,dest)
+Since 0.16
+
+ +
val make_tuple : ('v -> 'v sequence) -> ('v, 'v * 'v) t
+Make a graph with edges being pairs (origin,dest)
+Since 0.16
+
+ +
type 'v tag_set = {
+ + + + + + + + + +
+   +get_tag : 'v -> bool;
+   +set_tag : 'v -> unit;(*
+Set tag for the given element
+
+
*)
+} + +
+Mutable tags from values of type 'v to tags of type bool
+
+ + +
type ('k, 'a) table = {
+ + + + + + + + + + + + + + +
+   +mem : 'k -> bool;
+   +find : 'k -> 'a;(*
+Raises Not_found if element not added before
+
+
*)
+   +add : 'k -> 'a -> unit;(*
+Erases previous binding
+
+
*)
+} + +
+Mutable table with keys 'k and values 'a
+
+ + +
type 'a set = ('a, unit) table 
+
+Mutable set
+
+ + +
val mk_table : ?eq:('k -> 'k -> bool) -> ?hash:('k -> int) -> int -> ('k, 'a) table
+Default implementation for CCGraph.table: a Hashtbl.t
+
+ +
val mk_map : ?cmp:('k -> 'k -> int) -> unit -> ('k, 'a) table
+Use a Map.S underneath
+
+
+

Bags of vertices


+ +
type 'a bag = {
+ + + + + + + + + + + + + + +
+   +push : 'a -> unit;
+   +is_empty : unit -> bool;
+   +pop : unit -> 'a;(*
+raises some exception is empty
+
+
*)
+} + +
+Bag of elements of type 'a
+
+ + +
val mk_queue : unit -> 'a bag
+
val mk_stack : unit -> 'a bag
+
val mk_heap : leq:('a -> 'a -> bool) -> 'a bag
+mk_heap ~leq makes a priority queue where leq x y = true means that + x is smaller than y and should be prioritary
+
+
+

Traversals


+ +
module Traverse: sig .. end

+

Topological Sort


+ +
exception Has_cycle
+ +
val topo_sort : ?eq:('v -> 'v -> bool) ->
?rev:bool ->
?tbl:'v set ->
graph:('v, 'e) t -> 'v sequence -> 'v list
+topo_sort ~graph seq returns a list of vertices l where each + element of l is reachable from seq. + The list is sorted in a way such that if v -> v' in the graph, then + v comes before v' in the list (i.e. has a smaller index). + Basically v -> v' means that v is smaller than v' + see wikipedia
+Raises Has_cycle if the graph is not a DAG
+
+
eq : equality predicate on vertices (default (=))
+
rev : if true, the dependency relation is inverted (v -> v' means + v' occurs before v)
+ +
val topo_sort_tag : ?eq:('v -> 'v -> bool) ->
?rev:bool ->
tags:'v tag_set ->
graph:('v, 'e) t -> 'v sequence -> 'v list
+Same as CCGraph.topo_sort but uses an explicit tag set
+
+
+

Lazy Spanning Tree


+ +
module LazyTree: sig .. end
+
val spanning_tree : ?tbl:'v set ->
graph:('v, 'e) t -> 'v -> ('v, 'e) LazyTree.t
+spanning_tree ~graph v computes a lazy spanning tree that has v + as a root. The table tbl is used for the memoization part
+
+ +
val spanning_tree_tag : tags:'v tag_set ->
graph:('v, 'e) t -> 'v -> ('v, 'e) LazyTree.t

+

Strongly Connected Components


+ +
type 'v scc_state 
+
+Hidden state for CCGraph.scc
+
+ + +
val scc : ?tbl:('v, 'v scc_state) table ->
graph:('v, 'e) t ->
'v sequence -> 'v list sequence_once
+Strongly connected components reachable from the given vertices. + Each component is a list of vertices that are all mutually reachable + in the graph. + The components are explored in a topological order (if C1 and C2 are + components, and C1 points to C2, then C2 will be yielded before C1). + Uses Tarjan's algorithm
+Raises Sequence_once if the result is iterated on more than once.
+
+
tbl : table used to map nodes to some hidden state
+
+

Pretty printing in the DOT (graphviz) format

+

+ + Example (print divisors from 42): +

+ +

      let open CCGraph in
+      let open Dot in
+      with_out "/tmp/truc.dot"
+        (fun out ->
+           pp ~attrs_v:(fun i -> [`Label (string_of_int i)]) ~graph:divisors_graph out 42
+        )
+    

+ +
module Dot: sig .. end

+

Mutable Graph


+ +
type ('v, 'e) mut_graph = <
+ + + + + + + + + + + + + + +
+   +add_edge : 'e -> unit;
+   +graph : ('v, 'e) t;
+   +remove : 'v -> unit;
+> + + + +
val mk_mut_tbl : ?eq:('v -> 'v -> bool) ->
?hash:('v -> int) -> int -> ('v, 'v * 'a * 'v) mut_graph
+Make a new mutable graph from a Hashtbl. Edges are labelled with type 'a
+
+
+

Immutable Graph

+

+ + A classic implementation of a graph structure on totally ordered vertices, + with unlabelled edges. The graph allows to add and remove edges and vertices, + and to iterate on edges and vertices.
+ +

module type MAP = sig .. end
+
module Map (O : Map.OrderedType) : MAP  with type vertex = O.t

+

Misc


+ +
val of_list : ?eq:('v -> 'v -> bool) -> ('v * 'v) list -> ('v, 'v * 'v) t
+of_list l makes a graph from a list of pairs of vertices. + Each pair (a,b) is an edge from a to b.
+
+
eq : equality used to compare vertices
+ +
val of_hashtbl : ('v, 'v list) Hashtbl.t -> ('v, 'v * 'v) t
+of_hashtbl tbl makes a graph from a hashtable that maps vertices + to lists of children
+
+ +
val of_fun : ('v -> 'v list) -> ('v, 'v * 'v) t
+of_fun f makes a graph out of a function that maps a vertex to + the list of its children. The function is assumed to be deterministic.
+
+ +
val divisors_graph : (int, int * int) t
+n points to all its strict divisors
+
+ \ No newline at end of file diff --git a/0.17/CCHash.HASH.html b/0.17/CCHash.HASH.html new file mode 100644 index 00000000..759cad08 --- /dev/null +++ b/0.17/CCHash.HASH.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.HASH + + + +

Module type CCHash.HASH

+ +
module type HASH = sig .. end

+ +
type state 
+ + +
val int : int -> state -> state
+
val bool : bool -> state -> state
+
val char : char -> state -> state
+
val int32 : int32 -> state -> state
+
val int64 : int64 -> state -> state
+
val nativeint : nativeint -> state -> state
+
val slice : string -> int -> int -> state -> state
+slice s i len state hashes the slice i, ... i+len-1 of s + into state
+
+ \ No newline at end of file diff --git a/0.17/CCHash.Make.html b/0.17/CCHash.Make.html new file mode 100644 index 00000000..2e263a0e --- /dev/null +++ b/0.17/CCHash.Make.html @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.Make + + + +

Functor CCHash.Make

+ +
module Make (H : HASH) : S  with type state = H.state
+ + + + +
Parameters: + + + + +
+H:HASH +
+
+
+ +
include CCHash.HASH
+ +
type 'a hash_fun = 'a -> CCHash.state -> CCHash.state 
+ + +
val string : string hash_fun
+
val list : 'a hash_fun -> 'a list hash_fun
+
val array : 'a hash_fun -> 'a array hash_fun
+
val opt : 'a hash_fun -> 'a option hash_fun
+
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+
val triple : 'a hash_fun ->
'b hash_fun ->
'c hash_fun -> ('a * 'b * 'c) hash_fun
+
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+Decide which hash function to use depending on the boolean
+
+
+

Iterators


+ +
val seq : 'a hash_fun -> 'a CCHash.sequence hash_fun
+
val gen : 'a hash_fun -> 'a CCHash.gen hash_fun
+
val klist : 'a hash_fun -> 'a CCHash.klist hash_fun
\ No newline at end of file diff --git a/0.17/CCHash.S.html b/0.17/CCHash.S.html new file mode 100644 index 00000000..b2f42428 --- /dev/null +++ b/0.17/CCHash.S.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.S + + + +

Module type CCHash.S

+ +
module type S = sig .. end

+ +
include CCHash.HASH
+ +
type 'a hash_fun = 'a -> CCHash.state -> CCHash.state 
+ + +
val string : string hash_fun
+
val list : 'a hash_fun -> 'a list hash_fun
+
val array : 'a hash_fun -> 'a array hash_fun
+
val opt : 'a hash_fun -> 'a option hash_fun
+
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+
val triple : 'a hash_fun ->
'b hash_fun ->
'c hash_fun -> ('a * 'b * 'c) hash_fun
+
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+Decide which hash function to use depending on the boolean
+
+
+

Iterators


+ +
val seq : 'a hash_fun -> 'a CCHash.sequence hash_fun
+
val gen : 'a hash_fun -> 'a CCHash.gen hash_fun
+
val klist : 'a hash_fun -> 'a CCHash.klist hash_fun
\ No newline at end of file diff --git a/0.17/CCHash.html b/0.17/CCHash.html new file mode 100644 index 00000000..a424fa51 --- /dev/null +++ b/0.17/CCHash.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash + + + +

Module CCHash

+ +
module CCHash: sig .. end
+

Hash combinators


+
+
+
+

Definitions


+ +
type t = int 
+
+A hash value is a positive integer
+
+ + +
type state 
+
+State required by the hash function.
+Since 0.16 the state is abstract, for more flexibility
+
+ + +
type 'a hash_fun = 'a -> state -> state 
+
+Hash function for values of type 'a, merging a fingerprint of the + value into the state of type t
+
+ +
+

Applying Hash


+ +
val init : state
+Initial value
+
+ +
val finish : state -> int
+Extract a usable hash value
+
+ +
val apply : 'a hash_fun -> 'a -> int
+Apply a hash function to a value. + apply f x is the same as finish (f x init)
+
+
+

Basic Combinators

+

+ + Those combinators have been renamed in 0.13, so as to + remove the trailing "_". + They are now defined by the application of CCHash.Make
+ +

val bool_ : bool hash_fun
+Deprecated.use bool
+
+ +
val char_ : char hash_fun
+Deprecated.use char
+
+ +
val int_ : int hash_fun
+Deprecated.use int
+
+ +
val string_ : string hash_fun
+Deprecated.use string
+
+ +
val int32_ : int32 hash_fun
+Deprecated.use int32
+
+ +
val int64_ : int64 hash_fun
+Deprecated.use int64
+
+ +
val nativeint_ : nativeint hash_fun
+Deprecated.use nativeint
+
+ +
val list_ : 'a hash_fun -> 'a list hash_fun
+Deprecated.use list
+Hash a list. Each element is hashed using f.
+
+ +
val array_ : 'a hash_fun -> 'a array hash_fun
+Deprecated.use array
+
+ +
val opt : 'a hash_fun -> 'a option hash_fun
+
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+
val triple : 'a hash_fun ->
'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
+
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+Decide which hash function to use depending on the boolean
+
+
+

Iterators


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
val seq : 'a hash_fun -> 'a sequence hash_fun
+
val gen : 'a hash_fun -> 'a gen hash_fun
+
val klist : 'a hash_fun -> 'a klist hash_fun

+

Generic Hashing

+

+ + Parametrize over the state, and some primitives to hash basic types. + This can for instance be used for cryptographic hashing or + checksums such as MD5.
+ +

module type HASH = sig .. end
+
module type S = sig .. end
+
module Make (H : HASH) : S  with type state = H.state
+
include CCHash.S
+ \ No newline at end of file diff --git a/0.17/CCHashSet.ELEMENT.html b/0.17/CCHashSet.ELEMENT.html new file mode 100644 index 00000000..8923ff97 --- /dev/null +++ b/0.17/CCHashSet.ELEMENT.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.ELEMENT + + + +

Module type CCHashSet.ELEMENT

+ +
module type ELEMENT = sig .. end

+ +
type t 
+ + +
val equal : t -> t -> bool
+
val hash : t -> int
+Positive value
+
+ \ No newline at end of file diff --git a/0.17/CCHashSet.Make.html b/0.17/CCHashSet.Make.html new file mode 100644 index 00000000..98bb21fb --- /dev/null +++ b/0.17/CCHashSet.Make.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.Make + + + +

Functor CCHashSet.Make

+ +
module Make (E : ELEMENT) : S  with type elt = E.t
+ + + + +
Parameters: + + + + +
+E:ELEMENT +
+
+
+ +
type t 
+ + +
type elt 
+ + +
val create : int -> t
+create n makes a new set with the given capacity n
+
+ +
val singleton : elt -> t
+singleton x is the singleton {x}
+
+ +
val clear : t -> unit
+clear s removes all elements from s
+
+ +
val copy : t -> t
+Fresh copy
+
+ +
val copy_into : into:t -> t -> unit
+copy_into ~into s copies all elements of s into into
+
+ +
val insert : t -> elt -> unit
+insert s x adds x into s
+
+ +
val remove : t -> elt -> unit
+Remove the element, if it were in there
+
+ +
val cardinal : t -> int
+cardinal s returns the number of elements in s
+
+ +
val mem : t -> elt -> bool
+mem s x returns true iff x is in s
+
+ +
val find_exn : t -> elt -> elt
+find_exn s x returns y if x and y are equal, and mem s y.
+Raises Not_found if x not in s
+
+ +
val find : t -> elt -> elt option
+Safe version of CCHashSet.S.find_exn
+
+ +
val inter : t -> t -> t
+inter a b returns a ∩ b
+
+ +
val inter_mut : into:t -> t -> unit
+inter_mut ~into a changes into into a ∩ into
+
+ +
val union : t -> t -> t
+union a b returns a ∪ b
+
+ +
val union_mut : into:t -> t -> unit
+union_mut ~into a changes into into a ∪ into
+
+ +
val diff : t -> t -> t
+diff a b returns a - b
+
+ +
val subset : t -> t -> bool
+subset a b returns true if all elements of a are in b
+
+ +
val equal : t -> t -> bool
+equal a b is extensional equality (a and b have the same elements)
+
+ +
val for_all : (elt -> bool) -> t -> bool
+
val exists : (elt -> bool) -> t -> bool
+
val iter : (elt -> unit) -> t -> unit
+Iterate on values
+
+ +
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
+Fold on values
+
+ +
val elements : t -> elt list
+List of elements
+
+ +
val of_list : elt list -> t
+
val to_seq : t -> elt CCHashSet.sequence
+
val of_seq : elt CCHashSet.sequence -> t
+
val add_seq : t -> elt CCHashSet.sequence -> unit
+
val pp : ?sep:string ->
elt CCHashSet.printer -> t CCHashSet.printer
+pp pp_elt returns a set printer, given a printer for + individual elements
+
+ \ No newline at end of file diff --git a/0.17/CCHashSet.S.html b/0.17/CCHashSet.S.html new file mode 100644 index 00000000..63ffbbe2 --- /dev/null +++ b/0.17/CCHashSet.S.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.S + + + +

Module type CCHashSet.S

+ +
module type S = sig .. end

+ +
type t 
+ + +
type elt 
+ + +
val create : int -> t
+create n makes a new set with the given capacity n
+
+ +
val singleton : elt -> t
+singleton x is the singleton {x}
+
+ +
val clear : t -> unit
+clear s removes all elements from s
+
+ +
val copy : t -> t
+Fresh copy
+
+ +
val copy_into : into:t -> t -> unit
+copy_into ~into s copies all elements of s into into
+
+ +
val insert : t -> elt -> unit
+insert s x adds x into s
+
+ +
val remove : t -> elt -> unit
+Remove the element, if it were in there
+
+ +
val cardinal : t -> int
+cardinal s returns the number of elements in s
+
+ +
val mem : t -> elt -> bool
+mem s x returns true iff x is in s
+
+ +
val find_exn : t -> elt -> elt
+find_exn s x returns y if x and y are equal, and mem s y.
+Raises Not_found if x not in s
+
+ +
val find : t -> elt -> elt option
+Safe version of CCHashSet.S.find_exn
+
+ +
val inter : t -> t -> t
+inter a b returns a ∩ b
+
+ +
val inter_mut : into:t -> t -> unit
+inter_mut ~into a changes into into a ∩ into
+
+ +
val union : t -> t -> t
+union a b returns a ∪ b
+
+ +
val union_mut : into:t -> t -> unit
+union_mut ~into a changes into into a ∪ into
+
+ +
val diff : t -> t -> t
+diff a b returns a - b
+
+ +
val subset : t -> t -> bool
+subset a b returns true if all elements of a are in b
+
+ +
val equal : t -> t -> bool
+equal a b is extensional equality (a and b have the same elements)
+
+ +
val for_all : (elt -> bool) -> t -> bool
+
val exists : (elt -> bool) -> t -> bool
+
val iter : (elt -> unit) -> t -> unit
+Iterate on values
+
+ +
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
+Fold on values
+
+ +
val elements : t -> elt list
+List of elements
+
+ +
val of_list : elt list -> t
+
val to_seq : t -> elt CCHashSet.sequence
+
val of_seq : elt CCHashSet.sequence -> t
+
val add_seq : t -> elt CCHashSet.sequence -> unit
+
val pp : ?sep:string ->
elt CCHashSet.printer -> t CCHashSet.printer
+pp pp_elt returns a set printer, given a printer for + individual elements
+
+ \ No newline at end of file diff --git a/0.17/CCHashSet.html b/0.17/CCHashSet.html new file mode 100644 index 00000000..3ecf2fe2 --- /dev/null +++ b/0.17/CCHashSet.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet + + + +

Module CCHashSet

+ +
module CCHashSet: sig .. end
+

Mutable Set

+

+ + status: unstable
+Since 0.13
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
module type S = sig .. end
+
module type ELEMENT = sig .. end
+
module Make (E : ELEMENT) : S  with type elt = E.t
\ No newline at end of file diff --git a/0.17/CCHashTrie.KEY.html b/0.17/CCHashTrie.KEY.html new file mode 100644 index 00000000..82705c13 --- /dev/null +++ b/0.17/CCHashTrie.KEY.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.KEY + + + +

Module type CCHashTrie.KEY

+ +
module type KEY = sig .. end
+

Type for keys


+
+
+ +
type t 
+ + +
val equal : t -> t -> bool
+
val hash : t -> int
\ No newline at end of file diff --git a/0.17/CCHashTrie.Make.html b/0.17/CCHashTrie.Make.html new file mode 100644 index 00000000..77721f42 --- /dev/null +++ b/0.17/CCHashTrie.Make.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.Make + + + +

Functor CCHashTrie.Make

+ +
module Make (K : KEY) : S  with type key = K.t
+

Functors


+
+ + + + + +
Parameters: + + + + +
+K:KEY +
+
+
+ +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : key -> 'a -> 'a t
+
val add : key -> 'a -> 'a t -> 'a t
+
val mem : key -> 'a t -> bool
+
val get : key -> 'a t -> 'a option
+
val get_exn : key -> 'a t -> 'a
+Raises Not_found if key not present
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present.
+
+ +
val update : key ->
f:('a option -> 'a option) -> 'a t -> 'a t
+update k ~f m calls f (Some v) if get k m = Some v, f None + otherwise. Then, if f returns Some v' it binds k to v', + if f returns None it removes k
+
+ +
val add_mut : id:CCHashTrie.Transient.t ->
key -> 'a -> 'a t -> 'a t
+add_mut ~id k v m behaves like add k v m, except it will mutate + in place whenever possible. Changes done with an id might affect all + versions of the structure obtained with the same id (but not + other versions).
+Raises Transient.Frozen if id is frozen
+
+ +
val remove_mut : id:CCHashTrie.Transient.t ->
key -> 'a t -> 'a t
+Same as CCHashTrie.S.remove, but modifies in place whenever possible
+Raises Transient.Frozen if id is frozen
+
+ +
val update_mut : id:CCHashTrie.Transient.t ->
key ->
f:('a option -> 'a option) -> 'a t -> 'a t
+Same as CCHashTrie.S.update but with mutability
+Raises Transient.Frozen if id is frozen
+
+ +
val cardinal : 'a t -> int
+
val choose : 'a t -> (key * 'a) option
+
val choose_exn : 'a t -> key * 'a
+Raises Not_found if not pair was found
+
+ +
val iter : f:(key -> 'a -> unit) -> 'a t -> unit
+
val fold : f:('b -> key -> 'a -> 'b) -> x:'b -> 'a t -> 'b

+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val add_list : 'a t -> (key * 'a) list -> 'a t
+
val add_list_mut : id:CCHashTrie.Transient.t ->
'a t -> (key * 'a) list -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val add_seq : 'a t ->
(key * 'a) CCHashTrie.sequence -> 'a t
+
val add_seq_mut : id:CCHashTrie.Transient.t ->
'a t ->
(key * 'a) CCHashTrie.sequence -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_seq : (key * 'a) CCHashTrie.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCHashTrie.sequence
+
val add_gen : 'a t ->
(key * 'a) CCHashTrie.gen -> 'a t
+
val add_gen_mut : id:CCHashTrie.Transient.t ->
'a t ->
(key * 'a) CCHashTrie.gen -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_gen : (key * 'a) CCHashTrie.gen -> 'a t
+
val to_gen : 'a t -> (key * 'a) CCHashTrie.gen

+
IO

+ +
val print : key CCHashTrie.printer ->
'a CCHashTrie.printer -> 'a t CCHashTrie.printer
+
val as_tree : 'a t ->
[ `L of int * (key * 'a) list | `N ] CCHashTrie.ktree
+For debugging purpose: explore the structure of the tree, + with `L (h,l) being a leaf (with shared hash h) + and `N an inner node
+
+ \ No newline at end of file diff --git a/0.17/CCHashTrie.S.html b/0.17/CCHashTrie.S.html new file mode 100644 index 00000000..8260e4ba --- /dev/null +++ b/0.17/CCHashTrie.S.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.S + + + +

Module type CCHashTrie.S

+ +
module type S = sig .. end
+

Signature


+
+
+ +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : key -> 'a -> 'a t
+
val add : key -> 'a -> 'a t -> 'a t
+
val mem : key -> 'a t -> bool
+
val get : key -> 'a t -> 'a option
+
val get_exn : key -> 'a t -> 'a
+Raises Not_found if key not present
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present.
+
+ +
val update : key ->
f:('a option -> 'a option) -> 'a t -> 'a t
+update k ~f m calls f (Some v) if get k m = Some v, f None + otherwise. Then, if f returns Some v' it binds k to v', + if f returns None it removes k
+
+ +
val add_mut : id:CCHashTrie.Transient.t ->
key -> 'a -> 'a t -> 'a t
+add_mut ~id k v m behaves like add k v m, except it will mutate + in place whenever possible. Changes done with an id might affect all + versions of the structure obtained with the same id (but not + other versions).
+Raises Transient.Frozen if id is frozen
+
+ +
val remove_mut : id:CCHashTrie.Transient.t ->
key -> 'a t -> 'a t
+Same as CCHashTrie.S.remove, but modifies in place whenever possible
+Raises Transient.Frozen if id is frozen
+
+ +
val update_mut : id:CCHashTrie.Transient.t ->
key ->
f:('a option -> 'a option) -> 'a t -> 'a t
+Same as CCHashTrie.S.update but with mutability
+Raises Transient.Frozen if id is frozen
+
+ +
val cardinal : 'a t -> int
+
val choose : 'a t -> (key * 'a) option
+
val choose_exn : 'a t -> key * 'a
+Raises Not_found if not pair was found
+
+ +
val iter : f:(key -> 'a -> unit) -> 'a t -> unit
+
val fold : f:('b -> key -> 'a -> 'b) -> x:'b -> 'a t -> 'b

+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val add_list : 'a t -> (key * 'a) list -> 'a t
+
val add_list_mut : id:CCHashTrie.Transient.t ->
'a t -> (key * 'a) list -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val add_seq : 'a t ->
(key * 'a) CCHashTrie.sequence -> 'a t
+
val add_seq_mut : id:CCHashTrie.Transient.t ->
'a t ->
(key * 'a) CCHashTrie.sequence -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_seq : (key * 'a) CCHashTrie.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCHashTrie.sequence
+
val add_gen : 'a t ->
(key * 'a) CCHashTrie.gen -> 'a t
+
val add_gen_mut : id:CCHashTrie.Transient.t ->
'a t ->
(key * 'a) CCHashTrie.gen -> 'a t
+Raises Frozen if the ID is frozen
+
+ +
val of_gen : (key * 'a) CCHashTrie.gen -> 'a t
+
val to_gen : 'a t -> (key * 'a) CCHashTrie.gen

+
IO

+ +
val print : key CCHashTrie.printer ->
'a CCHashTrie.printer -> 'a t CCHashTrie.printer
+
val as_tree : 'a t ->
[ `L of int * (key * 'a) list | `N ] CCHashTrie.ktree
+For debugging purpose: explore the structure of the tree, + with `L (h,l) being a leaf (with shared hash h) + and `N an inner node
+
+ \ No newline at end of file diff --git a/0.17/CCHashTrie.Transient.html b/0.17/CCHashTrie.Transient.html new file mode 100644 index 00000000..71de5ae2 --- /dev/null +++ b/0.17/CCHashTrie.Transient.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.Transient + + + +

Module CCHashTrie.Transient

+ +
module Transient: sig .. end
+

Transient Identifiers


+
+
+ +
type t 
+
+Identifiers for transient modifications. A transient modification + is uniquely identified by a Transient.t. Once Transient.freeze r + is called, r cannot be used to modify the structure again.
+
+ + +
val create : unit -> t
+Create a new, active ID
+
+ +
val equal : t -> t -> bool
+Equality between IDs
+
+ +
val frozen : t -> bool
+frozen i returns true if freeze i was called before. In this case, + the ID cannot be used for modifications again.
+
+ +
val active : t -> bool
+active i is not (frozen i)
+
+ +
val freeze : t -> unit
+freeze i makes i unusable for new modifications. The values + created with i will now be immutable.
+
+ +
val with_ : (t -> 'a) -> 'a
+Transient.with_ f creates a transient ID i, calls f i, + freezes the ID i and returns the result of f i.
+
+ +
exception Frozen
+
+Raised when a frozen ID is used
+
+ \ No newline at end of file diff --git a/0.17/CCHashTrie.html b/0.17/CCHashTrie.html new file mode 100644 index 00000000..d659a019 --- /dev/null +++ b/0.17/CCHashTrie.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie + + + +

Module CCHashTrie

+ +
module CCHashTrie: sig .. end
+

Hash Tries

+

+ + Trie indexed by the hash of the keys, where the branching factor is fixed. + The goal is to have a quite efficient functional structure with fast + update and access if the hash function is good. + The trie is not binary, to improve cache locality and decrease depth. +

+ + Preliminary benchmarks (see the "tbl" section of benchmarks) tend to show + that this type is quite efficient for small data sets. +

+ + status: unstable
+Since 0.13
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
type 'a ktree = unit -> [ `Nil | `Node of 'a * 'a ktree list ] 
+ + +
module Transient: sig .. end
+Transient Identifiers +
+ +
module type S = sig .. end
+Signature +
+ +
module type KEY = sig .. end
+Type for keys +
+ +
module Make (K : KEY) : S  with type key = K.t
+Functors +
+ \ No newline at end of file diff --git a/0.17/CCHashconsedSet.ELT.html b/0.17/CCHashconsedSet.ELT.html new file mode 100644 index 00000000..56096113 --- /dev/null +++ b/0.17/CCHashconsedSet.ELT.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.ELT + + + +

Module type CCHashconsedSet.ELT

+ +
module type ELT = sig .. end

+ +
type t 
+ + +
val compare : t -> t -> int
+Total order
+
+ +
val hash : t -> int
+Deterministic
+
+ \ No newline at end of file diff --git a/0.17/CCHashconsedSet.Make.html b/0.17/CCHashconsedSet.Make.html new file mode 100644 index 00000000..63719de4 --- /dev/null +++ b/0.17/CCHashconsedSet.Make.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.Make + + + +

Functor CCHashconsedSet.Make

+ +
module Make (E : ELT) : S  with type elt = E.t
+ + + + +
Parameters: + + + + +
+E:ELT +
+
+
+ +
type elt 
+ + +
type t 
+
+Set of elements
+
+ + +
val empty : t
+
val singleton : elt -> t
+
val doubleton : elt -> elt -> t
+
val mem : elt -> t -> bool
+
val equal : t -> t -> bool
+Fast equality test O(1)
+
+ +
val compare : t -> t -> int
+Fast (arbitrary) comparison test O(1)
+
+ +
val hash : t -> int
+Fast (arbitrary, deterministic) hash O(1)
+
+ +
val add : elt -> t -> t
+
val remove : elt -> t -> t
+
val cardinal : t -> int
+
val iter : (elt -> unit) -> t -> unit
+Iterate on elements, in no particular order
+
+ +
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+Fold on elements, in arbitrary order
+
+ +
val choose : t -> elt option
+
val choose_exn : t -> elt
+
val union : t -> t -> t
+
val inter : t -> t -> t
+
val diff : t -> t -> t

+

Whole-collection operations


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
val add_list : t -> elt list -> t
+
val of_list : elt list -> t
+
val to_list : t -> elt list
+
val add_seq : t ->
elt sequence -> t
+
val of_seq : elt sequence -> t
+
val to_seq : t -> elt sequence
\ No newline at end of file diff --git a/0.17/CCHashconsedSet.S.html b/0.17/CCHashconsedSet.S.html new file mode 100644 index 00000000..ae362bbf --- /dev/null +++ b/0.17/CCHashconsedSet.S.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.S + + + +

Module type CCHashconsedSet.S

+ +
module type S = sig .. end

+ +
type elt 
+ + +
type t 
+
+Set of elements
+
+ + +
val empty : t
+
val singleton : elt -> t
+
val doubleton : elt -> elt -> t
+
val mem : elt -> t -> bool
+
val equal : t -> t -> bool
+Fast equality test O(1)
+
+ +
val compare : t -> t -> int
+Fast (arbitrary) comparison test O(1)
+
+ +
val hash : t -> int
+Fast (arbitrary, deterministic) hash O(1)
+
+ +
val add : elt -> t -> t
+
val remove : elt -> t -> t
+
val cardinal : t -> int
+
val iter : (elt -> unit) -> t -> unit
+Iterate on elements, in no particular order
+
+ +
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
+Fold on elements, in arbitrary order
+
+ +
val choose : t -> elt option
+
val choose_exn : t -> elt
+
val union : t -> t -> t
+
val inter : t -> t -> t
+
val diff : t -> t -> t

+

Whole-collection operations


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
val add_list : t -> elt list -> t
+
val of_list : elt list -> t
+
val to_list : t -> elt list
+
val add_seq : t ->
elt sequence -> t
+
val of_seq : elt sequence -> t
+
val to_seq : t -> elt sequence
\ No newline at end of file diff --git a/0.17/CCHashconsedSet.html b/0.17/CCHashconsedSet.html new file mode 100644 index 00000000..06d74bc8 --- /dev/null +++ b/0.17/CCHashconsedSet.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet + + + +

Module CCHashconsedSet

+ +
module CCHashconsedSet: sig .. end
+

Hashconsed Sets

+

+ + Sets are hashconsed, so that set equality is physical equality. Some + sub-structure that is common to several sets is also perfectly shared. +

+ + status: unstable
+Since 0.12
+

+
+ +
module type ELT = sig .. end
+
module type S = sig .. end
+
module Make (E : ELT) : S  with type elt = E.t
\ No newline at end of file diff --git a/0.17/CCHashtbl.COUNTER.html b/0.17/CCHashtbl.COUNTER.html new file mode 100644 index 00000000..5ada849b --- /dev/null +++ b/0.17/CCHashtbl.COUNTER.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.COUNTER + + + +

Module type CCHashtbl.COUNTER

+ +
module type COUNTER = sig .. end

+ +
type elt 
+
+Elements that are to be counted
+
+ + +
type t 
+ + +
val create : int -> t
+A counter maps elements to natural numbers (the number of times this + element occurred)
+
+ +
val incr : t -> elt -> unit
+Increment the counter for the given element
+
+ +
val incr_by : t -> int -> elt -> unit
+Add or remove several occurrences at once. incr_by c x n + will add n occurrences of x if n>0, + and remove abs n occurrences if n<0.
+
+ +
val get : t -> elt -> int
+Number of occurrences for this element
+
+ +
val decr : t -> elt -> unit
+Remove one occurrence of the element
+Since 0.14
+
+ +
val length : t -> int
+Number of distinct elements
+Since 0.14
+
+ +
val add_seq : t -> elt CCHashtbl.sequence -> unit
+Increment each element of the sequence
+
+ +
val of_seq : elt CCHashtbl.sequence -> t
+of_seq s is the same as add_seq (create ())
+
+ +
val to_seq : t -> (elt * int) CCHashtbl.sequence
+to_seq tbl returns elements of tbl along with their multiplicity
+Since 0.14
+
+ +
val add_list : t -> (elt * int) list -> unit
+Similar to CCHashtbl.COUNTER.add_seq
+Since 0.14
+
+ +
val of_list : (elt * int) list -> t
+Similar to CCHashtbl.COUNTER.of_seq
+Since 0.14
+
+ +
val to_list : t -> (elt * int) list
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.DEFAULT.html b/0.17/CCHashtbl.DEFAULT.html new file mode 100644 index 00000000..21aa9f31 --- /dev/null +++ b/0.17/CCHashtbl.DEFAULT.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.DEFAULT + + + +

Module type CCHashtbl.DEFAULT

+ +
module type DEFAULT = sig .. end

+ +
type key 
+ + +
type 'a t 
+
+A hashtable for keys of type key and values of type 'a
+
+ + +
val create : ?size:int -> 'a -> 'a t
+create d makes a new table that maps every key to d by default.
+
+
size : optional size of the initial table
+ +
val create_with : ?size:int -> (key -> 'a) -> 'a t
+Similar to create d but here d is a function called to obtain a + new default value for each distinct key. Useful if the default + value is stateful.
+
+ +
val get : 'a t -> key -> 'a
+Unfailing retrieval (possibly returns the default value). This will + modify the table if the key wasn't present.
+
+ +
val set : 'a t -> key -> 'a -> unit
+Replace the current binding for this key
+
+ +
val remove : 'a t -> key -> unit
+Remove the binding for this key. If get tbl k is called later, the + default value for the table will be returned
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Pairs of (elem, value) for all elements on which get was called
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.Make.html b/0.17/CCHashtbl.Make.html new file mode 100644 index 00000000..dbc68f53 --- /dev/null +++ b/0.17/CCHashtbl.Make.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.Make + + + +

Functor CCHashtbl.Make

+ +
module Make (X : Hashtbl.HashedType) : S  with type key = X.t and type 'a t = 'a Hashtbl.Make(X).t
+ + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
include Hashtbl.S
+ +
val get : 'a t -> key -> 'a option
+Safe version of Hashtbl.find
+
+ +
val get_or : 'a t -> key -> or_:'a -> 'a
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl)
+Since 0.16
+
+ +
val add_list : 'a list t -> key -> 'a -> unit
+add_list tbl x y adds y to the list x is bound to. If x is + not bound, it becomes bound to [y].
+Since 0.16
+
+ +
val incr : ?by:int -> int t -> key -> unit
+incr ?by tbl x increments or initializes the counter associated with x. + If get tbl x = None, then after update, get tbl x = Some 1; + otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
+Since 0.16
+
+
by : if specified, the int value is incremented by by rather than 1
+ +
val decr : ?by:int -> int t -> key -> unit
+Same as CCHashtbl.S.incr but substract 1 (or the value of by). + If the value reaches 0, the key is removed from the table. + This does nothing if the key is not already present in the table.
+Since 0.16
+
+ +
val keys : 'a t -> key CCHashtbl.sequence
+Iterate on keys (similar order as Hashtbl.iter)
+
+ +
val values : 'a t -> 'a CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val keys_list : 'a t -> key list
+keys t is the list of keys in t.
+Since 0.8
+
+ +
val values_list : 'a t -> 'a list
+values t is the list of values in t.
+Since 0.8
+
+ +
val map_list : (key -> 'a -> 'b) -> 'a t -> 'b list
+Map on a hashtable's items, collect into a list
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+From the given bindings, added in order
+
+ +
val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+Add the corresponding pairs to the table, using Hashtbl.add.
+Since 0.16
+
+ +
val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.S.incr. This is useful for counting how many times each + element of seq occurs.
+Since 0.16
+
+ +
val of_seq_count : key CCHashtbl.sequence -> int t
+Similar to CCHashtbl.S.add_seq_count, but allocates a new table and returns it
+Since 0.16
+
+ +
val to_list : 'a t -> (key * 'a) list
+List of bindings (order unspecified)
+
+ +
val of_list : (key * 'a) list -> 'a t
+From the given list of bindings, added in order
+
+ +
val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace
+Since 0.14
+
+ +
val print : key CCHashtbl.printer -> 'a CCHashtbl.printer -> 'a t CCHashtbl.printer
+Printer for tables
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.MakeCounter.html b/0.17/CCHashtbl.MakeCounter.html new file mode 100644 index 00000000..80c1ce28 --- /dev/null +++ b/0.17/CCHashtbl.MakeCounter.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.MakeCounter + + + +

Functor CCHashtbl.MakeCounter

+ +
module MakeCounter (X : Hashtbl.HashedType) : COUNTER 
+  with type elt = X.t
+  and type t = int Hashtbl.Make(X).t
+Create a new counter type + The type t is exposed
+Since 0.14
+
+ + + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
type elt 
+
+Elements that are to be counted
+
+ + +
type t 
+ + +
val create : int -> t
+A counter maps elements to natural numbers (the number of times this + element occurred)
+
+ +
val incr : t -> elt -> unit
+Increment the counter for the given element
+
+ +
val incr_by : t -> int -> elt -> unit
+Add or remove several occurrences at once. incr_by c x n + will add n occurrences of x if n>0, + and remove abs n occurrences if n<0.
+
+ +
val get : t -> elt -> int
+Number of occurrences for this element
+
+ +
val decr : t -> elt -> unit
+Remove one occurrence of the element
+Since 0.14
+
+ +
val length : t -> int
+Number of distinct elements
+Since 0.14
+
+ +
val add_seq : t -> elt CCHashtbl.sequence -> unit
+Increment each element of the sequence
+
+ +
val of_seq : elt CCHashtbl.sequence -> t
+of_seq s is the same as add_seq (create ())
+
+ +
val to_seq : t -> (elt * int) CCHashtbl.sequence
+to_seq tbl returns elements of tbl along with their multiplicity
+Since 0.14
+
+ +
val add_list : t -> (elt * int) list -> unit
+Similar to CCHashtbl.COUNTER.add_seq
+Since 0.14
+
+ +
val of_list : (elt * int) list -> t
+Similar to CCHashtbl.COUNTER.of_seq
+Since 0.14
+
+ +
val to_list : t -> (elt * int) list
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.MakeDefault.html b/0.17/CCHashtbl.MakeDefault.html new file mode 100644 index 00000000..e4a55db3 --- /dev/null +++ b/0.17/CCHashtbl.MakeDefault.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.MakeDefault + + + +

Functor CCHashtbl.MakeDefault

+ +
module MakeDefault (X : Hashtbl.HashedType) : DEFAULT  with type key = X.t
+ + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
type key 
+ + +
type 'a t 
+
+A hashtable for keys of type key and values of type 'a
+
+ + +
val create : ?size:int -> 'a -> 'a t
+create d makes a new table that maps every key to d by default.
+
+
size : optional size of the initial table
+ +
val create_with : ?size:int -> (key -> 'a) -> 'a t
+Similar to create d but here d is a function called to obtain a + new default value for each distinct key. Useful if the default + value is stateful.
+
+ +
val get : 'a t -> key -> 'a
+Unfailing retrieval (possibly returns the default value). This will + modify the table if the key wasn't present.
+
+ +
val set : 'a t -> key -> 'a -> unit
+Replace the current binding for this key
+
+ +
val remove : 'a t -> key -> unit
+Remove the binding for this key. If get tbl k is called later, the + default value for the table will be returned
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Pairs of (elem, value) for all elements on which get was called
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.S.html b/0.17/CCHashtbl.S.html new file mode 100644 index 00000000..599c6f89 --- /dev/null +++ b/0.17/CCHashtbl.S.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.S + + + +

Module type CCHashtbl.S

+ +
module type S = sig .. end

+ +
include Hashtbl.S
+ +
val get : 'a t -> key -> 'a option
+Safe version of Hashtbl.find
+
+ +
val get_or : 'a t -> key -> or_:'a -> 'a
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl)
+Since 0.16
+
+ +
val add_list : 'a list t -> key -> 'a -> unit
+add_list tbl x y adds y to the list x is bound to. If x is + not bound, it becomes bound to [y].
+Since 0.16
+
+ +
val incr : ?by:int -> int t -> key -> unit
+incr ?by tbl x increments or initializes the counter associated with x. + If get tbl x = None, then after update, get tbl x = Some 1; + otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
+Since 0.16
+
+
by : if specified, the int value is incremented by by rather than 1
+ +
val decr : ?by:int -> int t -> key -> unit
+Same as CCHashtbl.S.incr but substract 1 (or the value of by). + If the value reaches 0, the key is removed from the table. + This does nothing if the key is not already present in the table.
+Since 0.16
+
+ +
val keys : 'a t -> key CCHashtbl.sequence
+Iterate on keys (similar order as Hashtbl.iter)
+
+ +
val values : 'a t -> 'a CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val keys_list : 'a t -> key list
+keys t is the list of keys in t.
+Since 0.8
+
+ +
val values_list : 'a t -> 'a list
+values t is the list of values in t.
+Since 0.8
+
+ +
val map_list : (key -> 'a -> 'b) -> 'a t -> 'b list
+Map on a hashtable's items, collect into a list
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+From the given bindings, added in order
+
+ +
val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+Add the corresponding pairs to the table, using Hashtbl.add.
+Since 0.16
+
+ +
val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.S.incr. This is useful for counting how many times each + element of seq occurs.
+Since 0.16
+
+ +
val of_seq_count : key CCHashtbl.sequence -> int t
+Similar to CCHashtbl.S.add_seq_count, but allocates a new table and returns it
+Since 0.16
+
+ +
val to_list : 'a t -> (key * 'a) list
+List of bindings (order unspecified)
+
+ +
val of_list : (key * 'a) list -> 'a t
+From the given list of bindings, added in order
+
+ +
val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace
+Since 0.14
+
+ +
val print : key CCHashtbl.printer -> 'a CCHashtbl.printer -> 'a t CCHashtbl.printer
+Printer for tables
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCHashtbl.html b/0.17/CCHashtbl.html new file mode 100644 index 00000000..35f0f3d4 --- /dev/null +++ b/0.17/CCHashtbl.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl + + + +

Module CCHashtbl

+ +
module CCHashtbl: sig .. end
+

Extension to the standard Hashtbl


+Since 0.4
+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a eq = 'a -> 'a -> bool 
+ + +
type 'a hash = 'a -> int 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ +
+

Polymorphic tables


+ +
val get : ('a, 'b) Hashtbl.t -> 'a -> 'b option
+Safe version of Hashtbl.find
+
+ +
val get_or : ('a, 'b) Hashtbl.t -> 'a -> or_:'b -> 'b
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl)
+Since 0.16
+
+ +
val keys : ('a, 'b) Hashtbl.t -> 'a sequence
+Iterate on keys (similar order as Hashtbl.iter)
+
+ +
val values : ('a, 'b) Hashtbl.t -> 'b sequence
+Iterate on values in the table
+
+ +
val keys_list : ('a, 'b) Hashtbl.t -> 'a list
+keys_list t is the list of keys in t.
+Since 0.8
+
+ +
val values_list : ('a, 'b) Hashtbl.t -> 'b list
+values_list t is the list of values in t.
+Since 0.8
+
+ +
val map_list : ('a -> 'b -> 'c) -> ('a, 'b) Hashtbl.t -> 'c list
+Map on a hashtable's items, collect into a list
+
+ +
val incr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unit
+incr ?by tbl x increments or initializes the counter associated with x. + If get tbl x = None, then after update, get tbl x = Some 1; + otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
+Since 0.16
+
+
by : if specified, the int value is incremented by by rather than 1
+ +
val decr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unit
+Same as CCHashtbl.incr but substract 1 (or the value of by). + If the value reaches 0, the key is removed from the table. + This does nothing if the key is not already present in the table.
+Since 0.16
+
+ +
val to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) sequence
+Iterate on bindings in the table
+
+ +
val add_list : ('a, 'b list) Hashtbl.t -> 'a -> 'b -> unit
+add_list tbl x y adds y to the list x is bound to. If x is + not bound, it becomes bound to [y].
+Since 0.16
+
+ +
val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) sequence -> unit
+Add the corresponding pairs to the table, using Hashtbl.add.
+Since 0.16
+
+ +
val of_seq : ('a * 'b) sequence -> ('a, 'b) Hashtbl.t
+From the given bindings, added in order
+
+ +
val add_seq_count : ('a, int) Hashtbl.t -> 'a sequence -> unit
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.incr. This is useful for counting how many times each + element of seq occurs.
+Since 0.16
+
+ +
val of_seq_count : 'a sequence -> ('a, int) Hashtbl.t
+Similar to CCHashtbl.add_seq_count, but allocates a new table and returns it
+Since 0.16
+
+ +
val to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list
+List of bindings (order unspecified)
+
+ +
val of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.t
+From the given list of bindings, added in order
+
+ +
val update : ('a, 'b) Hashtbl.t -> f:('a -> 'b option -> 'b option) -> k:'a -> unit
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace
+Since 0.14
+
+ +
val print : 'a printer ->
'b printer -> ('a, 'b) Hashtbl.t printer
+Printer for table
+Since 0.13
+
+
+

Functor


+ +
module type S = sig .. end
+
module Make (X : Hashtbl.HashedType) : S  with type key = X.t and type 'a t = 'a Hashtbl.Make(X).t

+

Default Table

+

+ + A table with a default element for keys that were never added.
+ +

module type DEFAULT = sig .. end
+
module MakeDefault (X : Hashtbl.HashedType) : DEFAULT  with type key = X.t

+

Count occurrences using a Hashtbl


+ +
module type COUNTER = sig .. end
+
module MakeCounter (X : Hashtbl.HashedType) : COUNTER 
+  with type elt = X.t
+  and type t = int Hashtbl.Make(X).t
+Create a new counter type + The type t is exposed +
+ \ No newline at end of file diff --git a/0.17/CCHeap.Make.html b/0.17/CCHeap.Make.html new file mode 100644 index 00000000..28827880 --- /dev/null +++ b/0.17/CCHeap.Make.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.Make + + + +

Functor CCHeap.Make

+ +
module Make (E : PARTIAL_ORD) : S  with type elt = E.t
+ + + + +
Parameters: + + + + +
+E:PARTIAL_ORD +
+
+
+ +
type elt 
+ + +
type t 
+ + +
val empty : t
+Empty heap
+
+ +
val is_empty : t -> bool
+Is the heap empty?
+
+ +
exception Empty
+ +
val merge : t -> t -> t
+Merge two heaps
+
+ +
val insert : elt -> t -> t
+Insert a value in the heap
+
+ +
val add : t -> elt -> t
+Synonym to CCHeap.S.insert
+
+ +
val filter : (elt -> bool) -> t -> t
+Filter values, only retaining the ones that satisfy the predicate. + Linear time at least.
+
+ +
val find_min : t -> elt option
+Find minimal element
+
+ +
val find_min_exn : t -> elt
+Same as CCHeap.S.find_min but can fail
+Raises Empty if the heap is empty
+
+ +
val take : t -> (t * elt) option
+Extract and return the minimum element, and the new heap (without + this element), or None if the heap is empty
+
+ +
val take_exn : t -> t * elt
+Same as CCHeap.S.take, but can fail.
+Raises Empty if the heap is empty
+
+ +
val iter : (elt -> unit) -> t -> unit
+Iterate on elements
+
+ +
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
+Fold on all values
+
+ +
val size : t -> int
+Number of elements (linear complexity)
+
+
+

Conversions

+

+ + The interface of of_gen, of_seq, of_klist + has changed
+ +

val to_list : t -> elt list
+
val add_list : t -> elt list -> t
+Since 0.16
+
+ +
val of_list : elt list -> t
+
val add_seq : t -> elt CCHeap.sequence -> t
+Since 0.16
+
+ +
val of_seq : elt CCHeap.sequence -> t
+
val to_seq : t -> elt CCHeap.sequence
+
val add_klist : t -> elt CCHeap.klist -> t
+Since 0.16
+
+ +
val of_klist : elt CCHeap.klist -> t
+
val to_klist : t -> elt CCHeap.klist
+
val add_gen : t -> elt CCHeap.gen -> t
+Since 0.16
+
+ +
val of_gen : elt CCHeap.gen -> t
+
val to_gen : t -> elt CCHeap.gen
+
val to_tree : t -> elt CCHeap.ktree
+
val print : ?sep:string -> elt CCHeap.printer -> t CCHeap.printer
+Since 0.16
+
+ \ No newline at end of file diff --git a/0.17/CCHeap.PARTIAL_ORD.html b/0.17/CCHeap.PARTIAL_ORD.html new file mode 100644 index 00000000..bdb116c4 --- /dev/null +++ b/0.17/CCHeap.PARTIAL_ORD.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.PARTIAL_ORD + + + +

Module type CCHeap.PARTIAL_ORD

+ +
module type PARTIAL_ORD = sig .. end

+ +
type t 
+ + +
val leq : t -> t -> bool
+leq x y shall return true iff x is lower or equal to y
+
+ \ No newline at end of file diff --git a/0.17/CCHeap.S.html b/0.17/CCHeap.S.html new file mode 100644 index 00000000..74c624eb --- /dev/null +++ b/0.17/CCHeap.S.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.S + + + +

Module type CCHeap.S

+ +
module type S = sig .. end

+ +
type elt 
+ + +
type t 
+ + +
val empty : t
+Empty heap
+
+ +
val is_empty : t -> bool
+Is the heap empty?
+
+ +
exception Empty
+ +
val merge : t -> t -> t
+Merge two heaps
+
+ +
val insert : elt -> t -> t
+Insert a value in the heap
+
+ +
val add : t -> elt -> t
+Synonym to CCHeap.S.insert
+
+ +
val filter : (elt -> bool) -> t -> t
+Filter values, only retaining the ones that satisfy the predicate. + Linear time at least.
+
+ +
val find_min : t -> elt option
+Find minimal element
+
+ +
val find_min_exn : t -> elt
+Same as CCHeap.S.find_min but can fail
+Raises Empty if the heap is empty
+
+ +
val take : t -> (t * elt) option
+Extract and return the minimum element, and the new heap (without + this element), or None if the heap is empty
+
+ +
val take_exn : t -> t * elt
+Same as CCHeap.S.take, but can fail.
+Raises Empty if the heap is empty
+
+ +
val iter : (elt -> unit) -> t -> unit
+Iterate on elements
+
+ +
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
+Fold on all values
+
+ +
val size : t -> int
+Number of elements (linear complexity)
+
+
+

Conversions

+

+ + The interface of of_gen, of_seq, of_klist + has changed
+ +

val to_list : t -> elt list
+
val add_list : t -> elt list -> t
+Since 0.16
+
+ +
val of_list : elt list -> t
+
val add_seq : t -> elt CCHeap.sequence -> t
+Since 0.16
+
+ +
val of_seq : elt CCHeap.sequence -> t
+
val to_seq : t -> elt CCHeap.sequence
+
val add_klist : t -> elt CCHeap.klist -> t
+Since 0.16
+
+ +
val of_klist : elt CCHeap.klist -> t
+
val to_klist : t -> elt CCHeap.klist
+
val add_gen : t -> elt CCHeap.gen -> t
+Since 0.16
+
+ +
val of_gen : elt CCHeap.gen -> t
+
val to_gen : t -> elt CCHeap.gen
+
val to_tree : t -> elt CCHeap.ktree
+
val print : ?sep:string -> elt CCHeap.printer -> t CCHeap.printer
+Since 0.16
+
+ \ No newline at end of file diff --git a/0.17/CCHeap.html b/0.17/CCHeap.html new file mode 100644 index 00000000..ff351a28 --- /dev/null +++ b/0.17/CCHeap.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap + + + +

Module CCHeap

+ +
module CCHeap: sig .. end
+

Leftist Heaps

following Okasaki
+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a ktree = unit -> [ `Nil | `Node of 'a * 'a ktree list ] 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
module type PARTIAL_ORD = sig .. end
+
module type S = sig .. end
+
module Make (E : PARTIAL_ORD) : S  with type elt = E.t
\ No newline at end of file diff --git a/0.17/CCHet.Key.html b/0.17/CCHet.Key.html new file mode 100644 index 00000000..21044ce2 --- /dev/null +++ b/0.17/CCHet.Key.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Key + + + +

Module CCHet.Key

+ +
module Key: sig .. end

+ +
type 'a t 
+ + +
val create : unit -> 'a t
+
val equal : 'a t -> 'a t -> bool
+Compare two keys that have compatible types
+
+ \ No newline at end of file diff --git a/0.17/CCHet.Map.html b/0.17/CCHet.Map.html new file mode 100644 index 00000000..9a22698b --- /dev/null +++ b/0.17/CCHet.Map.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Map + + + +

Module CCHet.Map

+ +
module Map: sig .. end
+

Immutable map


+
+
+ +
type t 
+ + +
val empty : t
+
val mem : 'a CCHet.Key.t -> t -> bool
+
val add : 'a CCHet.Key.t -> 'a -> t -> t
+
val length : t -> int
+
val cardinal : t -> int
+
val find : 'a CCHet.Key.t -> t -> 'a option
+
val find_exn : 'a CCHet.Key.t -> t -> 'a
+Raises Not_found if the key is not in the table
+
+ +
val iter : (CCHet.pair -> unit) -> t -> unit
+
val to_seq : t -> CCHet.pair CCHet.sequence
+
val of_seq : CCHet.pair CCHet.sequence -> t
+
val add_seq : t -> CCHet.pair CCHet.sequence -> t
+
val add_list : t -> CCHet.pair list -> t
+
val of_list : CCHet.pair list -> t
+
val to_list : t -> CCHet.pair list
\ No newline at end of file diff --git a/0.17/CCHet.Tbl.html b/0.17/CCHet.Tbl.html new file mode 100644 index 00000000..3513b4e5 --- /dev/null +++ b/0.17/CCHet.Tbl.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Tbl + + + +

Module CCHet.Tbl

+ +
module Tbl: sig .. end
+

Imperative table indexed by CCHet.Key


+
+
+ +
type t 
+ + +
val create : ?size:int -> unit -> t
+
val mem : t -> 'a CCHet.Key.t -> bool
+
val add : t -> 'a CCHet.Key.t -> 'a -> unit
+
val length : t -> int
+
val find : t -> 'a CCHet.Key.t -> 'a option
+
val find_exn : t -> 'a CCHet.Key.t -> 'a
+Raises Not_found if the key is not in the table
+
+ +
val iter : (CCHet.pair -> unit) -> t -> unit
+
val to_seq : t -> CCHet.pair CCHet.sequence
+
val of_seq : CCHet.pair CCHet.sequence -> t
+
val add_seq : t -> CCHet.pair CCHet.sequence -> unit
+
val add_list : t -> CCHet.pair list -> unit
+
val of_list : CCHet.pair list -> t
+
val to_list : t -> CCHet.pair list
\ No newline at end of file diff --git a/0.17/CCHet.html b/0.17/CCHet.html new file mode 100644 index 00000000..c225b37a --- /dev/null +++ b/0.17/CCHet.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet + + + +

Module CCHet

+ +
module CCHet: sig .. end
+

Associative containers with Heterogenerous Values

+

+ + This is similar to CCMixtbl, but the injection is directly used as + a key.
+Since 0.17
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
module Key: sig .. end
+
type pair = 
+ + + + +
+| +Pair : 'a Key.t * 'a -> pair
+ + + +
module Tbl: sig .. end
+Imperative table indexed by CCHet.Key +
+ +
module Map: sig .. end
+Immutable map +
+ \ No newline at end of file diff --git a/0.17/CCIO.File.html b/0.17/CCIO.File.html new file mode 100644 index 00000000..6310fa1b --- /dev/null +++ b/0.17/CCIO.File.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIO.File + + + +

Module CCIO.File

+ +
module File: sig .. end

+ +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type t = string 
+
+A file should be represented by its absolute path, but currently + this is not enforced.
+
+ + +
val to_string : t -> string
+
val make : string -> t
+Build a file representation from a path (absolute or relative)
+
+ +
val exists : t -> bool
+
val is_directory : t -> bool
+
val remove_exn : t -> unit
+remove_exn path tries to remove the file at path from the + file system. +

+ + Raises Sys_error if there is no file at path.
+Since 0.8
+

+ +
val remove : t -> unit or_error
+Like remove_exn but with an error monad.
+Since 0.8
+
+ +
val remove_noerr : t -> unit
+Like remove_exn but do not raise any exception on failure.
+Since 0.8
+
+ +
val read_dir : ?recurse:bool -> t -> t CCIO.gen
+read_dir d returns a sequence of files and directory contained + in the directory d (or an empty stream if d is not a directory)
+
+
recurse : if true (default false), sub-directories are also + explored
+ +
val read_exn : t -> string
+Read the content of the given file, or raises some exception
+Since 0.16
+
+ +
val read : t -> string or_error
+Read the content of the given file
+Since 0.16
+
+ +
val append_exn : t -> string -> unit
+Append the given string into the given file, possibly raising
+Since 0.16
+
+ +
val append : t -> string -> unit or_error
+Append the given string into the given file
+Since 0.16
+
+ +
val write_exn : t -> string -> unit
+Write the given string into the given file, possibly raising
+Since 0.16
+
+ +
val write : t -> string -> unit or_error
+Write the given string into the given file
+Since 0.16
+
+ +
type walk_item = [ `Dir | `File ] * t 
+ + +
val walk : t -> walk_item CCIO.gen
+Similar to CCIO.File.read_dir (with recurse=true), this function walks + a directory recursively and yields either files or directories. + Is a file anything that doesn't satisfy CCIO.File.is_directory (including + symlinks, etc.)
+
+ +
val show_walk_item : walk_item -> string
+
val with_temp : ?temp_dir:string -> prefix:string -> suffix:string -> (string -> 'a) -> 'a
+with_temp ~prefix ~suffix f will call f with the name of a new + temporary file (located in temp_dir). + After f returns, the file is deleted. Best to be used in + combination with CCIO.with_out. + See Filename.temp_file
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCIO.html b/0.17/CCIO.html new file mode 100644 index 00000000..ac579b26 --- /dev/null +++ b/0.17/CCIO.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIO + + + +

Module CCIO

+ +
module CCIO: sig .. end
+

IO Utils

+

+ +Simple utilities to deal with basic Input/Output tasks in a resource-safe +way. For advanced IO tasks, the user is advised to use something +like Lwt or Async, that are far more comprehensive. +

+ +Examples: +

+

+ +
# let l = CCIO.(with_in "/tmp/some_file" read_lines);;
+
+

+

+ +
# CCIO.(
+  with_in "/tmp/input"
+    (fun ic ->
+      let chunks = read_chunks ic in
+      with_out ~flags:[Open_binary] ~mode:0o644 "/tmp/output"
+        (fun oc ->
+          write_gen oc chunks
+        )
+    )
+) ;;
+

+Before 0.12 was in 'containers.io', now moved into 'containers'
+Since 0.6
+
+
+ +
type 'a gen = unit -> 'a option 
+
+See Gen in the gen library
+
+ +
+

Input


+ +
val with_in : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> (Pervasives.in_channel -> 'a) -> 'a
+Open an input file with the given optional flag list, calls the function + on the input channel. When the function raises or returns, the + channel is closed.
+
+
flags : opening flags (default [Open_text]). Open_rdonly is used in any cases
+ +
val read_chunks : ?size:int -> Pervasives.in_channel -> string gen
+Read the channel's content into chunks of size size
+
+ +
val read_line : Pervasives.in_channel -> string option
+Read a line from the channel. Returns None if the input is terminated. + The "\n" is removed from the line.
+
+ +
val read_lines : Pervasives.in_channel -> string gen
+Read all lines. The generator should be traversed only once.
+
+ +
val read_lines_l : Pervasives.in_channel -> string list
+Read all lines into a list
+
+ +
val read_all : ?size:int -> Pervasives.in_channel -> string
+Read the whole channel into a buffer, then converted into a string.
+Since 0.7
+
+
size : the internal buffer size
+ +
val read_all_bytes : ?size:int -> Pervasives.in_channel -> Bytes.t
+Read the whole channel into a mutable byte array
+Since 0.12
+
+
size : the internal buffer size
+
+

Output


+ +
val with_out : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> (Pervasives.out_channel -> 'a) -> 'a
+Same as CCIO.with_in but for an output channel
+
+
flags : opening flags (default [Open_creat; Open_trunc; Open_text]). + Open_wronly is used in any cases
+ +
val with_out_a : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> (Pervasives.out_channel -> 'a) -> 'a
+Similar to CCIO.with_out but with the [Open_append; Open_creat; Open_wronly] + flags activated, to append to the file
+
+ +
val write_line : Pervasives.out_channel -> string -> unit
+Write the given string on the channel, followed by "\n"
+
+ +
val write_gen : ?sep:string -> Pervasives.out_channel -> string gen -> unit
+Write the given strings on the output. If provided, add sep between + every two strings (but not at the end)
+
+ +
val write_lines : Pervasives.out_channel -> string gen -> unit
+Write every string on the output, followed by "\n".
+
+ +
val write_lines_l : Pervasives.out_channel -> string list -> unit

+

Both


+ +
val with_in_out : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> (Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> 'a
+Combines CCIO.with_in and CCIO.with_out.
+Since 0.12
+
+
flags : opening flags (default [Open_creat])
+
+

Misc for Generators


+ +
val tee : ('a -> unit) list -> 'a gen -> 'a gen
+tee funs gen behaves like gen, but each element is given to + every function f in funs at the time the element is produced.
+
+
+

File and file names

+

+ +How to list recursively files in a directory: +

# let files = CCIO.File.read_dir ~recurse:true (CCIO.File.make "/tmp");;
+# CCIO.write_lines stdout files;;
+
+

+ +See CCIO.File.walk if you also need to list directories: +

+ +

# let content = CCIO.File.walk (CCIO.File.make "/tmp");;
+# Gen.map CCIO.File.show_walk_item content |> CCIO.write_lines stdout;;
+

+ +
module File: sig .. end
\ No newline at end of file diff --git a/0.17/CCImmutArray.html b/0.17/CCImmutArray.html new file mode 100644 index 00000000..e327c190 --- /dev/null +++ b/0.17/CCImmutArray.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCImmutArray + + + +

Module CCImmutArray

+ +
module CCImmutArray: sig .. end
+

Immutable Arrays

+

+ + Purely functional use of arrays. Update is costly, but reads are very fast. + Sadly, it is not possible to make this type covariant without using black + magic.
+Since 0.17
+

+
+ +
type 'a t 
+
+Array of values of type 'a. The underlying type really is + an array, but it will never be modified. +

+ + It should be covariant but OCaml will not accept it.
+

+ + +
val empty : 'a t
+
val length : 'a t -> int
+
val singleton : 'a -> 'a t
+
val doubleton : 'a -> 'a -> 'a t
+
val make : int -> 'a -> 'a t
+make n x makes an array of n times x
+
+ +
val init : int -> (int -> 'a) -> 'a t
+init n f makes the array [| f 0; f 1; ... ; f (n-1) |].
+Raises Invalid_argument if n < 0
+
+ +
val get : 'a t -> int -> 'a
+Access the element
+
+ +
val set : 'a t -> int -> 'a -> 'a t
+Copy the array and modify its copy
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+
val mapi : (int -> 'a -> 'b) -> 'a t -> 'b t
+
val append : 'a t -> 'a t -> 'a t
+
val iter : ('a -> unit) -> 'a t -> unit
+
val iteri : (int -> 'a -> unit) -> 'a t -> unit
+
val foldi : ('a -> int -> 'b -> 'a) -> 'a -> 'b t -> 'a
+
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+
val for_all : ('a -> bool) -> 'a t -> bool
+
val exists : ('a -> bool) -> 'a t -> bool

+

Conversions


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
val of_list : 'a list -> 'a t
+
val to_list : 'a t -> 'a list
+
val of_array_unsafe : 'a array -> 'a t
+Take ownership of the given array. Careful, the array must NOT + be modified afterwards!
+
+ +
val to_seq : 'a t -> 'a sequence
+
val of_seq : 'a sequence -> 'a t
+
val of_gen : 'a gen -> 'a t
+
val to_gen : 'a t -> 'a gen

+

IO


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val print : ?start:string ->
?stop:string ->
?sep:string ->
'a printer -> 'a t printer
\ No newline at end of file diff --git a/0.17/CCInt.Infix.html b/0.17/CCInt.Infix.html new file mode 100644 index 00000000..aff84a90 --- /dev/null +++ b/0.17/CCInt.Infix.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt.Infix + + + +

Module CCInt.Infix

+ +
module Infix: sig .. end
+

Infix Operators


+Since 0.17
+
+
+ +
val (=) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ +
val (<>) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ +
val (<) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ +
val (>) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ +
val (<=) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ +
val (>=) : CCInt.t -> CCInt.t -> bool
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCInt.html b/0.17/CCInt.html new file mode 100644 index 00000000..86242f0a --- /dev/null +++ b/0.17/CCInt.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt + + + +

Module CCInt

+ +
module CCInt: sig .. end
+

Basic Int functions


+
+
+ +
type t = int 
+ + +
val compare : t -> t -> int
+
val equal : t -> t -> bool
+
val hash : t -> int
+
val sign : t -> int
+sign i is one of -1, 0, 1
+
+ +
val neg : t -> t
+neg i = - i
+Since 0.5
+
+ +
val pow : t -> t -> t
+pow a b = a^b for positive integers a and b. + Raises Invalid_argument if a = b = 0 or b < 0.
+Since 0.11
+
+ +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val random : int -> t random_gen
+
val random_small : t random_gen
+
val random_range : int -> int -> t random_gen
+
val pp : t printer
+
val print : t formatter
+
val to_string : t -> string
+Since 0.13
+
+ +
val of_string : string -> t option
+Since 0.13
+
+ +
val min : t -> t -> t
+Since 0.17
+
+ +
val max : t -> t -> t
+Since 0.17
+
+ +
module Infix: sig .. end
+Infix Operators +
+ +
include CCInt.Infix
+ \ No newline at end of file diff --git a/0.17/CCInt64.html b/0.17/CCInt64.html new file mode 100644 index 00000000..12eade46 --- /dev/null +++ b/0.17/CCInt64.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt64 + + + +

Module CCInt64

+ +
module CCInt64: sig .. end
+

Int64

+

+ + Helpers for in64.
+Since 0.13
+

+
+ +
type t = int64 
+ + +
val (+) : t -> t -> t
+
val (-) : t -> t -> t
+
val (~-) : t -> t
+
val ( * ) : t -> t -> t
+
val (/) : t -> t -> t
+
val (mod) : t -> t -> t
+
val abs : t -> t
+
val max_int : t
+
val min_int : t
+
val (land) : t -> t -> t
+
val (lor) : t -> t -> t
+
val (lxor) : t -> t -> t
+
val lnot : t -> t
+
val (lsl) : t -> int -> t
+
val (lsr) : t -> int -> t
+
val (asr) : t -> int -> t
+
val equal : t -> t -> bool
+
val compare : t -> t -> int
+
val hash : t -> int

+

Conversion


+ +
val to_int : t -> int
+
val of_int : int -> t option
+
val of_int_exn : int -> t
+
val to_int32 : t -> int32
+
val of_int32 : int32 -> t option
+
val of_int32_exn : int32 -> t
+
val to_nativeint : t -> nativeint
+
val of_nativeint : nativeint -> t option
+
val of_nativeint_exn : nativeint -> t
+
val to_float : t -> float
+
val of_float : float -> t option
+
val of_float_exn : float -> t
+
val to_string : t -> string
+
val of_string : string -> t option
+
val of_string_exn : string -> t
\ No newline at end of file diff --git a/0.17/CCIntMap.html b/0.17/CCIntMap.html new file mode 100644 index 00000000..25686a86 --- /dev/null +++ b/0.17/CCIntMap.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIntMap + + + +

Module CCIntMap

+ +
module CCIntMap: sig .. end
+

Map specialized for Int keys

+

+ +status: stable
+Since 0.10
+

+
+ +
type 'a t 
+ + +
val empty : 'a t
+
val singleton : int -> 'a -> 'a t
+
val doubleton : int -> 'a -> int -> 'a -> 'a t
+
val mem : int -> 'a t -> bool
+
val find : int -> 'a t -> 'a option
+
val find_exn : int -> 'a t -> 'a
+Same as CCIntMap.find but unsafe
+Raises Not_found if key not present
+
+ +
val add : int -> 'a -> 'a t -> 'a t
+
val remove : int -> 'a t -> 'a t
+
val equal : eq:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+equal ~eq a b checks whether a and b have the same set of pairs + (key, value), comparing values with eq
+Since 0.13
+
+ +
val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
+Total order between maps; the precise order is unspecified .
+Since 0.13
+
+ +
val update : int -> ('a option -> 'a option) -> 'a t -> 'a t
+
val cardinal : 'a t -> int
+Number of bindings in the map. Linear time
+
+ +
val iter : (int -> 'a -> unit) -> 'a t -> unit
+
val fold : (int -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
+
val mapi : (int -> 'a -> 'b) -> 'a t -> 'b t
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Since 0.17
+
+ +
val choose : 'a t -> (int * 'a) option
+
val choose_exn : 'a t -> int * 'a
+Raises Not_found if not pair was found
+
+ +
val union : (int -> 'a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
+
val inter : (int -> 'a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t

+

Whole-collection operations


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
val add_list : 'a t -> (int * 'a) list -> 'a t
+
val of_list : (int * 'a) list -> 'a t
+
val to_list : 'a t -> (int * 'a) list
+
val add_seq : 'a t -> (int * 'a) sequence -> 'a t
+
val of_seq : (int * 'a) sequence -> 'a t
+
val to_seq : 'a t -> (int * 'a) sequence
+
val keys : 'a t -> int sequence
+
val values : 'a t -> 'a sequence
+
val add_gen : 'a t -> (int * 'a) gen -> 'a t
+Since 0.13
+
+ +
val of_gen : (int * 'a) gen -> 'a t
+Since 0.13
+
+ +
val to_gen : 'a t -> (int * 'a) gen
+Since 0.13
+
+ +
val add_klist : 'a t -> (int * 'a) klist -> 'a t
+Since 0.13
+
+ +
val of_klist : (int * 'a) klist -> 'a t
+Since 0.13
+
+ +
val to_klist : 'a t -> (int * 'a) klist
+Since 0.13
+
+ +
type 'a tree = unit -> [ `Nil | `Node of 'a * 'a tree list ] 
+ + +
val as_tree : 'a t -> [ `Leaf of int * 'a | `Node of int * int ] tree

+

IO


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val print : 'a printer -> 'a t printer
+Since 0.13
+
+
+Helpers
+
+Helpers
+ \ No newline at end of file diff --git a/0.17/CCKList.Infix.html b/0.17/CCKList.Infix.html new file mode 100644 index 00000000..c6166dd5 --- /dev/null +++ b/0.17/CCKList.Infix.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.Infix + + + +

Module CCKList.Infix

+ +
module Infix: sig .. end

+ +
val (>>=) : 'a CCKList.t -> ('a -> 'b CCKList.t) -> 'b CCKList.t
+
val (>|=) : 'a CCKList.t -> ('a -> 'b) -> 'b CCKList.t
+
val (<*>) : ('a -> 'b) CCKList.t -> 'a CCKList.t -> 'b CCKList.t
+
val (>>-) : 'a CCKList.t -> ('a -> 'b CCKList.t) -> 'b CCKList.t
+
val (<.>) : ('a -> 'b) CCKList.t -> 'a CCKList.t -> 'b CCKList.t
+
val (--) : int -> int -> int CCKList.t
+
val (--^) : int -> int -> int CCKList.t
\ No newline at end of file diff --git a/0.17/CCKList.MONAD.html b/0.17/CCKList.MONAD.html new file mode 100644 index 00000000..f397ff7b --- /dev/null +++ b/0.17/CCKList.MONAD.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.MONAD + + + +

Module type CCKList.MONAD

+ +
module type MONAD = sig .. end
+

Monadic Operations


+
+
+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCKList.Traverse.html b/0.17/CCKList.Traverse.html new file mode 100644 index 00000000..95acbdc2 --- /dev/null +++ b/0.17/CCKList.Traverse.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.Traverse + + + +

Functor CCKList.Traverse

+ +
module Traverse (M : MONAD) : sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
val sequence_m : 'a M.t CCKList.t -> 'a CCKList.t M.t
+
val fold_m : ('b -> 'a -> 'b M.t) -> 'b -> 'a CCKList.t -> 'b M.t
+
val map_m : ('a -> 'b M.t) -> 'a CCKList.t -> 'b CCKList.t M.t
\ No newline at end of file diff --git a/0.17/CCKList.html b/0.17/CCKList.html new file mode 100644 index 00000000..4e46ec04 --- /dev/null +++ b/0.17/CCKList.html @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList + + + +

Module CCKList

+ +
module CCKList: sig .. end
+

Continuation List


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type 'a t = unit -> [ `Cons of 'a * 'a t | `Nil ] 
+ + +
val nil : 'a t
+
val empty : 'a t
+
val cons : 'a -> 'a t -> 'a t
+
val singleton : 'a -> 'a t
+
val repeat : ?n:int -> 'a -> 'a t
+repeat ~n x repeats x n times then stops. If n is omitted, + then x is repeated forever.
+Since 0.3.3
+
+ +
val cycle : 'a t -> 'a t
+Cycle through the iterator infinitely. The iterator shouldn't be empty.
+Since 0.3.3
+
+ +
val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
+unfold f acc calls f acc and: +
+Since 0.13
+
+ +
val is_empty : 'a t -> bool
+
val head : 'a t -> 'a option
+Head of the list
+Since 0.13
+
+ +
val head_exn : 'a t -> 'a
+Unsafe version of CCKList.head
+Since 0.13
+Raises Not_found if the list is empty
+
+ +
val tail : 'a t -> 'a t option
+Tail of the list
+Since 0.13
+
+ +
val tail_exn : 'a t -> 'a t
+Unsafe version of CCKList.tail
+Since 0.13
+Raises Not_found if the list is empty
+
+ +
val equal : 'a equal -> 'a t equal
+Equality step by step. Eager.
+
+ +
val compare : 'a ord -> 'a t ord
+Lexicographic comparison. Eager.
+
+ +
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+Fold on values
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+
val iteri : (int -> 'a -> unit) -> 'a t -> unit
+Iterate with index (starts at 0)
+Since 0.13
+
+ +
val length : 'a t -> int
+Number of elements in the list. + Will not terminate if the list if infinite: + use (for instance) CCKList.take to make the list finite if necessary.
+
+ +
val take : int -> 'a t -> 'a t
+
val take_while : ('a -> bool) -> 'a t -> 'a t
+
val drop : int -> 'a t -> 'a t
+
val drop_while : ('a -> bool) -> 'a t -> 'a t
+
val map : ('a -> 'b) -> 'a t -> 'b t
+
val mapi : (int -> 'a -> 'b) -> 'a t -> 'b t
+Map with index (starts at 0)
+Since 0.13
+
+ +
val fmap : ('a -> 'b option) -> 'a t -> 'b t
+
val filter : ('a -> bool) -> 'a t -> 'a t
+
val append : 'a t -> 'a t -> 'a t
+
val product_with : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+Fair product of two (possibly infinite) lists into a new list. Lazy. + The first parameter is used to combine each pair of elements
+Since 0.3.3
+
+ +
val product : 'a t -> 'b t -> ('a * 'b) t
+Specialization of CCKList.product_with producing tuples
+Since 0.3.3
+
+ +
val group : 'a equal -> 'a t -> 'a t t
+group eq l groups together consecutive elements that satisfy eq. Lazy. + For instance group (=) [1;1;1;2;2;3;3;1] yields + [1;1;1]; [2;2]; [3;3]; [1]
+Since 0.3.3
+
+ +
val uniq : 'a equal -> 'a t -> 'a t
+uniq eq l returns l but removes consecutive duplicates. Lazy. + In other words, if several values that are equal follow one another, + only the first of them is kept.
+Since 0.3.3
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+
val flatten : 'a t t -> 'a t
+
val range : int -> int -> int t
+
val (--) : int -> int -> int t
+a -- b is the range of integers containing + a and b (therefore, never empty)
+
+ +
val (--^) : int -> int -> int t
+a -- b is the integer range from a to b, where b is excluded.
+Since 0.17
+
+
+

Operations on two Collections


+ +
val fold2 : ('acc -> 'a -> 'b -> 'acc) -> 'acc -> 'a t -> 'b t -> 'acc
+Fold on two collections at once. Stop at soon as one of them ends
+
+ +
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+Map on two collections at once. Stop as soon as one of the + arguments is exhausted
+
+ +
val iter2 : ('a -> 'b -> unit) -> 'a t -> 'b t -> unit
+Iterate on two collections at once. Stop as soon as one of them ends
+
+ +
val for_all2 : ('a -> 'b -> bool) -> 'a t -> 'b t -> bool
+
val exists2 : ('a -> 'b -> bool) -> 'a t -> 'b t -> bool
+
val merge : 'a ord -> 'a t -> 'a t -> 'a t
+Merge two sorted iterators into a sorted iterator
+
+ +
val zip : 'a t -> 'b t -> ('a * 'b) t
+Combine elements pairwise. Stops as soon as one of the lists stops.
+Since 0.13
+
+ +
val unzip : ('a * 'b) t -> 'a t * 'b t
+Splits each tuple in the list
+Since 0.13
+
+
+

Misc


+ +
val sort : ?cmp:'a ord -> 'a t -> 'a t
+Eager sort. Requires the iterator to be finite. O(n ln(n)) time + and space.
+Since 0.3.3
+
+ +
val sort_uniq : ?cmp:'a ord -> 'a t -> 'a t
+Eager sort that removes duplicate values. Requires the iterator to be + finite. O(n ln(n)) time and space.
+Since 0.3.3
+
+ +
val memoize : 'a t -> 'a t
+Avoid recomputations by caching intermediate results
+Since 0.14
+
+
+

Fair Combinations


+ +
val interleave : 'a t -> 'a t -> 'a t
+Fair interleaving of both streams.
+Since 0.13
+
+ +
val fair_flat_map : ('a -> 'b t) -> 'a t -> 'b t
+Fair version of CCKList.flat_map.
+Since 0.13
+
+ +
val fair_app : ('a -> 'b) t -> 'a t -> 'b t
+Fair version of CCKList.(<*>)
+Since 0.13
+
+
+

Implementations


+ +
val return : 'a -> 'a t
+
val pure : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val (>>-) : 'a t -> ('a -> 'b t) -> 'b t
+Infix version of CCKList.fair_flat_map
+Since 0.13
+
+ +
val (<.>) : ('a -> 'b) t -> 'a t -> 'b t
+Infix version of CCKList.fair_app
+Since 0.13
+
+
+

Infix operators


+ +
module Infix: sig .. end
+
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
val of_list : 'a list -> 'a t
+
val to_list : 'a t -> 'a list
+Gather all values into a list
+
+ +
val of_array : 'a array -> 'a t
+Iterate on the array
+Since 0.13
+
+ +
val to_array : 'a t -> 'a array
+Convert into array. Iterates twice.
+Since 0.13
+
+ +
val to_rev_list : 'a t -> 'a list
+Convert to a list, in reverse order. More efficient than CCKList.to_list
+
+ +
val to_seq : 'a t -> 'a sequence
+
val to_gen : 'a t -> 'a gen
+
val of_gen : 'a gen -> 'a t
+of_gen g consumes the generator and caches intermediate results
+Since 0.13
+
+
+

IO


+ +
val pp : ?sep:string -> 'a printer -> 'a t printer
+Print the list with the given separator (default ","). + Does not print opening/closing delimiters
+
+ +
val print : ?sep:string -> 'a formatter -> 'a t formatter
+Print the list with the given separator (default ","). + Does not print opening/closing delimiters
+
+ \ No newline at end of file diff --git a/0.17/CCKMP.Make.html b/0.17/CCKMP.Make.html new file mode 100644 index 00000000..5eb4eaed --- /dev/null +++ b/0.17/CCKMP.Make.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.Make + + + +

Functor CCKMP.Make

+ +
module Make (Str : STRING) : S  with type string = Str.t
+ + + + +
Parameters: + + + + +
+Str:STRING +
+
+
+ +
type string 
+ + +
type pattern 
+
+Compiled pattern (needle: string to search in another string)
+
+ + +
val compile : string -> pattern
+Compile a string into a pattern
+
+ +
val find : pattern:pattern -> string -> int -> int option
+find ~pattern s i finds the next occurrence of pattern + in s starting at offset i, and returns it, + or returns None if the pattern doesn't occur.
+
+ +
val search : pattern:pattern -> string -> int option
+search ~pattern s is a shortcut for find ~pattern s 0.
+
+ +
val find_all : pattern:pattern -> string -> int -> int CCKMP.gen
+Generator on all occurrences of the pattern
+
+ +
val seq : pattern:pattern -> string -> int -> int CCKMP.sequence
+iterate on matching positions
+
+
+
One-shot functions that compile the pattern on-the-fly

+ +
val search' : pattern:string -> string -> int option
+
val find_all' : pattern:string -> string -> int CCKMP.gen
+
val seq' : pattern:string -> string -> int CCKMP.sequence
\ No newline at end of file diff --git a/0.17/CCKMP.S.html b/0.17/CCKMP.S.html new file mode 100644 index 00000000..b83154e5 --- /dev/null +++ b/0.17/CCKMP.S.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.S + + + +

Module type CCKMP.S

+ +
module type S = sig .. end

+ +
type string 
+ + +
type pattern 
+
+Compiled pattern (needle: string to search in another string)
+
+ + +
val compile : string -> pattern
+Compile a string into a pattern
+
+ +
val find : pattern:pattern -> string -> int -> int option
+find ~pattern s i finds the next occurrence of pattern + in s starting at offset i, and returns it, + or returns None if the pattern doesn't occur.
+
+ +
val search : pattern:pattern -> string -> int option
+search ~pattern s is a shortcut for find ~pattern s 0.
+
+ +
val find_all : pattern:pattern -> string -> int -> int CCKMP.gen
+Generator on all occurrences of the pattern
+
+ +
val seq : pattern:pattern -> string -> int -> int CCKMP.sequence
+iterate on matching positions
+
+
+
One-shot functions that compile the pattern on-the-fly

+ +
val search' : pattern:string -> string -> int option
+
val find_all' : pattern:string -> string -> int CCKMP.gen
+
val seq' : pattern:string -> string -> int CCKMP.sequence
\ No newline at end of file diff --git a/0.17/CCKMP.STRING.html b/0.17/CCKMP.STRING.html new file mode 100644 index 00000000..e2912bb4 --- /dev/null +++ b/0.17/CCKMP.STRING.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.STRING + + + +

Module type CCKMP.STRING

+ +
module type STRING = sig .. end

+ +
type t 
+ + +
type char 
+ + +
val length : t -> int
+
val get : t -> int -> char
+
val char_equal : char -> char -> bool
\ No newline at end of file diff --git a/0.17/CCKMP.html b/0.17/CCKMP.html new file mode 100644 index 00000000..0613ae85 --- /dev/null +++ b/0.17/CCKMP.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP + + + +

Module CCKMP

+ +
module CCKMP: sig .. end
+

Knuth-Morris-Pratt


+
+
+ +
module type STRING = sig .. end
+
type 'a gen = unit -> 'a option 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
module type S = sig .. end
+
module Make (Str : STRING) : S  with type string = Str.t
+
include CCKMP.S
+ \ No newline at end of file diff --git a/0.17/CCKTree.Dot.html b/0.17/CCKTree.Dot.html new file mode 100644 index 00000000..05dd9f0d --- /dev/null +++ b/0.17/CCKTree.Dot.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree.Dot + + + +

Module CCKTree.Dot

+ +
module Dot: sig .. end

+ +
type attribute = [ `Color of string
| `Id of string
| `Label of string
| `Other of string * string
| `Shape of string
| `Style of string
| `Weight of int ]
+
+Dot attributes for nodes
+
+ + +
type graph = string * attribute list CCKTree.t list 
+
+A dot graph is a name, plus a list of trees labelled with attributes
+
+ + +
val mk_id : ('a, Buffer.t, unit, attribute) Pervasives.format4 -> 'a
+Using a formatter string, build an ID
+
+ +
val mk_label : ('a, Buffer.t, unit, attribute) Pervasives.format4 -> 'a
+Using a formatter string, build a label
+
+ +
val make : name:string -> attribute list CCKTree.t list -> graph
+
val singleton : name:string -> attribute list CCKTree.t -> graph
+
val pp : graph CCKTree.printer
+Print the graph in DOT
+
+ +
val pp_single : string -> attribute list CCKTree.t CCKTree.printer
+
val print : graph CCKTree.formatter
+Printer with indentation, etc.
+Since 0.6.1
+
+ +
val print_to_file : string -> graph -> unit
+print_to_file filename g prints g into a file whose name + is filename.
+Since 0.6.1
+
+ +
val to_file : ?name:string -> string -> attribute list CCKTree.t list -> unit
+to_file filename trees makes a graph out of the trees, opens the + file filename and prints the graph into the file.
+Since 0.6.1
+
+
name : name of the graph
+ \ No newline at end of file diff --git a/0.17/CCKTree.html b/0.17/CCKTree.html new file mode 100644 index 00000000..a6a829ca --- /dev/null +++ b/0.17/CCKTree.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree + + + +

Module CCKTree

+ +
module CCKTree: sig .. end
+

Lazy Tree Structure

+This structure can be used to represent trees and directed +graphs (as infinite trees) in a lazy fashion. Like CCKList, it +is a structural type.
+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type 'a t = unit -> [ `Nil | `Node of 'a * 'a t list ] 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : 'a -> 'a t
+Tree with only one label
+
+ +
val node : 'a -> 'a t list -> 'a t
+Build a node from a label and a list of children
+
+ +
val node1 : 'a -> 'a t -> 'a t
+Node with one child
+
+ +
val node2 : 'a -> 'a t -> 'a t -> 'a t
+Node with two children
+
+ +
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+Fold on values in no specified order. May not terminate if the + tree is infinite.
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+
val size : 'a t -> int
+Number of elements
+
+ +
val height : 'a t -> int
+Length of the longest path to empty leaves
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val cut_depth : int -> 'a t -> 'a t
+Cut the tree at the given depth, so it becomes finite.
+
+
+

Graph Traversals


+ +
class type ['a] pset = object .. end
+Abstract Set structure +
+ +
val set_of_cmp : ?cmp:('a -> 'a -> int) -> unit -> 'a pset
+Build a set structure given a total ordering
+
+ +
val dfs : ?pset:'a pset ->
'a t -> [ `Enter of 'a | `Exit of 'a ] klist
+Depth-first traversal of the tree
+
+ +
val bfs : ?pset:'a pset -> 'a t -> 'a klist
+Breadth-first traversal of the tree
+
+ +
val force : 'a t -> ([ `Nil | `Node of 'a * 'b list ] as 'b)
+force t evaluates t completely and returns a regular tree + structure
+Since 0.13
+
+ +
val find : ?pset:'a pset -> ('a -> 'b option) -> 'a t -> 'b option
+Look for an element that maps to Some _
+
+
+

Pretty-printing

+

+ +Example (tree of calls for naive Fibonacci function): +

  let mk_fib n =
+    let rec fib' l r i =
+      if i=n then r else fib' r (l+r) (i+1)
+    in fib' 1 1 1;;
+
+  let rec fib n = match n with
+    | 0 | 1 -> CCKTree.singleton (`Cst n)
+    | _ -> CCKTree.node2 (`Plus (mk_fib n)) (fib (n-1)) (fib (n-2));;
+
+  let pp_node fmt = function
+    | `Cst n -> Format.fprintf fmt "%d" n
+    | `Plus n -> Format.fprintf fmt "%d" n;;
+
+  Format.printf "%a@." (CCKTree.print pp_node) (fib 8);;
+

+ +
val print : 'a formatter -> 'a t formatter
+A pretty-printer using S-expressions and boxes to render the tree. + Empty nodes are not rendered; sharing is ignored.
+Since 0.9
+
+
+

Pretty printing in the DOT (graphviz) format


+ +
module Dot: sig .. end
\ No newline at end of file diff --git a/0.17/CCKTree.pset-c.html b/0.17/CCKTree.pset-c.html new file mode 100644 index 00000000..47ae33c2 --- /dev/null +++ b/0.17/CCKTree.pset-c.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree.pset + + + +

Class type CCKTree.pset

+ +
class type ['a] pset = object .. end
+Abstract Set structure
+
+
+ +
method add : 'a -> 'a pset
+
method mem : 'a -> bool
\ No newline at end of file diff --git a/0.17/CCLazy_list.Infix.html b/0.17/CCLazy_list.Infix.html new file mode 100644 index 00000000..9ac635d7 --- /dev/null +++ b/0.17/CCLazy_list.Infix.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLazy_list.Infix + + + +

Module CCLazy_list.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : 'a CCLazy_list.t -> ('a -> 'b) -> 'b CCLazy_list.t
+
val (>>=) : 'a CCLazy_list.t -> ('a -> 'b CCLazy_list.t) -> 'b CCLazy_list.t
\ No newline at end of file diff --git a/0.17/CCLazy_list.html b/0.17/CCLazy_list.html new file mode 100644 index 00000000..69fa89fd --- /dev/null +++ b/0.17/CCLazy_list.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLazy_list + + + +

Module CCLazy_list

+ +
module CCLazy_list: sig .. end
+

Lazy List


+Since 0.17
+
+
+ +
type 'a t = 'a node lazy_t 
+ + +
type 'a node = 
+ + + + + + + + + +
+| +Nil
+| +Cons of 'a * 'a t
+ + + +
val empty : 'a t
+Empty list
+
+ +
val return : 'a -> 'a t
+Return a computed value
+
+ +
val is_empty : 'a t -> bool
+Evaluates the head
+
+ +
val length : 'a t -> int
+length l returns the number of elements in l, eagerly (linear time). + Caution, will not terminate if l is infinite
+
+ +
val cons : 'a -> 'a t -> 'a t
+
val head : 'a t -> ('a * 'a t) option
+Evaluate head, return it, or None if the list is empty
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Lazy map
+
+ +
val append : 'a t -> 'a t -> 'a t
+Lazy concatenation
+
+ +
val flat_map : f:('a -> 'b t) -> 'a t -> 'b t
+Monadic flatten + map
+
+ +
module Infix: sig .. end
+
include CCLazy_list.Infix
+ +
type 'a gen = unit -> 'a option 
+ + +
val of_gen : 'a gen -> 'a t
+
val of_list : 'a list -> 'a t
+
val to_list : 'a t -> 'a list
+
val to_list_rev : 'a t -> 'a list
+
val to_gen : 'a t -> 'a gen
\ No newline at end of file diff --git a/0.17/CCLevenshtein.Make.html b/0.17/CCLevenshtein.Make.html new file mode 100644 index 00000000..9050ee11 --- /dev/null +++ b/0.17/CCLevenshtein.Make.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.Make + + + +

Functor CCLevenshtein.Make

+ +
module Make (Str : STRING) : S 
+  with type string_ = Str.t
+  and type char_ = Str.char_
+ + + + +
Parameters: + + + + +
+Str:STRING +
+
+
+ +
type char_ 
+ + +
type string_ 
+ +
+
Edit Distance

+ +
val edit_distance : string_ -> string_ -> int
+Edition distance between two strings. This satisfies the classical + distance axioms: it is always positive, symmetric, and satisfies + the formula distance a b + distance b c >= distance a c
+
+
+
Automaton
+ An automaton, built from a string s and a limit n, that accepts + every string that is at distance at most n from s.
+ +
type automaton 
+
+Levenshtein automaton
+
+ + +
val of_string : limit:int -> string_ -> automaton
+Build an automaton from a string, with a maximal distance limit. + The automaton will accept strings whose CCLevenshtein.S.edit_distance to the + parameter is at most limit.
+
+ +
val of_list : limit:int -> char_ list -> automaton
+Build an automaton from a list, with a maximal distance limit
+
+ +
val debug_print : (Pervasives.out_channel -> char_ -> unit) ->
Pervasives.out_channel -> automaton -> unit
+Output the automaton's structure on the given channel.
+
+ +
val match_with : automaton -> string_ -> bool
+match_with a s matches the string s against a, and returns + true if the distance from s to the word represented by a is smaller + than the limit used to build a
+
+
+
Index for one-to-many matching

+ +
module Index: sig .. end
\ No newline at end of file diff --git a/0.17/CCLevenshtein.S.Index.html b/0.17/CCLevenshtein.S.Index.html new file mode 100644 index 00000000..3b42878c --- /dev/null +++ b/0.17/CCLevenshtein.S.Index.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.S.Index + + + +

Module CCLevenshtein.S.Index

+ +
module Index: sig .. end

+ +
type 'b t 
+
+Index that maps strings to values of type 'b. Internally it is + based on a trie. A string can only map to one value.
+
+ + +
val empty : 'b t
+Empty index
+
+ +
val is_empty : 'a t -> bool
+
val add : 'b t ->
CCLevenshtein.S.string_ -> 'b -> 'b t
+Add a pair string/value to the index. If a value was already present + for this string it is replaced.
+
+ +
val cardinal : 'a t -> int
+Number of bindings
+
+ +
val remove : 'b t ->
CCLevenshtein.S.string_ -> 'b t
+Remove a string (and its associated value, if any) from the index.
+
+ +
val retrieve : limit:int ->
'b t ->
CCLevenshtein.S.string_ -> 'b CCLevenshtein.klist
+Lazy list of objects associated to strings close to the query string
+
+ +
val of_list : (CCLevenshtein.S.string_ * 'b) list -> 'b t
+Build an index from a list of pairs of strings and values
+
+ +
val to_list : 'b t -> (CCLevenshtein.S.string_ * 'b) list
+Extract a list of pairs from an index
+
+ +
val add_seq : 'a t ->
(CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
'a t
+Since 0.14
+
+ +
val of_seq : (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
'a t
+Since 0.14
+
+ +
val to_seq : 'a t ->
(CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence
+Since 0.14
+
+ +
val add_gen : 'a t ->
(CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
'a t
+Since 0.14
+
+ +
val of_gen : (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
'a t
+Since 0.14
+
+ +
val to_gen : 'a t ->
(CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen
+Since 0.14
+
+ +
val fold : ('a -> CCLevenshtein.S.string_ -> 'b -> 'a) ->
'a -> 'b t -> 'a
+Fold over the stored pairs string/value
+
+ +
val iter : (CCLevenshtein.S.string_ -> 'b -> unit) -> 'b t -> unit
+Iterate on the pairs
+
+ +
val to_klist : 'b t ->
(CCLevenshtein.S.string_ * 'b) CCLevenshtein.klist
+Conversion to an iterator
+
+ \ No newline at end of file diff --git a/0.17/CCLevenshtein.S.html b/0.17/CCLevenshtein.S.html new file mode 100644 index 00000000..62439ebd --- /dev/null +++ b/0.17/CCLevenshtein.S.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.S + + + +

Module type CCLevenshtein.S

+ +
module type S = sig .. end

+ +
type char_ 
+ + +
type string_ 
+ +
+
Edit Distance

+ +
val edit_distance : string_ -> string_ -> int
+Edition distance between two strings. This satisfies the classical + distance axioms: it is always positive, symmetric, and satisfies + the formula distance a b + distance b c >= distance a c
+
+
+
Automaton
+ An automaton, built from a string s and a limit n, that accepts + every string that is at distance at most n from s.
+ +
type automaton 
+
+Levenshtein automaton
+
+ + +
val of_string : limit:int -> string_ -> automaton
+Build an automaton from a string, with a maximal distance limit. + The automaton will accept strings whose CCLevenshtein.S.edit_distance to the + parameter is at most limit.
+
+ +
val of_list : limit:int -> char_ list -> automaton
+Build an automaton from a list, with a maximal distance limit
+
+ +
val debug_print : (Pervasives.out_channel -> char_ -> unit) ->
Pervasives.out_channel -> automaton -> unit
+Output the automaton's structure on the given channel.
+
+ +
val match_with : automaton -> string_ -> bool
+match_with a s matches the string s against a, and returns + true if the distance from s to the word represented by a is smaller + than the limit used to build a
+
+
+
Index for one-to-many matching

+ +
module Index: sig .. end
\ No newline at end of file diff --git a/0.17/CCLevenshtein.STRING.html b/0.17/CCLevenshtein.STRING.html new file mode 100644 index 00000000..46691db7 --- /dev/null +++ b/0.17/CCLevenshtein.STRING.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.STRING + + + +

Module type CCLevenshtein.STRING

+ +
module type STRING = sig .. end

+ +
type char_ 
+ + +
type t 
+ + +
val of_list : char_ list -> t
+
val get : t -> int -> char_
+
val length : t -> int
+
val compare_char : char_ -> char_ -> int
\ No newline at end of file diff --git a/0.17/CCLevenshtein.html b/0.17/CCLevenshtein.html new file mode 100644 index 00000000..36fcb6d8 --- /dev/null +++ b/0.17/CCLevenshtein.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein + + + +

Module CCLevenshtein

+ +
module CCLevenshtein: sig .. end
+

Levenshtein distance

+

+ +We take inspiration from +http://blog.notdot.net/2010/07/Damn-Cool-Algorithms-Levenshtein-Automata +for the main algorithm and ideas. However some parts are adapted
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ +
+

Abstraction over Strings

+Due to the existence of several encodings and string representations we +abstract over the type of strings. A string is a finite array of characters +(8-bits char, unicode runes, etc.) which provides a length operation +and a function to access the n-th character.
+ +
module type STRING = sig .. end

+

Continuation list

+

+ +This data structure is used to represent a list of result that is +evaluated only as far as the user wants. If the user only wants a few elements, +she doesn't pay for the remaining ones. +

+ +In particular, when matching a string against a (big) set of indexed +strings, we return a continuation list so that, even if there are many results, +only those actually asked for are evaluated.
+ +

type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
val klist_to_list : 'a klist -> 'a list
+Helper for short lists.
+
+
+

Signature

+

+ +The signature for a given string representation provides 3 main things: +

+

+ +A possible use of the index could be: +
let words = CCIO.with_in "/usr/share/dict/words"
+  (fun i -> CCIO.read_all i |> CCString.Split.list_cpy ~by:"\n");;
+
+let words = List.map (fun s->s,s) words;;
+let idx = CCLevenshtein.Index.of_list words;;
+
+CCLevenshtein.Index.retrieve ~limit:1 idx "hell" |> CCLevenshtein.klist_to_list;;
+

+ +
module type S = sig .. end

+

Functor


+ +
module Make (Str : STRING) : S 
+  with type string_ = Str.t
+  and type char_ = Str.char_

+

Default instance: string


+ +
include CCLevenshtein.S
+ +
val debug_print : Pervasives.out_channel -> automaton -> unit
\ No newline at end of file diff --git a/0.17/CCLinq.AdaptMap.html b/0.17/CCLinq.AdaptMap.html new file mode 100644 index 00000000..abc2ed91 --- /dev/null +++ b/0.17/CCLinq.AdaptMap.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.AdaptMap + + + +

Functor CCLinq.AdaptMap

+ +
module AdaptMap (M : Map.S) : sig .. end
+ + + + +
Parameters: + + + + +
+M:Map.S +
+
+
+ +
val of_map : 'a M.t -> (M.key * 'a) CCLinq.t
+
val to_pmap : 'a M.t -> (M.key, 'a) CCLinq.PMap.t
+
val to_map : (M.key * 'a) CCLinq.t -> 'a M.t CCLinq.t
+
val run : (M.key * 'a) CCLinq.t -> 'a M.t
\ No newline at end of file diff --git a/0.17/CCLinq.AdaptSet.html b/0.17/CCLinq.AdaptSet.html new file mode 100644 index 00000000..62e11c62 --- /dev/null +++ b/0.17/CCLinq.AdaptSet.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.AdaptSet + + + +

Functor CCLinq.AdaptSet

+ +
module AdaptSet (S : Set.S) : sig .. end
+ + + + +
Parameters: + + + + +
+S:Set.S +
+
+
+ +
val of_set : S.t -> S.elt CCLinq.t
+
val to_set : S.elt CCLinq.t -> S.t CCLinq.t
+
val run : S.elt CCLinq.t -> S.t
\ No newline at end of file diff --git a/0.17/CCLinq.Array.html b/0.17/CCLinq.Array.html new file mode 100644 index 00000000..9803addd --- /dev/null +++ b/0.17/CCLinq.Array.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.Array + + + +

Module CCLinq.Array

+ +
module Array: sig .. end

+ +
val of_array : 'a array -> 'a CCLinq.t
+
val to_array : 'a CCLinq.t -> 'a array CCLinq.t
+
val run : 'a CCLinq.t -> 'a array
\ No newline at end of file diff --git a/0.17/CCLinq.IO.html b/0.17/CCLinq.IO.html new file mode 100644 index 00000000..5088a9cc --- /dev/null +++ b/0.17/CCLinq.IO.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.IO + + + +

Module CCLinq.IO

+ +
module IO: sig .. end

+ +
val slurp : Pervasives.in_channel -> string CCLinq.t
+Slurp the whole channel in (blocking), returning the + corresponding string. The channel will be read at most once + during execution, and its content cached; however the channel + might never get read because evaluation is lazy.
+
+ +
val slurp_file : string -> string CCLinq.t
+Read a whole file (given by name) and return its content as + a string
+
+ +
val lines : string CCLinq.t -> string CCLinq.t
+Convert a string into a collection of lines
+
+ +
val lines' : string CCLinq.t -> string list CCLinq.t
+Convert a string into a list of lines
+
+ +
val join : string -> string CCLinq.t -> string CCLinq.t
+
val unlines : string CCLinq.t -> string CCLinq.t
+Join lines together
+
+ +
val out : Pervasives.out_channel -> string CCLinq.t -> unit
+
val out_lines : Pervasives.out_channel -> string CCLinq.t -> unit
+Evaluate the query and print it line by line on the output
+
+
+
Run methods

+ +
val to_file : string -> string CCLinq.t -> unit CCLinq.with_err
+
val to_file_exn : string -> string CCLinq.t -> unit
+
val to_file_lines : string -> string CCLinq.t -> unit CCLinq.with_err
+
val to_file_lines_exn : string -> string CCLinq.t -> unit
\ No newline at end of file diff --git a/0.17/CCLinq.Infix.html b/0.17/CCLinq.Infix.html new file mode 100644 index 00000000..ac3c4d94 --- /dev/null +++ b/0.17/CCLinq.Infix.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.Infix + + + +

Module CCLinq.Infix

+ +
module Infix: sig .. end

+ +
val (>>=) : 'a CCLinq.t -> ('a -> 'b CCLinq.t) -> 'b CCLinq.t
+
val (>|=) : 'a CCLinq.t -> ('a -> 'b) -> 'b CCLinq.t
+
val (<*>) : ('a -> 'b) CCLinq.t -> 'a CCLinq.t -> 'b CCLinq.t
+
val (--) : int -> int -> int CCLinq.t
\ No newline at end of file diff --git a/0.17/CCLinq.List.html b/0.17/CCLinq.List.html new file mode 100644 index 00000000..1282faaa --- /dev/null +++ b/0.17/CCLinq.List.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.List + + + +

Module CCLinq.List

+ +
module List: sig .. end

+ +
val of_list : 'a list -> 'a CCLinq.t
+
val to_list : 'a CCLinq.t -> 'a list CCLinq.t
+
val run : 'a CCLinq.t -> 'a list
\ No newline at end of file diff --git a/0.17/CCLinq.PMap.html b/0.17/CCLinq.PMap.html new file mode 100644 index 00000000..63ef68a1 --- /dev/null +++ b/0.17/CCLinq.PMap.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.PMap + + + +

Module CCLinq.PMap

+ +
module PMap: sig .. end
+

Polymorphic Maps


+
+
+ +
type ('a, 'b) t 
+ + +
val get : ('a, 'b) t -> 'a -> 'b option
+
val size : ('a, 'b) t -> int
+
val to_seq : ('a, 'b) t -> ('a * 'b) CCLinq.sequence
+
val map : ('b -> 'c) -> ('a, 'b) t -> ('a, 'c) t
+Transform values
+
+ +
val to_list : ('a, 'b) t -> ('a * 'b) list
+
val reverse : ?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
unit -> ('a, 'b) t -> ('b, 'a list) t
+Reverse relation of the map, as a multimap
+
+ +
val reverse_multimap : ?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
unit -> ('a, 'b list) t -> ('b, 'a list) t
+Reverse relation of the multimap
+
+ +
val fold : ('acc -> 'a -> 'b -> 'acc) -> 'acc -> ('a, 'b) t -> 'acc
+Fold on the items of the map
+
+ +
val fold_multimap : ('acc -> 'a -> 'b -> 'acc) -> 'acc -> ('a, 'b list) t -> 'acc
+Fold on the items of the multimap
+
+ +
val get_seq : 'a -> ('a, 'b) t -> 'b CCLinq.sequence
+Select a key from a map and wrap into sequence
+
+ +
val iter : ('a, 'b) t -> ('a * 'b) CCLinq.sequence
+View a multimap as a proper collection
+
+ +
val flatten : ('a, 'b CCLinq.sequence) t -> ('a * 'b) CCLinq.sequence
+View a multimap as a collection of individual key/value pairs
+
+ +
val flatten_l : ('a, 'b list) t -> ('a * 'b) CCLinq.sequence
+View a multimap as a list of individual key/value pairs
+
+ \ No newline at end of file diff --git a/0.17/CCLinq.html b/0.17/CCLinq.html new file mode 100644 index 00000000..d8dafda6 --- /dev/null +++ b/0.17/CCLinq.html @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq + + + +

Module CCLinq

+ +
module CCLinq: sig .. end
+Deprecated.use OLinq (once released) +

+ +

CCLinq.(
+  of_list [1;2;3]
+  |> flat_map (fun x -> Sequence.(x -- (x+10)))
+  |> sort ()
+  |> count ()
+  |> flat_map PMap.to_seq
+  |> List.run
+);;
+- : (int * int) list = [(13, 1); (12, 2); (11, 3); (10, 3); (9, 3);
+    (8, 3); (7, 3); (6, 3); (5, 3); (4, 3); (3, 3); (2, 2); (1, 1)]
+
+
+CCLinq.(
+  IO.slurp_file "/tmp/foo"
+  |> IO.lines
+  |> sort ()
+  |> IO.to_file_lines "/tmp/bar"
+);;
+- :  `Ok ()
+
+

+ +DEPRECATED, use "OLinq" (standalone library) instead +

+ +status: deprecated
+

LINQ-like operations on collections

+

+ +The purpose is to provide powerful combinators to express iteration, +transformation and combination of collections of items. This module depends +on several other modules, including CCList and CCSequence. +

+ +Functions and operations are assumed to be referentially transparent, i.e. +they should not rely on external side effects, they should not rely on +the order of execution.
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a hash = 'a -> int 
+ + +
type 'a with_err = [ `Error of string | `Ok of 'a ] 
+ + +
module PMap: sig .. end
+Polymorphic Maps +
+
+

Query operators


+ +
type 'a t 
+
+Type of a query that returns zero, one or more values of type 'a
+
+ +
+
Initial values

+ +
val empty : 'a t
+Empty collection
+
+ +
val start : 'a -> 'a t
+Deprecated.since 0.13, use CCLinq.return instead
+Start with a single value
+
+ +
val return : 'a -> 'a t
+Return one value
+
+ +
val of_list : 'a list -> 'a t
+Query that just returns the elements of the list
+
+ +
val of_array : 'a array -> 'a t
+
val of_array_i : 'a array -> (int * 'a) t
+
val range : int -> int -> int t
+range i j goes from i up to j included
+
+ +
val (--) : int -> int -> int t
+Synonym to CCLinq.range
+
+ +
val of_hashtbl : ('a, 'b) Hashtbl.t -> ('a * 'b) t
+
val of_seq : 'a sequence -> 'a t
+Query that returns the elements of the given sequence.
+
+ +
val of_queue : 'a Queue.t -> 'a t
+
val of_stack : 'a Stack.t -> 'a t
+
val of_string : string -> char t
+Traverse the characters of the string
+
+
+
Execution

+ +
val run : ?limit:int -> 'a t -> 'a sequence
+Execute the query, possibly returning an error if things go wrong
+
+
limit : max number of values to return
+ +
val run1 : 'a t -> 'a
+Run the query and return the first value
+Raises Not_found if the query succeeds with 0 element
+
+ +
val run_no_optim : ?limit:int -> 'a t -> 'a sequence
+Run without any optimization
+
+
+
Basics

+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map each value
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix synonym of CCLinq.map
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+Filter out values that do not satisfy predicate
+
+ +
val size : 'a t -> int t
+size t returns one value, the number of items returned by t
+
+ +
val choose : 'a t -> 'a t
+Choose one element (if any, otherwise empty) in the collection. + This is like a "cut" in prolog.
+
+ +
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+Filter and map elements at once
+
+ +
val flat_map : ('a -> 'b sequence) -> 'a t -> 'b t
+Same as CCLinq.flat_map but using sequences
+
+ +
val flat_map_l : ('a -> 'b list) -> 'a t -> 'b t
+map each element to a collection and flatten the result
+
+ +
val flatten : 'a list t -> 'a t
+
val flatten_seq : 'a sequence t -> 'a t
+
val take : int -> 'a t -> 'a t
+Take at most n elements
+
+ +
val take_while : ('a -> bool) -> 'a t -> 'a t
+Take elements while they satisfy a predicate
+
+ +
val sort : ?cmp:'a ord -> unit -> 'a t -> 'a t
+Sort items by the given comparison function
+
+ +
val distinct : ?cmp:'a ord -> unit -> 'a t -> 'a t
+Remove duplicate elements from the input collection. + All elements in the result are distinct.
+
+
+
Aggregation

+ +
val group_by : ?cmp:'b ord ->
?eq:'b equal ->
?hash:'b hash ->
('a -> 'b) -> 'a t -> ('b, 'a list) PMap.t t
+group_by f takes a collection c as input, and returns + a multimap m such that for each x in c, + x occurs in m under the key f x. In other words, f is used + to obtain a key from x, and x is added to the multimap using this key.
+
+ +
val group_by' : ?cmp:'b ord ->
?eq:'b equal ->
?hash:'b hash -> ('a -> 'b) -> 'a t -> ('b * 'a list) t
+
val count : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash ->
unit -> 'a t -> ('a, int) PMap.t t
+count c returns a map from elements of c to the number + of time those elements occur.
+
+ +
val count' : ?cmp:'a ord -> unit -> 'a t -> ('a * int) t
+
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b t
+Fold over the collection
+
+ +
val reduce : ('a -> 'b) -> ('a -> 'b -> 'b) -> ('b -> 'c) -> 'a t -> 'c t
+reduce start mix stop q uses start on the first element of q, + and combine the result with following elements using mix. The final + value is transformed using stop.
+
+ +
val is_empty : 'a t -> bool t
+
val sum : int t -> int t
+
val contains : ?eq:'a equal -> 'a -> 'a t -> bool t
+
val average : int t -> int t
+
val max : int t -> int t
+
val min : int t -> int t
+
val for_all : ('a -> bool) -> 'a t -> bool t
+
val exists : ('a -> bool) -> 'a t -> bool t
+
val find : ('a -> bool) -> 'a t -> 'a option t
+
val find_map : ('a -> 'b option) -> 'a t -> 'b option t

+
Binary Operators

+ +
val join : ?cmp:'key ord ->
?eq:'key equal ->
?hash:'key hash ->
('a -> 'key) ->
('b -> 'key) ->
merge:('key -> 'a -> 'b -> 'c option) ->
'a t -> 'b t -> 'c t
+join key1 key2 ~merge is a binary operation + that takes two collections a and b, projects their + elements resp. with key1 and key2, and combine + values (x,y) from (a,b) with the same key + using merge. If merge returns None, the combination + of values is discarded.
+
+ +
val group_join : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash ->
('b -> 'a) ->
'a t -> 'b t -> ('a, 'b list) PMap.t t
+group_join key2 associates to every element x of + the first collection, all the elements y of the second + collection such that eq x (key y)
+
+ +
val product : 'a t -> 'b t -> ('a * 'b) t
+Cartesian product
+
+ +
val append : 'a t -> 'a t -> 'a t
+Append two collections together
+
+ +
val inter : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Intersection of two collections. Each element will occur at most once + in the result
+
+ +
val union : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Union of two collections. Each element will occur at most once + in the result
+
+ +
val diff : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Set difference
+
+
+
Tuple and Options

+
+
Tuple and Options

+
+Specialized projection operators
+ +
val fst : ('a * 'b) t -> 'a t
+
val snd : ('a * 'b) t -> 'b t
+
val map1 : ('a -> 'b) -> ('a * 'c) t -> ('b * 'c) t
+
val map2 : ('a -> 'b) -> ('c * 'a) t -> ('c * 'b) t
+
val flatten_opt : 'a option t -> 'a t
+Flatten the collection by removing options
+
+
+
Applicative

+ +
val pure : 'a -> 'a t
+Synonym to CCLinq.return
+
+ +
val app : ('a -> 'b) t -> 'a t -> 'b t
+Apply each function to each value
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+Infix synonym to CCLinq.app
+
+
+
Monad
+

+ +Careful, those operators do not allow any optimization before running the +query, they might therefore be pretty slow.
+ +

val bind : ('a -> 'b t) -> 'a t -> 'b t
+Use the result of a query to build another query and immediately run it.
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Infix version of CCLinq.bind
+
+
+
Misc

+ +
val lazy_ : 'a lazy_t t -> 'a t
+
val opt_unwrap : 'a option t -> 'a t
+
val reflect : 'a t -> 'a sequence t
+reflect q evaluates all values in q and returns a sequence + of all those values. Also blocks optimizations
+
+
+
Infix

+ +
module Infix: sig .. end

+
Adapters

+ +
val to_seq : 'a t -> 'a sequence t
+Build a (re-usable) sequence of elements, which can then be + converted into other structures
+
+ +
val to_hashtbl : ('a * 'b) t -> ('a, 'b) Hashtbl.t t
+Build a hashtable from the collection
+
+ +
val to_queue : 'a t -> 'a Queue.t t
+
val to_stack : 'a t -> 'a Stack.t t
+
module List: sig .. end
+
module Array: sig .. end
+
module AdaptSet (S : Set.S) : sig .. end
+
module AdaptMap (M : Map.S) : sig .. end
+
module IO: sig .. end
\ No newline at end of file diff --git a/0.17/CCList.Assoc.html b/0.17/CCList.Assoc.html new file mode 100644 index 00000000..2b81964f --- /dev/null +++ b/0.17/CCList.Assoc.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Assoc + + + +

Module CCList.Assoc

+ +
module Assoc: sig .. end

+ +
type ('a, 'b) t = ('a * 'b) list 
+ + +
val get : ?eq:('a -> 'a -> bool) -> ('a, 'b) t -> 'a -> 'b option
+Find the element
+
+ +
val get_exn : ?eq:('a -> 'a -> bool) -> ('a, 'b) t -> 'a -> 'b
+Same as get
+Raises Not_found if the element is not present
+
+ +
val set : ?eq:('a -> 'a -> bool) ->
('a, 'b) t -> 'a -> 'b -> ('a, 'b) t
+Add the binding into the list (erase it if already present)
+
+ +
val mem : ?eq:('a -> 'a -> bool) -> ('a, 'b) t -> 'a -> bool
+mem l x returns true iff x is a key in l
+Since 0.16
+
+ +
val update : ?eq:('a -> 'a -> bool) ->
('a, 'b) t ->
'a -> f:('b option -> 'b option) -> ('a, 'b) t
+update l k ~f updates l on the key k, by calling f (get l k) + and removing k if it returns None, mapping k to v' if it + returns Some v'
+Since 0.16
+
+ +
val remove : ?eq:('a -> 'a -> bool) ->
('a, 'b) t -> 'a -> ('a, 'b) t
+remove l k removes the first occurrence of k from l.
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCList.Idx.html b/0.17/CCList.Idx.html new file mode 100644 index 00000000..c5607429 --- /dev/null +++ b/0.17/CCList.Idx.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Idx + + + +

Module CCList.Idx

+ +
module Idx: sig .. end

+ +
val mapi : (int -> 'a -> 'b) -> 'a CCList.t -> 'b CCList.t
+
val iteri : (int -> 'a -> unit) -> 'a CCList.t -> unit
+
val foldi : ('b -> int -> 'a -> 'b) -> 'b -> 'a CCList.t -> 'b
+Fold on list, with index
+
+ +
val get : 'a CCList.t -> int -> 'a option
+
val get_exn : 'a CCList.t -> int -> 'a
+Get the i-th element, or
+Raises Not_found if the index is invalid
+
+ +
val set : 'a CCList.t -> int -> 'a -> 'a CCList.t
+Set i-th element (removes the old one), or does nothing if + index is too high
+
+ +
val insert : 'a CCList.t -> int -> 'a -> 'a CCList.t
+Insert at i-th position, between the two existing elements. If the + index is too high, append at the end of the list
+
+ +
val remove : 'a CCList.t -> int -> 'a CCList.t
+Remove element at given index. Does nothing if the index is + too high.
+
+ \ No newline at end of file diff --git a/0.17/CCList.Infix.html b/0.17/CCList.Infix.html new file mode 100644 index 00000000..de044770 --- /dev/null +++ b/0.17/CCList.Infix.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Infix + + + +

Module CCList.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : 'a CCList.t -> ('a -> 'b) -> 'b CCList.t
+
val (@) : 'a CCList.t -> 'a CCList.t -> 'a CCList.t
+
val (<*>) : ('a -> 'b) CCList.t -> 'a CCList.t -> 'b CCList.t
+
val (<$>) : ('a -> 'b) -> 'a CCList.t -> 'b CCList.t
+
val (>>=) : 'a CCList.t -> ('a -> 'b CCList.t) -> 'b CCList.t
+
val (--) : int -> int -> int CCList.t
+
val (--^) : int -> int -> int CCList.t
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCList.MONAD.html b/0.17/CCList.MONAD.html new file mode 100644 index 00000000..ed80263f --- /dev/null +++ b/0.17/CCList.MONAD.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.MONAD + + + +

Module type CCList.MONAD

+ +
module type MONAD = sig .. end
+

Monadic Operations


+
+
+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCList.Ref.html b/0.17/CCList.Ref.html new file mode 100644 index 00000000..59a524c8 --- /dev/null +++ b/0.17/CCList.Ref.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Ref + + + +

Module CCList.Ref

+ +
module Ref: sig .. end

+ +
type 'a t = 'a list Pervasives.ref 
+ + +
val push : 'a t -> 'a -> unit
+
val pop : 'a t -> 'a option
+
val pop_exn : 'a t -> 'a
+Unsafe version of CCList.Ref.pop.
+Raises Failure if the list is empty
+
+ +
val create : unit -> 'a t
+Create a new list reference
+
+ +
val clear : 'a t -> unit
+Remove all elements
+
+ +
val lift : ('a list -> 'b) -> 'a t -> 'b
+Apply a list function to the content
+
+ +
val push_list : 'a t -> 'a list -> unit
+Add elements of the list at the beginning of the list ref. Elements + at the end of the list will be at the beginning of the list ref
+
+ \ No newline at end of file diff --git a/0.17/CCList.Set.html b/0.17/CCList.Set.html new file mode 100644 index 00000000..e93c8303 --- /dev/null +++ b/0.17/CCList.Set.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Set + + + +

Module CCList.Set

+ +
module Set: sig .. end

+ +
val add : ?eq:('a -> 'a -> bool) -> 'a -> 'a CCList.t -> 'a CCList.t
+add x set adds x to set if it was not already present. Linear time.
+Since 0.11
+
+ +
val remove : ?eq:('a -> 'a -> bool) -> 'a -> 'a CCList.t -> 'a CCList.t
+remove x set removes one occurrence of x from set. Linear time.
+Since 0.11
+
+ +
val mem : ?eq:('a -> 'a -> bool) -> 'a -> 'a CCList.t -> bool
+Membership to the list. Linear time
+
+ +
val subset : ?eq:('a -> 'a -> bool) -> 'a CCList.t -> 'a CCList.t -> bool
+Test for inclusion
+
+ +
val uniq : ?eq:('a -> 'a -> bool) -> 'a CCList.t -> 'a CCList.t
+List uniq. Remove duplicates w.r.t the equality predicate. + Complexity is quadratic in the length of the list, but the order + of elements is preserved. If you wish for a faster de-duplication + but do not care about the order, use CCList.sort_uniq
+
+ +
val union : ?eq:('a -> 'a -> bool) -> 'a CCList.t -> 'a CCList.t -> 'a CCList.t
+List union. Complexity is product of length of inputs.
+
+ +
val inter : ?eq:('a -> 'a -> bool) -> 'a CCList.t -> 'a CCList.t -> 'a CCList.t
+List intersection. Complexity is product of length of inputs.
+
+ \ No newline at end of file diff --git a/0.17/CCList.Traverse.html b/0.17/CCList.Traverse.html new file mode 100644 index 00000000..2c2de5d6 --- /dev/null +++ b/0.17/CCList.Traverse.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Traverse + + + +

Functor CCList.Traverse

+ +
module Traverse (M : MONAD) : sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
val sequence_m : 'a M.t CCList.t -> 'a CCList.t M.t
+
val fold_m : ('b -> 'a -> 'b M.t) -> 'b -> 'a CCList.t -> 'b M.t
+
val map_m : ('a -> 'b M.t) -> 'a CCList.t -> 'b CCList.t M.t
+
val map_m_par : ('a -> 'b M.t) -> 'a CCList.t -> 'b CCList.t M.t
+Same as map_m but map_m_par f (x::l) evaluates f x and + f l "in parallel" before combining their result (for instance + in Lwt).
+
+ \ No newline at end of file diff --git a/0.17/CCList.Zipper.html b/0.17/CCList.Zipper.html new file mode 100644 index 00000000..bcbea1bf --- /dev/null +++ b/0.17/CCList.Zipper.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Zipper + + + +

Module CCList.Zipper

+ +
module Zipper: sig .. end

+ +
type 'a t = 'a list * 'a list 
+
+The pair l, r represents the list List.rev_append l r, but + with the focus on r.
+
+ + +
val empty : 'a t
+Empty zipper
+
+ +
val is_empty : 'a t -> bool
+Empty zipper? Returns true iff the two lists are empty.
+
+ +
val to_list : 'a t -> 'a list
+Convert the zipper back to a list. + to_list (l,r) is List.rev_append l r
+
+ +
val to_rev_list : 'a t -> 'a list
+Convert the zipper back to a reversed list. + In other words, to_list (l,r) is List.rev_append r l
+Since 0.14
+
+ +
val make : 'a list -> 'a t
+Create a zipper pointing at the first element of the list
+
+ +
val left : 'a t -> 'a t
+Go to the left, or do nothing if the zipper is already at leftmost pos
+
+ +
val left_exn : 'a t -> 'a t
+Go to the left, or
+Since 0.14
+Raises Invalid_argument if the zipper is already at leftmost pos
+
+ +
val right : 'a t -> 'a t
+Go to the right, or do nothing if the zipper is already at rightmost pos
+
+ +
val right_exn : 'a t -> 'a t
+Go to the right, or
+Since 0.14
+Raises Invalid_argument if the zipper is already at rightmost pos
+
+ +
val modify : ('a option -> 'a option) -> 'a t -> 'a t
+Modify the current element, if any, by returning a new element, or + returning None if the element is to be deleted
+
+ +
val insert : 'a -> 'a t -> 'a t
+Insert an element at the current position. If an element was focused, + insert x l adds x just before it, and focuses on x
+Since 0.14
+
+ +
val remove : 'a t -> 'a t
+remove l removes the current element, if any.
+Since 0.14
+
+ +
val is_focused : 'a t -> bool
+Is the zipper focused on some element? That is, will CCList.Zipper.focused + return a Some v?
+Since 0.14
+
+ +
val focused : 'a t -> 'a option
+Returns the focused element, if any. focused zip = Some _ iff + empty zip = false
+
+ +
val focused_exn : 'a t -> 'a
+Returns the focused element, or
+Raises Not_found if the zipper is at an end
+
+ +
val drop_before : 'a t -> 'a t
+Drop every element on the "left" (calling CCList.Zipper.left then will do nothing).
+Since 0.14
+
+ +
val drop_after : 'a t -> 'a t
+Drop every element on the "right" (calling CCList.Zipper.right then will do nothing), + keeping the focused element, if any.
+Since 0.14
+
+ +
val drop_after_and_focused : 'a t -> 'a t
+Drop every element on the "right" (calling CCList.Zipper.right then will do nothing), + including the focused element if it is present.
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCList.html b/0.17/CCList.html new file mode 100644 index 00000000..7003def2 --- /dev/null +++ b/0.17/CCList.html @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList + + + +

Module CCList

+ +
module CCList: sig .. end
+

complements to list


+
+
+ +
type 'a t = 'a list 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+is_empty l returns true iff l = []
+Since 0.11
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Safe version of map
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix version of map with reversed arguments
+Since 0.5
+
+ +
val cons : 'a -> 'a t -> 'a t
+cons x l is x::l
+Since 0.12
+
+ +
val append : 'a t -> 'a t -> 'a t
+Safe version of append
+
+ +
val cons_maybe : 'a option -> 'a t -> 'a t
+cons_maybe (Some x) l is x :: l + cons_maybe None l is l
+Since 0.13
+
+ +
val (@) : 'a t -> 'a t -> 'a t
+
val filter : ('a -> bool) -> 'a t -> 'a t
+Safe version of List.filter
+
+ +
val fold_right : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
+Safe version of fold_right
+
+ +
val fold_while : ('a -> 'b -> 'a * [ `Continue | `Stop ]) -> 'a -> 'b t -> 'a
+Fold until a stop condition via ('a, `Stop) is + indicated by the accumulator
+Since 0.8
+
+ +
val fold_map : ('acc -> 'a -> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list
+fold_map f acc l is a fold_left-like function, but it also maps the + list to another list.
+Since 0.14
+
+ +
val fold_map2 : ('acc -> 'a -> 'b -> 'acc * 'c) ->
'acc -> 'a list -> 'b list -> 'acc * 'c list
+fold_map2 is to fold_map what List.map2 is to List.map.
+Since 0.16
+Raises Invalid_argument if the lists do not have the same length
+
+ +
val fold_filter_map : ('acc -> 'a -> 'acc * 'b option) -> 'acc -> 'a list -> 'acc * 'b list
+fold_filter_map f acc l is a fold_left-like function, but also + generates a list of output in a way similar to CCList.filter_map
+Since 0.17
+
+ +
val fold_flat_map : ('acc -> 'a -> 'acc * 'b list) -> 'acc -> 'a list -> 'acc * 'b list
+fold_flat_map f acc l is a fold_left-like function, but it also maps the + list to a list of lists that is then flatten'd..
+Since 0.14
+
+ +
val init : int -> (int -> 'a) -> 'a t
+Similar to Array.init
+Since 0.6
+
+ +
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
+
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+Map and flatten at the same time (safe). Evaluation order is not guaranteed.
+
+ +
val flatten : 'a t t -> 'a t
+Safe flatten
+
+ +
val product : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+Cartesian product of the two lists, with the given combinator
+
+ +
val fold_product : ('c -> 'a -> 'b -> 'c) -> 'c -> 'a t -> 'b t -> 'c
+Fold on the cartesian product
+
+ +
val diagonal : 'a t -> ('a * 'a) t
+All pairs of distinct positions of the list. list_diagonal l will + return the list of List.nth i l, List.nth j l if i < j.
+
+ +
val partition_map : ('a -> [< `Drop | `Left of 'b | `Right of 'c ]) ->
'a list -> 'b list * 'c list
+partition_map f l maps f on l and gather results in lists: +
+Since 0.11
+
+ +
val pure : 'a -> 'a t
+
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val (<$>) : ('a -> 'b) -> 'a t -> 'b t
+
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+
val take : int -> 'a t -> 'a t
+Take the n first elements, drop the rest
+
+ +
val drop : int -> 'a t -> 'a t
+Drop the n first elements, keep the rest
+
+ +
val hd_tl : 'a t -> 'a * 'a t
+hd_tl (x :: l) returns hd, l.
+Since 0.16
+Raises Failure if the list is empty
+
+ +
val take_drop : int -> 'a t -> 'a t * 'a t
+take_drop n l returns l1, l2 such that l1 @ l2 = l and + length l1 = min (length l) n
+
+ +
val take_while : ('a -> bool) -> 'a t -> 'a t
+Since 0.13
+
+ +
val drop_while : ('a -> bool) -> 'a t -> 'a t
+Since 0.13
+
+ +
val split : int -> 'a t -> 'a t * 'a t
+Deprecated.since 0.13: conflict with the List.split standard function
+Synonym to CCList.take_drop
+
+ +
val last : int -> 'a t -> 'a t
+last n l takes the last n elements of l (or less if + l doesn't have that many elements
+
+ +
val find_pred : ('a -> bool) -> 'a t -> 'a option
+find_pred p l finds the first element of l that satisfies p, + or returns None if no element satisfies p
+Since 0.11
+
+ +
val find_pred_exn : ('a -> bool) -> 'a t -> 'a
+Unsafe version of CCList.find_pred
+Since 0.11
+Raises Not_found if no such element is found
+
+ +
val find_map : ('a -> 'b option) -> 'a t -> 'b option
+find_map f l traverses l, applying f to each element. If for + some element x, f x = Some y, then Some y is returned. Otherwise + the call returns None
+Since 0.11
+
+ +
val find : ('a -> 'b option) -> 'a list -> 'b option
+Deprecated.since 0.11 in favor of CCList.find_map, for the name is too confusing
+
+ +
val find_mapi : (int -> 'a -> 'b option) -> 'a t -> 'b option
+Like CCList.find_map, but also pass the index to the predicate function.
+Since 0.11
+
+ +
val findi : (int -> 'a -> 'b option) -> 'a t -> 'b option
+Deprecated.since 0.11 in favor of CCList.find_mapi, name is too confusing
+Since 0.3.4
+
+ +
val find_idx : ('a -> bool) -> 'a t -> (int * 'a) option
+find_idx p x returns Some (i,x) where x is the i-th element of l, + and p x holds. Otherwise returns None
+
+ +
val remove : ?eq:('a -> 'a -> bool) -> x:'a -> 'a t -> 'a t
+remove ~x l removes every instance of x from l. Tailrec.
+Since 0.11
+
+
eq : equality function
+ +
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+Map and remove elements at the same time
+
+ +
val sorted_merge : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
+Merges elements from both sorted list
+
+ +
val sort_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list
+Sort the list and remove duplicate elements
+
+ +
val sorted_merge_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
+sorted_merge_uniq l1 l2 merges the sorted lists l1 and l2 and + removes duplicates
+Since 0.10
+
+ +
val is_sorted : ?cmp:('a -> 'a -> int) -> 'a list -> bool
+is_sorted l returns true iff l is sorted (according to given order)
+Since 0.17
+
+
cmp : the comparison function (default Pervasives.compare)
+ +
val sorted_insert : ?cmp:('a -> 'a -> int) -> ?uniq:bool -> 'a -> 'a list -> 'a list
+sorted_insert x l inserts x into l such that, if l was sorted, + then sorted_insert x l is sorted too.
+Since 0.17
+
+
uniq : if true and x is already in sorted position in l, then + x is not duplicated. Default false (x will be inserted in any case).
+ +
val uniq_succ : ?eq:('a -> 'a -> bool) -> 'a list -> 'a list
+uniq_succ l removes duplicate elements that occur one next to the other. + Examples: + uniq_succ [1;2;1] = [1;2;1] + uniq_succ [1;1;2] = [1;2]
+Since 0.10
+
+ +
val group_succ : ?eq:('a -> 'a -> bool) -> 'a list -> 'a list list
+group_succ ~eq l groups together consecutive elements that are equal + according to eq
+Since 0.11
+
+
+

Indices


+ +
module Idx: sig .. end

+

Set Operators


+ +
module Set: sig .. end

+

Other Constructors


+ +
val range : int -> int -> int t
+range i j iterates on integers from i to j included . It works + both for decreasing and increasing ranges
+
+ +
val range' : int -> int -> int t
+Same as CCList.range but the second bound is excluded. + For instance range' 0 5 = [0;1;2;3;4]
+
+ +
val (--) : int -> int -> int t
+Infix alias for range
+
+ +
val (--^) : int -> int -> int t
+Infix alias for range'
+Since 0.17
+
+ +
val replicate : int -> 'a -> 'a t
+Replicate the given element n times
+
+ +
val repeat : int -> 'a t -> 'a t
+Concatenate the list with itself n times
+
+
+

Association Lists


+ +
module Assoc: sig .. end

+

Zipper


+ +
module Zipper: sig .. end

+

References on Lists


+ +
module Ref: sig .. end
+
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val random : 'a random_gen -> 'a t random_gen
+
val random_non_empty : 'a random_gen -> 'a t random_gen
+
val random_len : int -> 'a random_gen -> 'a t random_gen
+
val random_choose : 'a t -> 'a random_gen
+Randomly choose an element in the list.
+Raises Not_found if the list is empty
+
+ +
val random_sequence : 'a random_gen t -> 'a t random_gen
+
val to_seq : 'a t -> 'a sequence
+
val of_seq : 'a sequence -> 'a t
+
val to_gen : 'a t -> 'a gen
+
val of_gen : 'a gen -> 'a t
+
val to_klist : 'a t -> 'a klist
+
val of_klist : 'a klist -> 'a t

+

Infix Operators

+ It is convenient to open CCList.Infix to access the infix operators + without cluttering the scope too much.
+ +
module Infix: sig .. end

+

IO


+ +
val pp : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> 'a t printer
+
val print : ?start:string ->
?stop:string ->
?sep:string -> 'a formatter -> 'a t formatter
\ No newline at end of file diff --git a/0.17/CCLock.LockRef.html b/0.17/CCLock.LockRef.html new file mode 100644 index 00000000..3da37179 --- /dev/null +++ b/0.17/CCLock.LockRef.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLock.LockRef + + + +

Module CCLock.LockRef

+ +
module LockRef: sig .. end
+Type allowing to manipulate the lock as a reference
+Since 0.13
+
+
+ +
type 'a t 
+ + +
val get : 'a t -> 'a
+
val set : 'a t -> 'a -> unit
+
val update : 'a t -> ('a -> 'a) -> unit
\ No newline at end of file diff --git a/0.17/CCLock.html b/0.17/CCLock.html new file mode 100644 index 00000000..1ac9d342 --- /dev/null +++ b/0.17/CCLock.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLock + + + +

Module CCLock

+ +
module CCLock: sig .. end
+

Utils around Mutex

+

+ + A value wrapped into a Mutex, for more safety.
+Since 0.8
+

+
+ +
type 'a t 
+
+A value surrounded with a lock
+
+ + +
val create : 'a -> 'a t
+Create a new protected value
+
+ +
val with_lock : 'a t -> ('a -> 'b) -> 'b
+with_lock l f runs f x where x is the value protected with + the lock l, in a critical section. If f x fails, with_lock l f + fails too but the lock is released
+
+ +
module LockRef: sig .. end
+Type allowing to manipulate the lock as a reference +
+ +
val with_lock_as_ref : 'a t -> f:('a LockRef.t -> 'b) -> 'b
+with_lock_as_ref l f calls f with a reference-like object + that allows to manipulate the value of l safely. + The object passed to f must not escape the function call
+Since 0.13
+
+ +
val update : 'a t -> ('a -> 'a) -> unit
+update l f replaces the content x of l with f x, atomically
+
+ +
val update_map : 'a t -> ('a -> 'a * 'b) -> 'b
+update_map l f computes x', y = f (get l), then puts x' in l + and returns y
+Since 0.16
+
+ +
val mutex : 'a t -> Mutex.t
+Underlying mutex
+
+ +
val get : 'a t -> 'a
+Get the value in the lock. The value that is returned isn't protected!
+
+ +
val set : 'a t -> 'a -> unit
+Atomically set the value
+Since 0.13
+
+ +
val incr : int t -> unit
+Atomically increment the value
+Since 0.13
+
+ +
val decr : int t -> unit
+Atomically decrement the value
+Since 0.13
+
+ +
val incr_then_get : int t -> int
+incr_then_get x increments x, and return its new value
+Since 0.16
+
+ +
val get_then_incr : int t -> int
+get_then_incr x increments x, and return its previous value
+Since 0.16
+
+ +
val decr_then_get : int t -> int
+decr_then_get x decrements x, and return its new value
+Since 0.16
+
+ +
val get_then_decr : int t -> int
+get_then_decr x decrements x, and return its previous value
+Since 0.16
+
+ +
val get_then_set : bool t -> bool
+get_then_set b sets b to true, and return the old value
+Since 0.16
+
+ +
val get_then_clear : bool t -> bool
+get_then_clear b sets b to false, and return the old value
+Since 0.16
+
+ \ No newline at end of file diff --git a/0.17/CCMap.Make.html b/0.17/CCMap.Make.html new file mode 100644 index 00000000..9f2c9f44 --- /dev/null +++ b/0.17/CCMap.Make.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap.Make + + + +

Functor CCMap.Make

+ +
module Make (O : Map.OrderedType) : S 
+  with type 'a t = 'a Map.Make(O).t
+   and type key = O.t
+ + + + +
Parameters: + + + + +
+O:Map.OrderedType +
+
+
+ +
include Map.S
+ +
val get : key -> 'a t -> 'a option
+Safe version of find
+
+ +
val get_or : key -> 'a t -> or_:'a -> 'a
+get_or k m ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in m)
+Since 0.16
+
+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+update k f m calls f (Some v) if find k m = v, + otherwise it calls f None. In any case, if the result is None + k is removed from m, and if the result is Some v' then + add k v' m is returned.
+
+ +
val merge_safe : f:(key -> [ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
'a t -> 'b t -> 'c t
+merge_safe ~f a b merges the maps a and b together.
+Since 0.17
+
+ +
val of_seq : (key * 'a) CCMap.sequence -> 'a t
+
val add_seq : 'a t -> (key * 'a) CCMap.sequence -> 'a t
+Since 0.14
+
+ +
val to_seq : 'a t -> (key * 'a) CCMap.sequence
+
val of_list : (key * 'a) list -> 'a t
+
val add_list : 'a t -> (key * 'a) list -> 'a t
+Since 0.14
+
+ +
val keys : 'a t -> key CCMap.sequence
+Iterate on keys only
+Since 0.15
+
+ +
val values : 'a t -> 'a CCMap.sequence
+Iterate on values only
+Since 0.15
+
+ +
val to_list : 'a t -> (key * 'a) list
+
val pp : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string -> key CCMap.printer -> 'a CCMap.printer -> 'a t CCMap.printer
+
val print : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string ->
key CCMap.formatter -> 'a CCMap.formatter -> 'a t CCMap.formatter
\ No newline at end of file diff --git a/0.17/CCMap.S.html b/0.17/CCMap.S.html new file mode 100644 index 00000000..e9a64c5a --- /dev/null +++ b/0.17/CCMap.S.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap.S + + + +

Module type CCMap.S

+ +
module type S = sig .. end

+ +
include Map.S
+ +
val get : key -> 'a t -> 'a option
+Safe version of find
+
+ +
val get_or : key -> 'a t -> or_:'a -> 'a
+get_or k m ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in m)
+Since 0.16
+
+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+update k f m calls f (Some v) if find k m = v, + otherwise it calls f None. In any case, if the result is None + k is removed from m, and if the result is Some v' then + add k v' m is returned.
+
+ +
val merge_safe : f:(key -> [ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
'a t -> 'b t -> 'c t
+merge_safe ~f a b merges the maps a and b together.
+Since 0.17
+
+ +
val of_seq : (key * 'a) CCMap.sequence -> 'a t
+
val add_seq : 'a t -> (key * 'a) CCMap.sequence -> 'a t
+Since 0.14
+
+ +
val to_seq : 'a t -> (key * 'a) CCMap.sequence
+
val of_list : (key * 'a) list -> 'a t
+
val add_list : 'a t -> (key * 'a) list -> 'a t
+Since 0.14
+
+ +
val keys : 'a t -> key CCMap.sequence
+Iterate on keys only
+Since 0.15
+
+ +
val values : 'a t -> 'a CCMap.sequence
+Iterate on values only
+Since 0.15
+
+ +
val to_list : 'a t -> (key * 'a) list
+
val pp : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string -> key CCMap.printer -> 'a CCMap.printer -> 'a t CCMap.printer
+
val print : ?start:string ->
?stop:string ->
?arrow:string ->
?sep:string ->
key CCMap.formatter -> 'a CCMap.formatter -> 'a t CCMap.formatter
\ No newline at end of file diff --git a/0.17/CCMap.html b/0.17/CCMap.html new file mode 100644 index 00000000..9588ecb6 --- /dev/null +++ b/0.17/CCMap.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap + + + +

Module CCMap

+ +
module CCMap: sig .. end
+

Extensions of Standard Map

+

+ + Provide useful functions and iterators on Map.S
+Since 0.5
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
module type S = sig .. end
+
module Make (O : Map.OrderedType) : S 
+  with type 'a t = 'a Map.Make(O).t
+   and type key = O.t
\ No newline at end of file diff --git a/0.17/CCMixmap.Make.html b/0.17/CCMixmap.Make.html new file mode 100644 index 00000000..204c3d29 --- /dev/null +++ b/0.17/CCMixmap.Make.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.Make + + + +

Functor CCMixmap.Make

+ +
module Make (X : ORD) : S  with type key = X.t
+ + + + +
Parameters: + + + + +
+X:ORD +
+
+
+ +
type key 
+ + +
type t 
+
+A map containing values of different types, indexed by CCMixmap.S.key.
+
+ + +
val empty : t
+Empty map
+
+ +
val get : inj:'a CCMixmap.injection -> key -> t -> 'a option
+Get the value corresponding to this key, if it exists and + belongs to the same key
+
+ +
val add : inj:'a CCMixmap.injection ->
key -> 'a -> t -> t
+Bind the key to the value, using inj
+
+ +
val find : inj:'a CCMixmap.injection -> key -> t -> 'a
+Find the value for the given key, which must be of the right type.
+Raises Not_found if either the key is not found, or if its value + doesn't belong to the right type
+
+ +
val cardinal : t -> int
+Number of bindings
+
+ +
val remove : key -> t -> t
+Remove the binding for this key
+
+ +
val mem : inj:'a CCMixmap.injection -> key -> t -> bool
+Is the given key in the map, with the right type?
+
+ +
val iter_keys : f:(key -> unit) -> t -> unit
+Iterate on the keys of this map
+
+ +
val fold_keys : f:('a -> key -> 'a) -> x:'a -> t -> 'a
+Fold over the keys
+
+
+

Iterators


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
val keys_seq : t -> key sequence
+All the keys
+
+ +
val bindings_of : inj:'a CCMixmap.injection ->
t -> (key * 'a) sequence
+All the bindings that come from the corresponding injection
+
+ +
type value = 
+ + + + +
+| +Value : ('a CCMixmap.injection -> 'a option) -> value
+ + + +
val bindings : t -> (key * value) sequence
+Iterate on all bindings
+
+ \ No newline at end of file diff --git a/0.17/CCMixmap.ORD.html b/0.17/CCMixmap.ORD.html new file mode 100644 index 00000000..10059b72 --- /dev/null +++ b/0.17/CCMixmap.ORD.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.ORD + + + +

Module type CCMixmap.ORD

+ +
module type ORD = sig .. end

+ +
type t 
+ + +
val compare : t -> t -> int
\ No newline at end of file diff --git a/0.17/CCMixmap.S.html b/0.17/CCMixmap.S.html new file mode 100644 index 00000000..6df203ee --- /dev/null +++ b/0.17/CCMixmap.S.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.S + + + +

Module type CCMixmap.S

+ +
module type S = sig .. end

+ +
type key 
+ + +
type t 
+
+A map containing values of different types, indexed by CCMixmap.S.key.
+
+ + +
val empty : t
+Empty map
+
+ +
val get : inj:'a CCMixmap.injection -> key -> t -> 'a option
+Get the value corresponding to this key, if it exists and + belongs to the same key
+
+ +
val add : inj:'a CCMixmap.injection ->
key -> 'a -> t -> t
+Bind the key to the value, using inj
+
+ +
val find : inj:'a CCMixmap.injection -> key -> t -> 'a
+Find the value for the given key, which must be of the right type.
+Raises Not_found if either the key is not found, or if its value + doesn't belong to the right type
+
+ +
val cardinal : t -> int
+Number of bindings
+
+ +
val remove : key -> t -> t
+Remove the binding for this key
+
+ +
val mem : inj:'a CCMixmap.injection -> key -> t -> bool
+Is the given key in the map, with the right type?
+
+ +
val iter_keys : f:(key -> unit) -> t -> unit
+Iterate on the keys of this map
+
+ +
val fold_keys : f:('a -> key -> 'a) -> x:'a -> t -> 'a
+Fold over the keys
+
+
+

Iterators


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
val keys_seq : t -> key sequence
+All the keys
+
+ +
val bindings_of : inj:'a CCMixmap.injection ->
t -> (key * 'a) sequence
+All the bindings that come from the corresponding injection
+
+ +
type value = 
+ + + + +
+| +Value : ('a CCMixmap.injection -> 'a option) -> value
+ + + +
val bindings : t -> (key * value) sequence
+Iterate on all bindings
+
+ \ No newline at end of file diff --git a/0.17/CCMixmap.html b/0.17/CCMixmap.html new file mode 100644 index 00000000..513d61ce --- /dev/null +++ b/0.17/CCMixmap.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap + + + +

Module CCMixmap

+ +
module CCMixmap: sig .. end
+

Maps with Heterogeneous Values

+

+ + status: experimental +

+ +

      module M = CCMixmap.Make(CCInt)
+
+      let inj_int = CCMixmap.create_inj()
+      let inj_str = CCMixmap.create_inj()
+      let inj_list_int = CCMixmap.create_inj()
+
+      let m =
+        M.empty
+        |> M.add ~inj:inj_int 1 1
+        |> M.add ~inj:inj_str 2 "2"
+        |> M.add ~inj:inj_list_int 3 [3;3;3]
+
+      assert (M.get ~inj:inj_int 1 m = Some 1)
+      assert (M.get ~inj:inj_str 1 m = None)
+      assert (M.get ~inj:inj_str 2 m = Some "2")
+      assert (M.get ~inj:inj_int 2 m = None)
+      assert (M.get ~inj:inj_list_int 3 m = Some [3;3;3])
+      assert (M.get ~inj:inj_str 3 m = None)
+    

+Since 0.16 change of API, the map is last argument to + make piping with [|>] easier.
+
+
+ +
type 'a injection 
+
+An accessor for values of type 'a in any map. Values put + in the map using a key can only be retrieved using this + very same key.
+
+ + +
val create_inj : unit -> 'a injection
+Return a value that works for a given type of values. This function is + normally called once for each type of value. Several keys may be + created for the same type, but a value set with a given setter can only be + retrieved with the matching getter. The same key can be reused + across multiple maps (although not in a thread-safe way).
+
+ +
module type S = sig .. end
+
module type ORD = sig .. end
+
module Make (X : ORD) : S  with type key = X.t
\ No newline at end of file diff --git a/0.17/CCMixset.html b/0.17/CCMixset.html new file mode 100644 index 00000000..74bfe467 --- /dev/null +++ b/0.17/CCMixset.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixset + + + +

Module CCMixset

+ +
module CCMixset: sig .. end
+

Set of Heterogeneous Values

+

+ +

      let k1 : int key = newkey () in
+      let k2 : int key = newkey () in
+      let k3 : string key = newkey () in
+      let set =
+        empty
+        |> set ~key:k1 1
+        |> set ~key:k2 2
+        |> set ~key:k3 "3"
+      in
+      assert (get ~key:k1 set = Some 1);
+      assert (get ~key:k2 set = Some 2);
+      assert (get ~key:k3 set = Some "3");
+      ()
+    

+Since 0.11
+
+
+ +
type t 
+
+A set of values of heterogeneous types
+
+ + +
type 'a key 
+
+A unique "key" to access a value of type 'a in a set
+
+ + +
val newkey : unit -> 'a key
+newkey () creates a new unique key that can be used to access + a 'a value in a set. Each key created with newkey is distinct + from any other key, even if they have the same type. +

+ + Not thread-safe.
+

+ +
val empty : t
+Empty set
+
+ +
val set : key:'a key -> 'a -> t -> t
+set ~key v set maps key to v in set. It means that + for every set, get ~key (set ~key v set) = Some v.
+
+ +
val get : key:'a key -> t -> 'a option
+get ~key set obtains the value for key in set, if any.
+
+ +
val get_exn : key:'a key -> t -> 'a
+Same as CCMixset.get, but can fail
+Raises Not_found if the key is not present
+
+ +
val cardinal : t -> int
+Number of mappings
+
+ \ No newline at end of file diff --git a/0.17/CCMixtbl.html b/0.17/CCMixtbl.html new file mode 100644 index 00000000..b2860f1b --- /dev/null +++ b/0.17/CCMixtbl.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixtbl + + + +

Module CCMixtbl

+ +
module CCMixtbl: sig .. end
+

Hash Table with Heterogeneous Keys

+

+ +From https://github.com/mjambon/mixtbl (thanks to him). +Example: +

+ +

let inj_int = CCMixtbl.create_inj () ;;
+
+let tbl = CCMixtbl.create 10 ;;
+
+OUnit.assert_equal None (CCMixtbl.get ~inj:inj_int tbl "a");;
+
+CCMixtbl.set inj_int tbl "a" 1;;
+
+OUnit.assert_equal (Some 1) (CCMixtbl.get ~inj:inj_int tbl "a");;
+
+let inj_string = CCMixtbl.create_inj () ;;
+
+CCMixtbl.set inj_string tbl "b" "Hello";
+
+OUnit.assert_equal (Some "Hello") (CCMixtbl.get inj_string tbl "b");;
+OUnit.assert_equal None (CCMixtbl.get inj_string tbl "a");;
+OUnit.assert_equal (Some 1) (CCMixtbl.get inj_int tbl "a");;
+CCMixtbl.set inj_string tbl "a" "Bye";;
+
+OUnit.assert_equal None (CCMixtbl.get inj_int tbl "a");;
+OUnit.assert_equal (Some "Bye") (CCMixtbl.get inj_string tbl "a");;
+

+Since 0.6
+
+
+ +
type 'a t 
+
+A hash table containing values of different types. + The type parameter 'a represents the type of the keys.
+
+ + +
type 'b injection 
+
+An accessor for values of type 'b in any table. Values put + in the table using a key can only be retrieved using this + very same key.
+
+ + +
val create : int -> 'a t
+create n creates a hash table of initial size n.
+
+ +
val create_inj : unit -> 'b injection
+Return a value that works for a given type of values. This function is + normally called once for each type of value. Several keys may be + created for the same type, but a value set with a given setter can only be + retrieved with the matching getter. The same key can be reused + across multiple tables (although not in a thread-safe way).
+
+ +
val get : inj:'b injection -> 'a t -> 'a -> 'b option
+Get the value corresponding to this key, if it exists and + belongs to the same key
+
+ +
val set : inj:'b injection -> 'a t -> 'a -> 'b -> unit
+Bind the key to the value, using inj
+
+ +
val find : inj:'b injection -> 'a t -> 'a -> 'b
+Find the value for the given key, which must be of the right type.
+Raises Not_found if either the key is not found, or if its value + doesn't belong to the right type
+
+ +
val length : 'a t -> int
+Number of bindings
+
+ +
val clear : 'a t -> unit
+Clear content of the hashtable
+
+ +
val remove : 'a t -> 'a -> unit
+Remove the binding for this key
+
+ +
val copy : 'a t -> 'a t
+Copy of the table
+
+ +
val mem : inj:'b injection -> 'a t -> 'a -> bool
+Is the given key in the table, with the right type?
+
+ +
val iter_keys : 'a t -> ('a -> unit) -> unit
+Iterate on the keys of this table
+
+ +
val fold_keys : 'a t -> 'b -> ('b -> 'a -> 'b) -> 'b
+Fold over the keys
+
+
+

Iterators


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
val keys_seq : 'a t -> 'a sequence
+All the keys
+
+ +
val bindings_of : inj:'b injection -> 'a t -> ('a * 'b) sequence
+All the bindings that come from the corresponding injection
+
+ +
type value = 
+ + + + +
+| +Value : ('b injection -> 'b option) -> value
+ + + +
val bindings : 'a t -> ('a * value) sequence
+Iterate on all bindings
+
+ \ No newline at end of file diff --git a/0.17/CCMonadIO.File.html b/0.17/CCMonadIO.File.html new file mode 100644 index 00000000..58b51c85 --- /dev/null +++ b/0.17/CCMonadIO.File.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.File + + + +

Module CCMonadIO.File

+ +
module File: sig .. end

+ +
type t = string 
+
+A file is always represented by its absolute path
+
+ + +
val to_string : t -> string
+
val make : string -> t
+Build a file representation from a path (absolute or relative)
+
+ +
val exists : t -> bool CCMonadIO.io
+
val is_directory : t -> bool CCMonadIO.io
+
val remove : t -> unit CCMonadIO.io
+
val read_dir : ?recurse:bool ->
t -> t CCMonadIO.Seq.t CCMonadIO.io
+read_dir d returns a sequence of files and directory contained + in the directory d (or an empty stream if d is not a directory)
+
+
recurse : if true (default false), sub-directories are also + explored
+ +
val walk : t ->
([ `Dir | `File ] * t) CCMonadIO.Seq.t CCMonadIO.io
+Similar to CCMonadIO.File.read_dir (with recurse=true), this function walks + a directory recursively and yields either files or directories. + Is a file anything that doesn't satisfy CCMonadIO.File.is_directory (including + symlinks, etc.)
+
+ \ No newline at end of file diff --git a/0.17/CCMonadIO.Raw.html b/0.17/CCMonadIO.Raw.html new file mode 100644 index 00000000..867866e6 --- /dev/null +++ b/0.17/CCMonadIO.Raw.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.Raw + + + +

Module CCMonadIO.Raw

+ +
module Raw: sig .. end
+

Low level access


+
+
+ +
val wrap : (unit -> 'a) -> 'a CCMonadIO.t
+wrap f is the IO action that, when executed, returns f (). + f should be callable as many times as required
+
+ \ No newline at end of file diff --git a/0.17/CCMonadIO.Seq.html b/0.17/CCMonadIO.Seq.html new file mode 100644 index 00000000..ba98fd35 --- /dev/null +++ b/0.17/CCMonadIO.Seq.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.Seq + + + +

Module CCMonadIO.Seq

+ +
module Seq: sig .. end

+ +
type 'a t 
+
+An IO stream of values of type 'a, consumable (iterable only once)
+
+ + +
val map : ('a -> 'b CCMonadIO.io) -> 'a t -> 'b t
+Map values with actions
+
+ +
val map_pure : ('a -> 'b) -> 'a t -> 'b t
+Map values with a pure function
+
+ +
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+
val filter : ('a -> bool) -> 'a t -> 'a t
+
val flat_map : ('a -> 'b t CCMonadIO.io) ->
'a t -> 'b t
+Map each value to a sub sequence of values
+
+ +
val take : int -> 'a t -> 'a t
+
val drop : int -> 'a t -> 'a t
+
val take_while : ('a -> bool CCMonadIO.io) -> 'a t -> 'a t
+
val drop_while : ('a -> bool CCMonadIO.io) -> 'a t -> 'a t
+
val general_iter : ('b -> 'a -> [ `Continue of 'b * 'c option | `Stop ] CCMonadIO.io) ->
'b -> 'a t -> 'c t
+general_iter f acc seq performs a filter_map over seq, + using f. f is given a state and the current value, and + can either return `Stop to indicate it stops traversing, + or `Continue (st, c) where st is the new state and + c an optional output value. + The result is the stream of values output by f
+
+ +
val tee : ('a -> unit CCMonadIO.io) list -> 'a t -> 'a t
+tee funs seq behaves like seq, but each element is given to + every function f in funs. This function f returns an action that + is eagerly executed.
+
+
+
Consume

+ +
val iter : ('a -> 'b CCMonadIO.io) -> 'a t -> unit CCMonadIO.io
+Iterate on the stream, with an action for each element
+
+ +
val length : 'a t -> int CCMonadIO.io
+Length of the stream
+
+ +
val fold : ('b -> 'a -> 'b CCMonadIO.io) -> 'b -> 'a t -> 'b CCMonadIO.io
+fold f acc seq folds over seq, consuming it. Every call to f + has the right to return an IO value.
+
+ +
val fold_pure : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b CCMonadIO.io
+fold f acc seq folds over seq, consuming it. f is pure.
+
+
+
Standard Wrappers

+ +
type 'a step_result = 
+ + + + + + + + + +
+| +Yield of 'a
+| +Stop
+ + + +
type 'a gen = unit -> 'a step_result CCMonadIO.io 
+ + +
val of_fun : 'a gen -> 'a t
+Create a stream from a function that yields an element or stops
+
+ +
val empty : 'a t
+
val singleton : 'a -> 'a t
+
val cons : 'a -> 'a t -> 'a t
+
val of_list : 'a list -> 'a t
+
val of_array : 'a array -> 'a t
+
val chunks : size:int -> Pervasives.in_channel -> string t
+Read the channel's content into chunks of size size
+
+ +
val lines : Pervasives.in_channel -> string t
+Lines of an input channel
+
+ +
val words : string t -> string t
+Split strings into words at " " boundaries. + NOT IMPLEMENTED
+
+ +
val output : ?sep:string ->
Pervasives.out_channel -> string t -> unit CCMonadIO.io
+output oc seq outputs every value of seq into oc, separated + with the optional argument sep (default: None). + It blocks until all values of seq are produced and written to oc.
+
+ \ No newline at end of file diff --git a/0.17/CCMonadIO.html b/0.17/CCMonadIO.html new file mode 100644 index 00000000..8f4971ec --- /dev/null +++ b/0.17/CCMonadIO.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO + + + +

Module CCMonadIO

+ +
module CCMonadIO: sig .. end
+

IO Monad

+

+ +A simple abstraction over blocking IO, with strict evaluation. This is in +no way an alternative to Lwt/Async if you need concurrency.
+Since 0.3.3
+

+
+
+Examples: +

+

+ +
let l = CCIO.((with_in "/tmp/some_file" >>>= read_lines) |> run_exn);;
+
+

+

+ +
# let a = CCIO.(
+  with_in "input" >>>= fun ic ->
+  with_out ~flags:[Open_creat"output" >>>= fun oc ->
+  Seq.chunks 512 ic
+  |> Seq.output oc
+) ;;
+
+# run a;;
+

+ +
type 'a t 
+ + +
type 'a io = 'a t 
+ + +
type 'a with_finalizer 
+
+A value of type 'a with_finalizer is similar to a value 'a t but + also contains a finalizer that must be run to cleanup. + See CCMonadIO.(>>>=) to get rid of it.
+
+ + +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Wait for the result of an action, then use a function to build a + new action and execute it
+
+ +
val return : 'a -> 'a t
+Just return a value
+
+ +
val repeat : int -> 'a t -> 'a list t
+Repeat an IO action as many times as required
+
+ +
val repeat' : int -> 'a t -> unit t
+Same as CCMonadIO.repeat, but ignores the result
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val bind : ?finalize:unit t ->
('a -> 'b t) -> 'a t -> 'b t
+bind f a runs the action a and applies f to its result + to obtain a new action. It then behaves exactly like this new + action.
+
+
finalize : an optional action that is always run after evaluating + the whole action
+ +
val pure : 'a -> 'a t
+
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val lift : ('a -> 'b) -> 'a t -> 'b t
+Synonym to CCMonadIO.map
+
+ +
val lift2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+
val lift3 : ('a -> 'b -> 'c -> 'd) ->
'a t -> 'b t -> 'c t -> 'd t
+
val sequence : 'a t list -> 'a list t
+Runs operations one by one and gather their results
+
+ +
val sequence_map : ('a -> 'b t) -> 'a list -> 'b list t
+Generalization of CCMonadIO.sequence
+
+ +
val fail : string -> 'a t
+fail msg fails with the given message. Running the IO value will + return an `Error variant
+
+
+

Finalizers


+ +
val (>>>=) : 'a with_finalizer -> ('a -> 'b t) -> 'b t
+Same as CCMonadIO.(>>=), but taking the finalizer into account. Once this + IO value is done executing, the finalizer is executed and the resource, + fred.
+
+
+

Running


+ +
val run : 'a t -> 'a or_error
+Run an IO action.
+Returns either `Ok x when x is the successful result of the + computation, or some `Error "message"
+
+ +
exception IO_error of string
+ +
val run_exn : 'a t -> 'a
+Unsafe version of CCMonadIO.run. It assumes non-failure.
+Raises IO_error if the execution didn't go well
+
+ +
val register_printer : (exn -> string option) -> unit
+register_printer p register p as a possible failure printer. + If run a raises an exception e, p e is evaluated. If p e = Some msg + then the error message will be msg, otherwise other printers will + be tried
+
+
+

Standard Wrappers


+
+

Standard Wrappers


+
+
Input

+ +
val with_in : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.in_channel with_finalizer
+Open an input file with the given optional flag list. + It yields a in_channel with a finalizer attached. See CCMonadIO.(>>>=) to + use it.
+
+ +
val read : Pervasives.in_channel -> Bytes.t -> int -> int -> int t
+Read a chunk into the given string
+
+ +
val read_line : Pervasives.in_channel -> string option t
+Read a line from the channel. Returns None if the input is terminated.
+
+ +
val read_lines : Pervasives.in_channel -> string list t
+Read all lines eagerly
+
+ +
val read_all : Pervasives.in_channel -> string t
+Read the whole channel into a buffer, then converted into a string
+
+
+
Output

+ +
val with_out : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.out_channel with_finalizer
+Same as CCMonadIO.with_in but for an output channel
+
+ +
val with_out_a : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.out_channel with_finalizer
+Similar to CCMonadIO.with_out but with the Open_append and Open_creat + flags activated
+
+ +
val write : Pervasives.out_channel -> string -> int -> int -> unit t
+
val write_str : Pervasives.out_channel -> string -> unit t
+
val write_buf : Pervasives.out_channel -> Buffer.t -> unit t
+
val write_line : Pervasives.out_channel -> string -> unit t
+
val flush : Pervasives.out_channel -> unit t

+

Streams

+

+ +Iterators on chunks of bytes, or lines, or any other value using combinators. +Those iterators are usable only once, because their source might +be usable only once (think of a socket)
+ +

module Seq: sig .. end

+
File and file names
+

+ +How to list recursively files in a directory: +

  CCIO.(
+    File.read_dir ~recurse:true (File.make "/tmp")
+    >>= Seq.output ~sep:"\n" stdout
+  ) |> CCIO.run_exn ;;
+
+  
+

+ +See CCMonadIO.File.walk if you also need to list directories.
+ +

module File: sig .. end
+
module Raw: sig .. end
+Low level access +
+ \ No newline at end of file diff --git a/0.17/CCMultiMap.BIDIR.html b/0.17/CCMultiMap.BIDIR.html new file mode 100644 index 00000000..d6f01664 --- /dev/null +++ b/0.17/CCMultiMap.BIDIR.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.BIDIR + + + +

Module type CCMultiMap.BIDIR

+ +
module type BIDIR = sig .. end

+ +
type t 
+ + +
type left 
+ + +
type right 
+ + +
val empty : t
+
val is_empty : t -> bool
+
val add : t ->
left -> right -> t
+Add a binding (left,right)
+
+ +
val remove : t ->
left -> right -> t
+Remove a specific binding
+
+ +
val cardinal_left : t -> int
+Number of distinct left keys
+
+ +
val cardinal_right : t -> int
+Number of distinct right keys
+
+ +
val remove_left : t -> left -> t
+Remove all bindings for the left key
+
+ +
val remove_right : t -> right -> t
+Remove all bindings for the right key
+
+ +
val mem_left : t -> left -> bool
+Is the left key present in at least one pair?
+
+ +
val mem_right : t -> right -> bool
+Is the right key present in at least one pair?
+
+ +
val find_left : t ->
left -> right CCMultiMap.sequence
+Find all bindings for this given left-key
+
+ +
val find_right : t ->
right -> left CCMultiMap.sequence
+Find all bindings for this given right-key
+
+ +
val find1_left : t -> left -> right option
+like CCMultiMap.BIDIR.find_left but returns at most one value
+
+ +
val find1_right : t -> right -> left option
+like CCMultiMap.BIDIR.find_right but returns at most one value
+
+ +
val fold : ('a -> left -> right -> 'a) ->
'a -> t -> 'a
+Fold on pairs
+
+ +
val pairs : t ->
(left * right) CCMultiMap.sequence
+Iterate on pairs
+
+ +
val add_pairs : t ->
(left * right) CCMultiMap.sequence ->
t
+Add pairs
+
+ +
val seq_left : t -> left CCMultiMap.sequence
+
val seq_right : t -> right CCMultiMap.sequence
\ No newline at end of file diff --git a/0.17/CCMultiMap.Make.html b/0.17/CCMultiMap.Make.html new file mode 100644 index 00000000..d62a3ac1 --- /dev/null +++ b/0.17/CCMultiMap.Make.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.Make + + + +

Functor CCMultiMap.Make

+ +
module Make (K : OrderedType)  (V : OrderedType) : S  with type key = K.t and type value = V.t
+ + + + +
Parameters: + + + + + + + +
+K:OrderedType +
+V:OrderedType +
+
+
+ +
type key 
+ + +
type value 
+ + +
type t 
+ + +
val empty : t
+Empty multimap
+
+ +
val is_empty : t -> bool
+Empty multimap?
+
+ +
val add : t -> key -> value -> t
+Add a key/value binding
+
+ +
val remove : t -> key -> value -> t
+Remove the binding
+
+ +
val remove_all : t -> key -> t
+Remove the key from the map
+
+ +
val mem : t -> key -> bool
+Is there a binding for this key?
+
+ +
val find : t -> key -> value list
+List of values for this key
+
+ +
val find_iter : t -> key -> (value -> unit) -> unit
+Iterate on bindings for this key
+
+ +
val count : t -> key -> int
+Number of bindings for this key
+
+ +
val iter : t -> (key -> value -> unit) -> unit
+Iterate on all key/value
+
+ +
val fold : t ->
'a -> ('a -> key -> value -> 'a) -> 'a
+Fold on all key/value
+
+ +
val size : t -> int
+Number of keys
+
+ +
val union : t -> t -> t
+Union of multimaps
+
+ +
val inter : t -> t -> t
+Intersection of multimaps
+
+ +
val diff : t -> t -> t
+Difference of maps, ie bindings of the first that are not + in the second
+
+ +
val equal : t -> t -> bool
+Same multimap
+
+ +
val compare : t -> t -> int
+Total order on multimaps
+
+ +
val submap : t -> t -> bool
+submap m1 m2 is true iff all bindings of m1 are also in m2
+
+ +
val to_seq : t -> (key * value) CCMultiMap.sequence
+
val of_seq : ?init:t ->
(key * value) CCMultiMap.sequence -> t
+
val keys : t -> key CCMultiMap.sequence
+
val values : t -> value CCMultiMap.sequence
+Some values may occur several times
+
+ \ No newline at end of file diff --git a/0.17/CCMultiMap.MakeBidir.html b/0.17/CCMultiMap.MakeBidir.html new file mode 100644 index 00000000..e2bb87c7 --- /dev/null +++ b/0.17/CCMultiMap.MakeBidir.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.MakeBidir + + + +

Functor CCMultiMap.MakeBidir

+ +
module MakeBidir (L : OrderedType)  (R : OrderedType) : BIDIR 
+  with type left = L.t and type right = R.t
+ + + + +
Parameters: + + + + + + + +
+L:OrderedType +
+R:OrderedType +
+
+
+ +
type t 
+ + +
type left 
+ + +
type right 
+ + +
val empty : t
+
val is_empty : t -> bool
+
val add : t ->
left -> right -> t
+Add a binding (left,right)
+
+ +
val remove : t ->
left -> right -> t
+Remove a specific binding
+
+ +
val cardinal_left : t -> int
+Number of distinct left keys
+
+ +
val cardinal_right : t -> int
+Number of distinct right keys
+
+ +
val remove_left : t -> left -> t
+Remove all bindings for the left key
+
+ +
val remove_right : t -> right -> t
+Remove all bindings for the right key
+
+ +
val mem_left : t -> left -> bool
+Is the left key present in at least one pair?
+
+ +
val mem_right : t -> right -> bool
+Is the right key present in at least one pair?
+
+ +
val find_left : t ->
left -> right CCMultiMap.sequence
+Find all bindings for this given left-key
+
+ +
val find_right : t ->
right -> left CCMultiMap.sequence
+Find all bindings for this given right-key
+
+ +
val find1_left : t -> left -> right option
+like CCMultiMap.BIDIR.find_left but returns at most one value
+
+ +
val find1_right : t -> right -> left option
+like CCMultiMap.BIDIR.find_right but returns at most one value
+
+ +
val fold : ('a -> left -> right -> 'a) ->
'a -> t -> 'a
+Fold on pairs
+
+ +
val pairs : t ->
(left * right) CCMultiMap.sequence
+Iterate on pairs
+
+ +
val add_pairs : t ->
(left * right) CCMultiMap.sequence ->
t
+Add pairs
+
+ +
val seq_left : t -> left CCMultiMap.sequence
+
val seq_right : t -> right CCMultiMap.sequence
\ No newline at end of file diff --git a/0.17/CCMultiMap.OrderedType.html b/0.17/CCMultiMap.OrderedType.html new file mode 100644 index 00000000..3e5f48db --- /dev/null +++ b/0.17/CCMultiMap.OrderedType.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.OrderedType + + + +

Module type CCMultiMap.OrderedType

+ +
module type OrderedType = sig .. end

+ +
type t 
+ + +
val compare : t -> t -> int
\ No newline at end of file diff --git a/0.17/CCMultiMap.S.html b/0.17/CCMultiMap.S.html new file mode 100644 index 00000000..faca61df --- /dev/null +++ b/0.17/CCMultiMap.S.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.S + + + +

Module type CCMultiMap.S

+ +
module type S = sig .. end

+ +
type key 
+ + +
type value 
+ + +
type t 
+ + +
val empty : t
+Empty multimap
+
+ +
val is_empty : t -> bool
+Empty multimap?
+
+ +
val add : t -> key -> value -> t
+Add a key/value binding
+
+ +
val remove : t -> key -> value -> t
+Remove the binding
+
+ +
val remove_all : t -> key -> t
+Remove the key from the map
+
+ +
val mem : t -> key -> bool
+Is there a binding for this key?
+
+ +
val find : t -> key -> value list
+List of values for this key
+
+ +
val find_iter : t -> key -> (value -> unit) -> unit
+Iterate on bindings for this key
+
+ +
val count : t -> key -> int
+Number of bindings for this key
+
+ +
val iter : t -> (key -> value -> unit) -> unit
+Iterate on all key/value
+
+ +
val fold : t ->
'a -> ('a -> key -> value -> 'a) -> 'a
+Fold on all key/value
+
+ +
val size : t -> int
+Number of keys
+
+ +
val union : t -> t -> t
+Union of multimaps
+
+ +
val inter : t -> t -> t
+Intersection of multimaps
+
+ +
val diff : t -> t -> t
+Difference of maps, ie bindings of the first that are not + in the second
+
+ +
val equal : t -> t -> bool
+Same multimap
+
+ +
val compare : t -> t -> int
+Total order on multimaps
+
+ +
val submap : t -> t -> bool
+submap m1 m2 is true iff all bindings of m1 are also in m2
+
+ +
val to_seq : t -> (key * value) CCMultiMap.sequence
+
val of_seq : ?init:t ->
(key * value) CCMultiMap.sequence -> t
+
val keys : t -> key CCMultiMap.sequence
+
val values : t -> value CCMultiMap.sequence
+Some values may occur several times
+
+ \ No newline at end of file diff --git a/0.17/CCMultiMap.html b/0.17/CCMultiMap.html new file mode 100644 index 00000000..ecae1be5 --- /dev/null +++ b/0.17/CCMultiMap.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap + + + +

Module CCMultiMap

+ +
module CCMultiMap: sig .. end
+

Multimap


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
module type S = sig .. end
+
module type OrderedType = sig .. end
+
module Make (K : OrderedType)  (V : OrderedType) : S  with type key = K.t and type value = V.t

+

Two-Way Multimap

+Represents n-to-n mappings between two types. Each element from the "left" +is mapped to several right values, and conversely.
+ +
module type BIDIR = sig .. end
+
module MakeBidir (L : OrderedType)  (R : OrderedType) : BIDIR 
+  with type left = L.t and type right = R.t
\ No newline at end of file diff --git a/0.17/CCMultiSet.Make.html b/0.17/CCMultiSet.Make.html new file mode 100644 index 00000000..ea15383e --- /dev/null +++ b/0.17/CCMultiSet.Make.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet.Make + + + +

Functor CCMultiSet.Make

+ +
module Make (O : Set.OrderedType) : S  with type elt = O.t
+ + + + +
Parameters: + + + + +
+O:Set.OrderedType +
+
+
+ +
type elt 
+ + +
type t 
+ + +
val empty : t
+
val is_empty : t -> bool
+
val mem : t -> elt -> bool
+
val count : t -> elt -> int
+
val singleton : elt -> t
+
val add : t -> elt -> t
+
val remove : t -> elt -> t
+
val add_mult : t -> elt -> int -> t
+add_mult set x n adds n occurrences of x to set
+Since 0.6
+Raises Invalid_argument if n < 0
+
+ +
val remove_mult : t -> elt -> int -> t
+remove_mult set x n removes at most n occurrences of x from set
+Since 0.6
+Raises Invalid_argument if n < 0
+
+ +
val update : t -> elt -> (int -> int) -> t
+update set x f calls f n where n is the current multiplicity + of x in set (0 to indicate its absence); the result of f n + is the new multiplicity of x.
+Since 0.6
+Raises Invalid_argument if f n < 0
+
+ +
val min : t -> elt
+Minimal element w.r.t the total ordering on elements
+
+ +
val max : t -> elt
+Maximal element w.r.t the total ordering on elements
+
+ +
val union : t -> t -> t
+union a b contains as many occurrences of an element x + as count a x + count b x.
+
+ +
val meet : t -> t -> t
+meet a b is a multiset such that + count (meet a b) x = max (count a x) (count b x)
+
+ +
val intersection : t -> t -> t
+intersection a b is a multiset such that + count (intersection a b) x = min (count a x) (count b x)
+
+ +
val diff : t -> t -> t
+MultiSet difference. + count (diff a b) x = max (count a x - count b x) 0
+
+ +
val contains : t -> t -> bool
+contains a x = (count m x > 0)
+
+ +
val compare : t -> t -> int
+
val equal : t -> t -> bool
+
val cardinal : t -> int
+Number of distinct elements
+
+ +
val iter : t -> (int -> elt -> unit) -> unit
+
val fold : t -> 'b -> ('b -> int -> elt -> 'b) -> 'b
+
val of_list : elt list -> t
+
val to_list : t -> elt list
+
val to_seq : t -> elt CCMultiSet.sequence
+
val of_seq : elt CCMultiSet.sequence -> t
\ No newline at end of file diff --git a/0.17/CCMultiSet.S.html b/0.17/CCMultiSet.S.html new file mode 100644 index 00000000..f4c1c4af --- /dev/null +++ b/0.17/CCMultiSet.S.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet.S + + + +

Module type CCMultiSet.S

+ +
module type S = sig .. end

+ +
type elt 
+ + +
type t 
+ + +
val empty : t
+
val is_empty : t -> bool
+
val mem : t -> elt -> bool
+
val count : t -> elt -> int
+
val singleton : elt -> t
+
val add : t -> elt -> t
+
val remove : t -> elt -> t
+
val add_mult : t -> elt -> int -> t
+add_mult set x n adds n occurrences of x to set
+Since 0.6
+Raises Invalid_argument if n < 0
+
+ +
val remove_mult : t -> elt -> int -> t
+remove_mult set x n removes at most n occurrences of x from set
+Since 0.6
+Raises Invalid_argument if n < 0
+
+ +
val update : t -> elt -> (int -> int) -> t
+update set x f calls f n where n is the current multiplicity + of x in set (0 to indicate its absence); the result of f n + is the new multiplicity of x.
+Since 0.6
+Raises Invalid_argument if f n < 0
+
+ +
val min : t -> elt
+Minimal element w.r.t the total ordering on elements
+
+ +
val max : t -> elt
+Maximal element w.r.t the total ordering on elements
+
+ +
val union : t -> t -> t
+union a b contains as many occurrences of an element x + as count a x + count b x.
+
+ +
val meet : t -> t -> t
+meet a b is a multiset such that + count (meet a b) x = max (count a x) (count b x)
+
+ +
val intersection : t -> t -> t
+intersection a b is a multiset such that + count (intersection a b) x = min (count a x) (count b x)
+
+ +
val diff : t -> t -> t
+MultiSet difference. + count (diff a b) x = max (count a x - count b x) 0
+
+ +
val contains : t -> t -> bool
+contains a x = (count m x > 0)
+
+ +
val compare : t -> t -> int
+
val equal : t -> t -> bool
+
val cardinal : t -> int
+Number of distinct elements
+
+ +
val iter : t -> (int -> elt -> unit) -> unit
+
val fold : t -> 'b -> ('b -> int -> elt -> 'b) -> 'b
+
val of_list : elt list -> t
+
val to_list : t -> elt list
+
val to_seq : t -> elt CCMultiSet.sequence
+
val of_seq : elt CCMultiSet.sequence -> t
\ No newline at end of file diff --git a/0.17/CCMultiSet.html b/0.17/CCMultiSet.html new file mode 100644 index 00000000..6c28f0b3 --- /dev/null +++ b/0.17/CCMultiSet.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet + + + +

Module CCMultiSet

+ +
module CCMultiSet: sig .. end
+

Multiset


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
module type S = sig .. end
+
module Make (O : Set.OrderedType) : S  with type elt = O.t
\ No newline at end of file diff --git a/0.17/CCOpt.Infix.html b/0.17/CCOpt.Infix.html new file mode 100644 index 00000000..bb10475a --- /dev/null +++ b/0.17/CCOpt.Infix.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOpt.Infix + + + +

Module CCOpt.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : 'a CCOpt.t -> ('a -> 'b) -> 'b CCOpt.t
+
val (>>=) : 'a CCOpt.t -> ('a -> 'b CCOpt.t) -> 'b CCOpt.t
+
val (<*>) : ('a -> 'b) CCOpt.t -> 'a CCOpt.t -> 'b CCOpt.t
+
val (<$>) : ('a -> 'b) -> 'a CCOpt.t -> 'b CCOpt.t
+
val (<+>) : 'a CCOpt.t -> 'a CCOpt.t -> 'a CCOpt.t
\ No newline at end of file diff --git a/0.17/CCOpt.html b/0.17/CCOpt.html new file mode 100644 index 00000000..cfd6f06c --- /dev/null +++ b/0.17/CCOpt.html @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOpt + + + +

Module CCOpt

+ +
module CCOpt: sig .. end
+

Options


+
+
+ +
type 'a t = 'a option 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
+Transform the element inside, if any
+
+ +
val maybe : ('a -> 'b) -> 'b -> 'a t -> 'b
+Deprecated., use CCOpt.map_or
+maybe f x o is x if o is None, + otherwise it's f y if o = Some y
+
+ +
val map_or : default:'b -> ('a -> 'b) -> 'a t -> 'b
+map_or ~default f o is f x if o = Some x, default otherwise
+Since 0.16
+
+ +
val is_some : 'a t -> bool
+
val is_none : 'a t -> bool
+Since 0.11
+
+ +
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
+
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+
val return : 'a -> 'a t
+Monadic return
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix version of CCOpt.map
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Monadic bind
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+Flip version of >>=
+
+ +
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+
val iter : ('a -> unit) -> 'a t -> unit
+Iterate on 0 or 1 element
+
+ +
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+Fold on 0 or 1 element
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+Filter on 0 or 1 element
+Since 0.5
+
+ +
val if_ : ('a -> bool) -> 'a -> 'a option
+if_ f x is Some x if f x, None otherwise
+Since 0.17
+
+ +
val exists : ('a -> bool) -> 'a t -> bool
+Since 0.17
+
+ +
val for_all : ('a -> bool) -> 'a t -> bool
+Since 0.17
+
+ +
val get : 'a -> 'a t -> 'a
+get default x unwraps x, but if x = None it returns default instead.
+Since 0.4.1
+
+ +
val get_exn : 'a t -> 'a
+Open the option, possibly failing if it is None
+Raises Invalid_argument if the option is None
+
+ +
val get_lazy : (unit -> 'a) -> 'a t -> 'a
+get_lazy default_fn x unwraps x, but if x = None it returns default_fn () instead.
+Since 0.6.1
+
+ +
val sequence_l : 'a t list -> 'a list t
+sequence_l [x1; x2; ...; xn] returns Some [y1;y2;...;yn] if + every xi is Some yi. Otherwise, if the list contains at least + one None, the result is None.
+
+ +
val wrap : ?handler:(exn -> bool) -> ('a -> 'b) -> 'a -> 'b option
+wrap f x calls f x and returns Some y if f x = y. If f x raises + any exception, the result is None. This can be useful to wrap functions + such as Map.S.find.
+
+
handler : the exception handler, which returns true if the + exception is to be caught.
+ +
val wrap2 : ?handler:(exn -> bool) -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c option
+wrap2 f x y is similar to wrap1 but for binary functions.
+
+
+

Applicative


+ +
val pure : 'a -> 'a t
+Alias to CCOpt.return
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val (<$>) : ('a -> 'b) -> 'a t -> 'b t

+

Alternatives


+ +
val (<+>) : 'a t -> 'a t -> 'a t
+a <+> b is a if a is Some _, b otherwise
+
+ +
val choice : 'a t list -> 'a t
+choice returns the first non-None element of the list, or None
+
+
+

Infix Operators


+ +
module Infix: sig .. end

+

Conversion and IO


+ +
val to_list : 'a t -> 'a list
+
val of_list : 'a list -> 'a t
+Head of list, or None
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a fmt = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val random : 'a random_gen -> 'a t random_gen
+
val choice_seq : 'a t sequence -> 'a t
+choice_seq s is similar to CCOpt.choice, but works on sequences. + It returns the first Some x occurring in s, or None otherwise.
+Since 0.13
+
+ +
val to_gen : 'a t -> 'a gen
+
val to_seq : 'a t -> 'a sequence
+
val pp : 'a printer -> 'a t printer
+
val print : 'a fmt -> 'a t fmt
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCOrd.html b/0.17/CCOrd.html new file mode 100644 index 00000000..91ec95aa --- /dev/null +++ b/0.17/CCOrd.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOrd + + + +

Module CCOrd

+ +
module CCOrd: sig .. end
+

Comparisons


+
+
+ +
type 'a t = 'a -> 'a -> int 
+
+Comparison (total ordering) between two elements, that returns an int
+
+ + +
val compare : 'a t
+Polymorphic "magic" comparison
+
+ +
val opp : 'a t -> 'a t
+Opposite order
+
+ +
val equiv : int -> int -> bool
+Returns true iff the two comparison results are the same
+
+ +
val int_ : int t
+
val string_ : string t
+
val bool_ : bool t
+
val float_ : float t

+

Lexicographic Combination


+ +
val (<?>) : int -> 'a t * 'a * 'a -> int
+c1 @@? (ord, x, y) returns the same as c1 if c1 is not 0; + otherwise it uses ord to compare the two values x and y, + of type 'a. +

+ + Example: +

CCInt.compare 1 3
+      <?> (String.compare, "a""b")
+      <?> (CCBool.compare, truefalse)

+
+ +
val option : 'a t -> 'a option t
+Comparison of optional values. None is smaller than any Some _.
+Since 0.15
+
+ +
val pair : 'a t -> 'b t -> ('a * 'b) t
+
val triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
+
val list_ : 'a t -> 'a list t
+Lexicographic combination on lists
+
+ +
val array_ : 'a t -> 'a array t
+
val map : ('a -> 'b) -> 'b t -> 'a t
+map f ord is the comparison function that, given objects x and y, + projects x and y using f (e.g. using a record field) and then + compares those projections with ord. + Example: + map fst CCInt.compare compares values of type (int * 'a) by their + first component.
+
+ \ No newline at end of file diff --git a/0.17/CCPair.html b/0.17/CCPair.html new file mode 100644 index 00000000..657a2080 --- /dev/null +++ b/0.17/CCPair.html @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPair + + + +

Module CCPair

+ +
module CCPair: sig .. end
+

Tuple Functions


+
+
+ +
type ('a, 'b) t = 'a * 'b 
+ + +
val make : 'a -> 'b -> ('a, 'b) t
+Make a tuple from its components
+Since 0.16
+
+ +
val map1 : ('a -> 'b) -> 'a * 'c -> 'b * 'c
+
val map2 : ('a -> 'b) -> 'c * 'a -> 'c * 'b
+
val map : ('a -> 'c) -> ('b -> 'd) -> 'a * 'b -> 'c * 'd
+
val map_same : ('a -> 'b) -> 'a * 'a -> 'b * 'b
+
val map_fst : ('a -> 'b) -> 'a * 'c -> 'b
+Compose the given function with fst.
+Since 0.3.3
+
+ +
val map_snd : ('a -> 'b) -> 'c * 'a -> 'b
+Compose the given function with snd.
+Since 0.3.3
+
+ +
val iter : ('a -> 'b -> unit) -> 'a * 'b -> unit
+
val swap : 'a * 'b -> 'b * 'a
+Swap the components of the tuple
+
+ +
val (<<<) : ('a -> 'b) -> 'a * 'c -> 'b * 'c
+Map on the left side of the tuple
+
+ +
val (>>>) : ('a -> 'b) -> 'c * 'a -> 'c * 'b
+Map on the right side of the tuple
+
+ +
val ( *** ) : ('a -> 'c) -> ('b -> 'd) -> 'a * 'b -> 'c * 'd
+Map on both sides of a tuple
+
+ +
val (&&&) : ('a -> 'b) -> ('a -> 'c) -> 'a -> 'b * 'c
+f &&& g is fun x -> f x, g x. It splits the computations into + two parts
+
+ +
val merge : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+Uncurrying (merges the two components of a tuple)
+
+ +
val fold : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+Synonym to CCPair.merge
+Since 0.3.3
+
+ +
val dup : 'a -> 'a * 'a
+dup x = (x,x) (duplicate the value)
+Since 0.3.3
+
+ +
val dup_map : ('a -> 'b) -> 'a -> 'a * 'b
+dup_map f x = (x, f x). Duplicates the value and applies the function + to the second copy.
+Since 0.3.3
+
+ +
val equal : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> 'a * 'b -> 'a * 'b -> bool
+
val compare : ('a -> 'a -> int) -> ('b -> 'b -> int) -> 'a * 'b -> 'a * 'b -> int
+
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val pp : 'a printer -> 'b printer -> ('a * 'b) printer
+
val print : 'a formatter -> 'b formatter -> ('a * 'b) formatter
\ No newline at end of file diff --git a/0.17/CCParse.MemoTbl.html b/0.17/CCParse.MemoTbl.html new file mode 100644 index 00000000..7a34c7af --- /dev/null +++ b/0.17/CCParse.MemoTbl.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse.MemoTbl + + + +

Module CCParse.MemoTbl

+ +
module MemoTbl: sig .. end
+Since 0.13
+
+
+ +
type t 
+ + +
val create : int -> t
+New memoization table
+
+ \ No newline at end of file diff --git a/0.17/CCParse.U.html b/0.17/CCParse.U.html new file mode 100644 index 00000000..4ca28fbb --- /dev/null +++ b/0.17/CCParse.U.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse.U + + + +

Module CCParse.U

+ +
module U: sig .. end

+ +
val list : ?start:string ->
?stop:string -> ?sep:string -> 'a CCParse.t -> 'a list CCParse.t
+list p parses a list of p, with the OCaml conventions for + start token "", stop token "" and separator ";". + Whitespace between items are skipped
+
+ +
val int : int CCParse.t
+
val word : string CCParse.t
+non empty string of alpha num, start with alpha
+
+ +
val map : ('a -> 'b) -> 'a CCParse.t -> 'b CCParse.t
+
val map2 : ('a -> 'b -> 'c) -> 'a CCParse.t -> 'b CCParse.t -> 'c CCParse.t
+
val map3 : ('a -> 'b -> 'c -> 'd) ->
'a CCParse.t -> 'b CCParse.t -> 'c CCParse.t -> 'd CCParse.t
+
val pair : ?start:string ->
?stop:string ->
?sep:string -> 'a CCParse.t -> 'b CCParse.t -> ('a * 'b) CCParse.t
+Parse a pair using OCaml whitespace conventions. + The default is "(a, b)".
+Since 0.14
+
+ +
val triple : ?start:string ->
?stop:string ->
?sep:string ->
'a CCParse.t -> 'b CCParse.t -> 'c CCParse.t -> ('a * 'b * 'c) CCParse.t
+Parse a triple using OCaml whitespace conventions. + The default is "(a, b, c)".
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCParse.html b/0.17/CCParse.html new file mode 100644 index 00000000..74f03658 --- /dev/null +++ b/0.17/CCParse.html @@ -0,0 +1,522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse + + + +

Module CCParse

+ +
module CCParse: sig .. end
+

Very Simple Parser Combinators

+

+ +status still a bit unstable, the type 'a t might still change. +

+ +Examples: +

+ +

parse recursive structures
+

+ +

open Containers_string.Parse;;
+
+type tree = L of int | N of tree * tree;;
+
+let mk_leaf x = L x
+let mk_node x y = N(x,y)
+
+let ptree = fix @@ fun self ->
+  skip_space *>
+  ( (char '(' *> (pure mk_node <*> self <*> self) <* char ')')
+    <|>
+    (U.int >|= mk_leaf) )
+;;
+
+parse_string_exn "(1 (2 3))" ptree;;
+parse_string_exn "((1 2) (3 (4 5)))" ptree;;
+
+
+

+ +

Parse a list of words
+

+ +

open Containers_string.Parse;;
+let p = U.list ~sep:"," U.word;;
+parse_string_exn "[abc , de, hello ,world  ]" p;;
+
+

+ +

Stress Test
+This makes a list of 100_000 integers, prints it and parses it back. +

+ +

let p = CCParse.(U.list ~sep:"," U.int);;
+
+let l = CCList.(1 -- 100_000);;
+let l_printed =
+  CCFormat.to_string (CCList.print ~sep:"," ~start:"[" ~stop:"]" CCInt.print) l;;
+
+let l' = CCParse.parse_string_exn ~p l_printed;;
+
+assert (l=l');;
+

+Since 0.11
+
+
+ +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type line_num = int 
+
+Since 0.13
+
+ + +
type col_num = int 
+
+Since 0.13
+
+ + +
exception ParseError of line_num * col_num * (unit -> string)
+
+position * message +

+ + This type changed at 0.13
+

+
+

Input


+ +
module MemoTbl: sig .. end
+
+ +
type input = {
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   +is_done : unit -> bool;(*
+End of input?
+
+
*)
+   +cur : unit -> char;(*
+Current char
+
+
*)
+   +next : unit -> char;(*
+Returns current char; + if not is_done, move to next char, + otherwise throw ParseError
+
+
*)
+   +pos : unit -> int;(*
+Current pos
+
+
*)
+   +lnum : unit -> line_num;(*
+Line number
+Since 0.13
+
+
*)
+   +cnum : unit -> col_num;(*
+Column number
+Since 0.13
+
+
*)
+   +memo : MemoTbl.t;(*
+Memoization table, if any
+
+
*)
+   +backtrack : int -> unit;(*
+Restore to previous pos
+
+
*)
+   +sub : int -> int -> string;(*
+sub pos len extracts slice from pos with len
+
+
*)
+} + +
+The type of input, which must allow for backtracking somehow. + This type is unstable and its details might change.
+
+ + +
val input_of_string : string -> input
+Parse the string
+
+ +
val input_of_chan : ?size:int -> Pervasives.in_channel -> input
+input_of_chan ic reads lazily the content of ic as parsing goes. + All content that is read is saved to an internal buffer for backtracking.
+Since 0.13
+
+
size : number of bytes read at once from ic
+
+

Combinators


+ +
type 'a t = input -> ok:('a -> unit) -> err:(exn -> unit) -> unit 
+
+Takes the input and two continuations: + + + The type definition changed since 0.14 to avoid stack overflows
+Raises ParseError in case of failure
+
+ + +
val return : 'a -> 'a t
+Always succeeds, without consuming its input
+
+ +
val pure : 'a -> 'a t
+Synonym to CCParse.return
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Map
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Monadic bind
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+Applicative
+
+ +
val ( <* ) : 'a t -> 'b t -> 'a t
+a <* b parses a into x, parses b and ignores its result, + and returns x
+
+ +
val ( *> ) : 'b t -> 'a t -> 'a t
+a *> b parses a, then parses b into x, and returns x. The + results of a is ignored.
+
+ +
val fail : string -> 'a t
+fail msg fails with the given message. It can trigger a backtrack
+
+ +
val eoi : unit t
+Expect the end of input, fails otherwise
+
+ +
val nop : unit t
+Succeed with ()
+
+ +
val char : char -> char t
+char c parses the char c and nothing else
+
+ +
val char_if : (char -> bool) -> char t
+char_if f parses a character c if f c = true
+
+ +
val chars_if : (char -> bool) -> string t
+chars_if f parses a string of chars that satisfy f
+
+ +
val chars1_if : (char -> bool) -> string t
+Same as CCParse.chars_if, but only non-empty strings
+
+ +
val endline : char t
+Parses '\n'
+
+ +
val space : char t
+Tab or space
+
+ +
val white : char t
+Tab or space or newline
+
+ +
val skip_chars : (char -> bool) -> unit t
+Skip 0 or more chars satisfying the predicate
+
+ +
val skip_space : unit t
+Skip ' ' and '\t'
+
+ +
val skip_white : unit t
+Skip ' ' and '\t' and '\n'
+
+ +
val is_alpha : char -> bool
+Is the char a letter?
+
+ +
val is_num : char -> bool
+Is the char a digit?
+
+ +
val is_alpha_num : char -> bool
+
val is_space : char -> bool
+True on ' ' and '\t'
+
+ +
val is_white : char -> bool
+True on ' ' and '\t' and '\n'
+Since 0.13
+
+ +
val (~~~) : (char -> bool) -> char -> bool
+Negation on predicates
+
+ +
val (|||) : (char -> bool) -> (char -> bool) -> char -> bool
+Disjunction on predicates
+
+ +
val (&&&) : (char -> bool) -> (char -> bool) -> char -> bool
+Conjunction on predicates
+
+ +
val (<|>) : 'a t -> 'a t -> 'a t
+a <|> b tries to parse a, and if a fails, backtracks and tries + to parse b. Therefore, it succeeds if either succeeds
+
+ +
val string : string -> string t
+string s parses exactly the string s, and nothing else
+
+ +
val many : 'a t -> 'a list t
+many p parses a list of p, eagerly (as long as possible)
+
+ +
val many1 : 'a t -> 'a list t
+parses a non empty list
+
+ +
val skip : 'a t -> unit t
+skip p parses p and ignores its result
+
+ +
val sep : by:'b t -> 'a t -> 'a list t
+sep ~by p parses a list of p separated by by
+
+ +
val sep1 : by:'b t -> 'a t -> 'a list t
+sep1 ~by p parses a non empty list of p, separated by by
+
+ +
val fix : ('a t -> 'a t) -> 'a t
+Fixpoint combinator
+
+ +
val memo : 'a t -> 'a t
+Memoize the parser. memo p will behave like p, but when called + in a state (read: position in input) it has already processed, memo p + returns a result directly. The implementation uses an underlying + hashtable. + This can be costly in memory, but improve the run time a lot if there + is a lot of backtracking involving p. +

+ + This function is not thread-safe.
+Since 0.13
+

+ +
val fix_memo : ('a t -> 'a t) -> 'a t
+Same as CCParse.fix, but the fixpoint is memoized.
+Since 0.13
+
+
+

Parse

+

+ + Those functions have a label ~p on the parser, since 0.14.
+ +

val parse : input:input -> p:'a t -> 'a or_error
+parse ~input p applies p on the input, and returns `Ok x if + p succeeds with x, or `Error s otherwise
+
+ +
val parse_exn : input:input -> p:'a t -> 'a
+Raises ParseError if it fails
+
+ +
val parse_string : string -> p:'a t -> 'a or_error
+Specialization of CCParse.parse for string inputs
+
+ +
val parse_string_exn : string -> p:'a t -> 'a
+Raises ParseError if it fails
+
+ +
val parse_file : ?size:int -> file:string -> p:'a t -> 'a or_error
+parse_file ~file p parses file with p by opening the file + and using CCParse.input_of_chan.
+Since 0.13
+
+
size : size of chunks read from file
+ +
val parse_file_exn : ?size:int -> file:string -> p:'a t -> 'a
+Unsafe version of CCParse.parse_file
+Since 0.13
+
+
+

Utils


+ +
module U: sig .. end
\ No newline at end of file diff --git a/0.17/CCPersistentArray.html b/0.17/CCPersistentArray.html new file mode 100644 index 00000000..6fd5b273 --- /dev/null +++ b/0.17/CCPersistentArray.html @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentArray + + + +

Module CCPersistentArray

+ +
module CCPersistentArray: sig .. end
+

Persistent Arrays

+

+ +From the paper by Jean-Christophe Filliâtre, +"A persistent Union-Find data structure", see + the ps version
+Since 0.10
+

+
+ +
type 'a t 
+
+The type of persistent arrays
+
+ + +
val make : int -> 'a -> 'a t
+make n x returns a persistent array of length n, with x. All the + elements of this new array are initially physically equal to x + (in the sense of the == predicate). Consequently, if x is mutable, it is + shared among all elements of the array, and modifying x through one of the + array entries will modify all other entries at the same time.
+Raises Invalid_argument if n < 0 or n > Sys.max_array_length. + If the value of x is a floating-point number, then the maximum size is + only Sys.max_array_length / 2.
+
+ +
val init : int -> (int -> 'a) -> 'a t
+make n f returns a persistent array of length n, with element + i initialized to the result of f i.
+Raises Invalid_argument if n < 0 or n > Sys.max_array_length. + If the value of x is a floating-point number, then the maximum size is + only Sys.max_array_length / 2.
+
+ +
val get : 'a t -> int -> 'a
+get a i returns the element with index i from the array a.
+Raises Invalid_argument "index out of bounds" if n is outside the + range 0 to Array.length a - 1.
+
+ +
val set : 'a t -> int -> 'a -> 'a t
+set a i v sets the element index i from the array a to v.
+Raises Invalid_argument "index out of bounds" if n is outside the + range 0 to Array.length a - 1.
+
+ +
val length : 'a t -> int
+Returns the length of the persistent array.
+
+ +
val copy : 'a t -> 'a t
+copy a returns a fresh copy of a. Both copies are independent.
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+
val mapi : (int -> 'a -> 'b) -> 'a t -> 'b t
+Applies the given function to all elements of the array, and returns + a persistent array initialized by the results of f. In the case of mapi, + the function is also given the index of the element. + It is equivalent to fun f t -> init (fun i -> f (get t i)).
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+
val iteri : (int -> 'a -> unit) -> 'a t -> unit
+iter f t applies function f to all elements of the persistent array, + in order from element 0 to element length t - 1.
+
+ +
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+
val fold_right : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'b
+Fold on the elements of the array.
+
+ +
val append : 'a t -> 'a t -> 'a t
+Append the two arrays
+Since 0.13
+
+ +
val flatten : 'a t t -> 'a t
+Concatenates all the sub-arrays
+Since 0.13
+
+ +
val flat_map : ('a -> 'b t) ->
'a t -> 'b t
+Flat map (map + concatenation)
+Since 0.13
+
+ +
val to_array : 'a t -> 'a array
+to_array t returns a mutable copy of t.
+
+ +
val of_array : 'a array -> 'a t
+from_array a returns an immutable copy of a.
+
+ +
val to_list : 'a t -> 'a list
+to_list t returns the list of elements in t.
+
+ +
val of_list : 'a list -> 'a t
+of_list l returns a fresh persistent array containing the elements of l.
+
+ +
val of_rev_list : 'a list -> 'a t
+of_rev_list l is the same as of_list (List.rev l) but more efficient
+Since 0.13
+
+
+

Conversions


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
val to_seq : 'a t -> 'a sequence
+
val of_seq : 'a sequence -> 'a t
+
val of_gen : 'a gen -> 'a t
+Since 0.13
+
+ +
val to_gen : 'a t -> 'a gen
+Since 0.13
+
+
+

IO


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val print : 'a printer ->
'a t printer
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/CCPersistentHashtbl.HashedType.html b/0.17/CCPersistentHashtbl.HashedType.html new file mode 100644 index 00000000..e71a1421 --- /dev/null +++ b/0.17/CCPersistentHashtbl.HashedType.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.HashedType + + + +

Module type CCPersistentHashtbl.HashedType

+ +
module type HashedType = sig .. end

+ +
type t 
+ + +
val equal : t -> t -> bool
+
val hash : t -> int
\ No newline at end of file diff --git a/0.17/CCPersistentHashtbl.Make.html b/0.17/CCPersistentHashtbl.Make.html new file mode 100644 index 00000000..cc780884 --- /dev/null +++ b/0.17/CCPersistentHashtbl.Make.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.Make + + + +

Functor CCPersistentHashtbl.Make

+ +
module Make (H : HashedType) : S  with type key = H.t
+ + + + +
Parameters: + + + + +
+H:HashedType +
+
+
+ +
type key 
+ + +
type 'a t 
+ + +
val empty : unit -> 'a t
+Empty table. The table will be allocated at the first binding
+
+ +
val create : int -> 'a t
+Create a new hashtable, with the given initial capacity
+
+ +
val is_empty : 'a t -> bool
+Is the table empty?
+
+ +
val find : 'a t -> key -> 'a
+Find the value for this key, or fails
+Raises Not_found if the key is not present in the table
+
+ +
val get_exn : key -> 'a t -> 'a
+Synonym to CCPersistentHashtbl.S.find with flipped arguments
+
+ +
val get : key -> 'a t -> 'a option
+Safe version of !
+
+ +
val mem : 'a t -> key -> bool
+Is the key bound?
+
+ +
val length : 'a t -> int
+Number of bindings
+
+ +
val add : 'a t ->
key -> 'a -> 'a t
+Add the binding to the table, returning a new table. The old binding + for this key, if it exists, is shadowed and will be restored upon + remove tbl k.
+Since 0.14
+
+ +
val replace : 'a t ->
key -> 'a -> 'a t
+Add the binding to the table, returning a new table. This erases + the current binding for key, if any.
+
+ +
val update : 'a t ->
key ->
('a option -> 'a option) -> 'a t
+update tbl key f calls f None if key doesn't belong in tbl, + f (Some v) if key -> v otherwise; If f returns None then + key is removed, else it returns Some v' and key -> v' is added.
+
+ +
val remove : 'a t ->
key -> 'a t
+Remove the key
+
+ +
val copy : 'a t -> 'a t
+Fresh copy of the table; the underlying structure is not shared + anymore, so using both tables alternatively will be efficient
+
+ +
val merge : f:(key ->
[ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
'a t ->
'b t -> 'c t
+Merge two tables together into a new table. The function's argument + correspond to values associated with the key (if present); if the + function returns None the key will not appear in the result.
+
+ +
val iter : 'a t ->
(key -> 'a -> unit) -> unit
+Iterate over bindings
+
+ +
val fold : ('b -> key -> 'a -> 'b) ->
'b -> 'a t -> 'b
+Fold over bindings
+
+ +
val map : (key -> 'a -> 'b) ->
'a t -> 'b t
+Map all values
+
+ +
val filter : (key -> 'a -> bool) ->
'a t -> 'a t
+
val filter_map : (key -> 'a -> 'b option) ->
'a t -> 'b t
+
val for_all : (key -> 'a -> bool) ->
'a t -> bool
+
val exists : (key -> 'a -> bool) ->
'a t -> bool

+

Conversions


+ +
val of_seq : (key * 'a) CCPersistentHashtbl.sequence ->
'a t
+Add (replace) bindings from the sequence to the table
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val add_seq : 'a t ->
(key * 'a) CCPersistentHashtbl.sequence ->
'a t
+
val add_list : 'a t ->
(key * 'a) list -> 'a t
+
val to_seq : 'a t ->
(key * 'a) CCPersistentHashtbl.sequence
+Sequence of the bindings of the table
+
+ +
val to_list : 'a t -> (key * 'a) list

+

Misc


+ +
val equal : 'a CCPersistentHashtbl.equal ->
'a t CCPersistentHashtbl.equal
+
val pp : key CCPersistentHashtbl.printer ->
'a CCPersistentHashtbl.printer ->
'a t CCPersistentHashtbl.printer
+
val print : key CCPersistentHashtbl.formatter ->
'a CCPersistentHashtbl.formatter ->
'a t CCPersistentHashtbl.formatter
+
val stats : 'a t -> Hashtbl.statistics
+Statistics on the internal table.
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCPersistentHashtbl.S.html b/0.17/CCPersistentHashtbl.S.html new file mode 100644 index 00000000..2b8c765a --- /dev/null +++ b/0.17/CCPersistentHashtbl.S.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.S + + + +

Module type CCPersistentHashtbl.S

+ +
module type S = sig .. end

+ +
type key 
+ + +
type 'a t 
+ + +
val empty : unit -> 'a t
+Empty table. The table will be allocated at the first binding
+
+ +
val create : int -> 'a t
+Create a new hashtable, with the given initial capacity
+
+ +
val is_empty : 'a t -> bool
+Is the table empty?
+
+ +
val find : 'a t -> key -> 'a
+Find the value for this key, or fails
+Raises Not_found if the key is not present in the table
+
+ +
val get_exn : key -> 'a t -> 'a
+Synonym to CCPersistentHashtbl.S.find with flipped arguments
+
+ +
val get : key -> 'a t -> 'a option
+Safe version of !
+
+ +
val mem : 'a t -> key -> bool
+Is the key bound?
+
+ +
val length : 'a t -> int
+Number of bindings
+
+ +
val add : 'a t ->
key -> 'a -> 'a t
+Add the binding to the table, returning a new table. The old binding + for this key, if it exists, is shadowed and will be restored upon + remove tbl k.
+Since 0.14
+
+ +
val replace : 'a t ->
key -> 'a -> 'a t
+Add the binding to the table, returning a new table. This erases + the current binding for key, if any.
+
+ +
val update : 'a t ->
key ->
('a option -> 'a option) -> 'a t
+update tbl key f calls f None if key doesn't belong in tbl, + f (Some v) if key -> v otherwise; If f returns None then + key is removed, else it returns Some v' and key -> v' is added.
+
+ +
val remove : 'a t ->
key -> 'a t
+Remove the key
+
+ +
val copy : 'a t -> 'a t
+Fresh copy of the table; the underlying structure is not shared + anymore, so using both tables alternatively will be efficient
+
+ +
val merge : f:(key ->
[ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
'a t ->
'b t -> 'c t
+Merge two tables together into a new table. The function's argument + correspond to values associated with the key (if present); if the + function returns None the key will not appear in the result.
+
+ +
val iter : 'a t ->
(key -> 'a -> unit) -> unit
+Iterate over bindings
+
+ +
val fold : ('b -> key -> 'a -> 'b) ->
'b -> 'a t -> 'b
+Fold over bindings
+
+ +
val map : (key -> 'a -> 'b) ->
'a t -> 'b t
+Map all values
+
+ +
val filter : (key -> 'a -> bool) ->
'a t -> 'a t
+
val filter_map : (key -> 'a -> 'b option) ->
'a t -> 'b t
+
val for_all : (key -> 'a -> bool) ->
'a t -> bool
+
val exists : (key -> 'a -> bool) ->
'a t -> bool

+

Conversions


+ +
val of_seq : (key * 'a) CCPersistentHashtbl.sequence ->
'a t
+Add (replace) bindings from the sequence to the table
+
+ +
val of_list : (key * 'a) list -> 'a t
+
val add_seq : 'a t ->
(key * 'a) CCPersistentHashtbl.sequence ->
'a t
+
val add_list : 'a t ->
(key * 'a) list -> 'a t
+
val to_seq : 'a t ->
(key * 'a) CCPersistentHashtbl.sequence
+Sequence of the bindings of the table
+
+ +
val to_list : 'a t -> (key * 'a) list

+

Misc


+ +
val equal : 'a CCPersistentHashtbl.equal ->
'a t CCPersistentHashtbl.equal
+
val pp : key CCPersistentHashtbl.printer ->
'a CCPersistentHashtbl.printer ->
'a t CCPersistentHashtbl.printer
+
val print : key CCPersistentHashtbl.formatter ->
'a CCPersistentHashtbl.formatter ->
'a t CCPersistentHashtbl.formatter
+
val stats : 'a t -> Hashtbl.statistics
+Statistics on the internal table.
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/CCPersistentHashtbl.html b/0.17/CCPersistentHashtbl.html new file mode 100644 index 00000000..3360f320 --- /dev/null +++ b/0.17/CCPersistentHashtbl.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl + + + +

Module CCPersistentHashtbl

+ +
module CCPersistentHashtbl: sig .. end
+

Persistent hash-table on top of OCaml's hashtables

+

+ +Almost as efficient as the regular Hashtbl type, but with a persistent +interface (rewinding changes to get back in the past history). This is +mostly useful for backtracking-like uses, or forward uses (never using +old values). +

+ +This module is not thread-safe.
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
module type HashedType = sig .. end

+

Signature of such a hashtable


+ +
module type S = sig .. end

+

Implementation


+ +
module Make (H : HashedType) : S  with type key = H.t
\ No newline at end of file diff --git a/0.17/CCPool.Make.Fut.Infix.html b/0.17/CCPool.Make.Fut.Infix.html new file mode 100644 index 00000000..992ccf87 --- /dev/null +++ b/0.17/CCPool.Make.Fut.Infix.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make.Fut.Infix + + + +

Module CCPool.Make.Fut.Infix

+ +
module Infix: sig .. end

+ +
val (>>=) : 'a CCPool.Make.Fut.t -> ('a -> 'b CCPool.Make.Fut.t) -> 'b CCPool.Make.Fut.t
+
val (>>) : 'a CCPool.Make.Fut.t ->
(unit -> 'b CCPool.Make.Fut.t) -> 'b CCPool.Make.Fut.t
+
val (>|=) : 'a CCPool.Make.Fut.t -> ('a -> 'b) -> 'b CCPool.Make.Fut.t
+
val (<*>) : ('a -> 'b) CCPool.Make.Fut.t -> 'a CCPool.Make.Fut.t -> 'b CCPool.Make.Fut.t
\ No newline at end of file diff --git a/0.17/CCPool.Make.Fut.html b/0.17/CCPool.Make.Fut.html new file mode 100644 index 00000000..6b1d74bf --- /dev/null +++ b/0.17/CCPool.Make.Fut.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make.Fut + + + +

Module CCPool.Make.Fut

+ +
module Fut: sig .. end
+
Futures
+

+ + The futures are registration points for callbacks, storing a CCPool.Make.Fut.state, + that are executed in the pool using CCPool.Make.run.
+

+
+ +
type 'a t 
+
+A future value of type 'a
+
+ + +
type 'a future = 'a t 
+ +
+

Constructors


+ +
val return : 'a -> 'a t
+Future that is already computed
+
+ +
val fail : exn -> 'a t
+Future that fails immediately
+
+ +
val make : (unit -> 'a) -> 'a t
+Create a future, representing a value that will be computed by + the function. If the function raises, the future will fail.
+
+ +
val make1 : ('a -> 'b) -> 'a -> 'b t
+
val make2 : ('a -> 'b -> 'c) -> 'a -> 'b -> 'c t

+

Basics


+ +
val get : 'a t -> 'a
+Blocking get: wait for the future to be evaluated, and get the value, + or the exception that failed the future is returned. + raise e if the future failed with e
+
+ +
val state : 'a t -> 'a CCPool.state
+State of the future
+
+ +
val is_done : 'a t -> bool
+Is the future evaluated (success/failure)?
+
+
+

Combinators


+ +
val on_success : 'a t -> ('a -> unit) -> unit
+Attach a handler to be called upon success. + The handler should not call functions on the future. + Might be evaluated now if the future is already done.
+
+ +
val on_failure : 'a t -> (exn -> unit) -> unit
+Attach a handler to be called upon failure. + The handler should not call any function on the future. + Might be evaluated now if the future is already done.
+
+ +
val on_finish : 'a t -> ('a CCPool.state -> unit) -> unit
+Attach a handler to be called when the future is evaluated. + The handler should not call functions on the future. + Might be evaluated now if the future is already done.
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+Monadic combination of futures
+
+ +
val and_then : 'a t ->
(unit -> 'b t) -> 'b t
+Wait for the first future to succeed, then launch the second
+
+ +
val sequence_a : 'a t array -> 'a array t
+Future that waits for all previous futures to terminate. If any future + in the array fails, sequence_a l fails too.
+
+ +
val map_a : ('a -> 'b t) -> 'a array -> 'b array t
+map_l f a maps f on every element of a, and will return + the array of every result if all calls succeed, or an error otherwise.
+
+ +
val sequence_l : 'a t list -> 'a list t
+Future that waits for all previous futures to terminate. If any future + in the list fails, sequence_l l fails too.
+
+ +
val map_l : ('a -> 'b t) -> 'a list -> 'b list t
+map_l f l maps f on every element of l, and will return + the list of every result if all calls succeed, or an error otherwise.
+
+ +
val choose_a : 'a t array -> 'a t
+Choose among those futures (the first to terminate). Behaves like + the first future that terminates, by failing if the future fails
+
+ +
val choose_l : 'a t list -> 'a t
+Choose among those futures (the first to terminate). Behaves like + the first future that terminates, by failing if the future fails
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Maps the value inside the future. The function doesn't run in its + own task; if it can take time, use CCPool.Make.Fut.flat_map or CCPool.Make.Fut.map_async
+
+ +
val map_async : ('a -> 'b) -> 'a t -> 'b t
+Maps the value inside the future, to be computed in a separated job.
+
+ +
val app : ('a -> 'b) t -> 'a t -> 'b t
+app f x applies the result of f to the result of x
+
+ +
val app_async : ('a -> 'b) t -> 'a t -> 'b t
+app f x applies the result of f to the result of x, in + a separated job scheduled in the pool
+
+ +
val sleep : float -> unit t
+Future that returns with success in the given amount of seconds. Blocks + the thread! If you need to wait on many events, consider + using CCTimer.
+
+ +
module Infix: sig .. end
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+
val (>>) : 'a t ->
(unit -> 'b t) -> 'b t
+
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Alias to CCPool.Make.Fut.map
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+Alias to CCPool.Make.Fut.app
+
+ \ No newline at end of file diff --git a/0.17/CCPool.Make.html b/0.17/CCPool.Make.html new file mode 100644 index 00000000..a1d70aca --- /dev/null +++ b/0.17/CCPool.Make.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make + + + +

Functor CCPool.Make

+ +
module Make (P : PARAM) : sig .. end
+

Create a new Pool


+
+ + + + + +
Parameters: + + + + +
+P:PARAM +
+
+
+ +
val run : (unit -> 'a) -> unit
+run f schedules f for being executed in the thread pool
+
+ +
val run1 : ('a -> 'b) -> 'a -> unit
+run1 f x is similar to run (fun () -> f x)
+
+ +
val run2 : ('a -> 'b -> 'c) -> 'a -> 'b -> unit
+
val run3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> unit
+
val set_exn_handler : (exn -> unit) -> unit
+
val active : unit -> bool
+active () is true as long as stop() has not been called yet
+
+ +
val stop : unit -> unit
+After calling stop (), Most functions will raise Stopped. + This has the effect of preventing new tasks from being executed.
+
+ +
module Fut: sig .. end
+Futures +
+ \ No newline at end of file diff --git a/0.17/CCPool.PARAM.html b/0.17/CCPool.PARAM.html new file mode 100644 index 00000000..e73a2209 --- /dev/null +++ b/0.17/CCPool.PARAM.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.PARAM + + + +

Module type CCPool.PARAM

+ +
module type PARAM = sig .. end

+ +
val min_size : int
+Minimum number of threads in the pool
+
+ +
val max_size : int
+Maximum number of threads in the pool
+
+ \ No newline at end of file diff --git a/0.17/CCPool.html b/0.17/CCPool.html new file mode 100644 index 00000000..d6b0510e --- /dev/null +++ b/0.17/CCPool.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool + + + +

Module CCPool

+ +
module CCPool: sig .. end
+

Thread Pool, and Futures

+

+ + Renamed and heavily updated from CCFuture
+Since 0.16
+

+
+ +
type 'a state = 
+ + + + + + + + + + + + + + +
+| +Done of 'a
+| +Waiting
+| +Failed of exn
+ + + +
module type PARAM = sig .. end
+
exception Stopped
+ +
module Make (P : PARAM) : sig .. end
+Create a new Pool +
+ \ No newline at end of file diff --git a/0.17/CCPrint.MONAD_IO.html b/0.17/CCPrint.MONAD_IO.html new file mode 100644 index 00000000..7ba2808d --- /dev/null +++ b/0.17/CCPrint.MONAD_IO.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint.MONAD_IO + + + +

Module type CCPrint.MONAD_IO

+ +
module type MONAD_IO = sig .. end

+ +
type 'a t 
+
+the IO monad
+
+ + +
type output 
+
+Output channels
+
+ + +
val (>>=) : 'a t ->
('a -> 'b t) -> 'b t
+
val write : output -> string -> unit t
\ No newline at end of file diff --git a/0.17/CCPrint.MakeIO.html b/0.17/CCPrint.MakeIO.html new file mode 100644 index 00000000..8da7b0ac --- /dev/null +++ b/0.17/CCPrint.MakeIO.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint.MakeIO + + + +

Functor CCPrint.MakeIO

+ +
module MakeIO (M : MONAD_IO) : sig .. end
+Example: +
 module PrintLwt = CCPrint.MakeIO(struct
+    include Lwt
+    type output = Lwt_io.output_channel
+    let write = Lwt_io.write
+  end);;
+
+  PrintLwt.printl Lwt_io.stdout (CCList.pp CCInt.pp) [1;2;3;4];;
+  - : unit Lwt.t
+

+
+ + + + + +
Parameters: + + + + +
+M:MONAD_IO +
+
+
+ +
val output : M.output -> 'a CCPrint.t -> 'a -> unit M.t
+Output a single value
+
+ +
val printl : M.output -> 'a CCPrint.t -> 'a -> unit M.t
+Output a value and add a newline "\n" after.
+
+ +
val fprintf : M.output -> ('a, Buffer.t, unit, unit M.t) Pervasives.format4 -> 'a
+Fprintf on a monadic output
+
+ \ No newline at end of file diff --git a/0.17/CCPrint.html b/0.17/CCPrint.html new file mode 100644 index 00000000..a5316ca9 --- /dev/null +++ b/0.17/CCPrint.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint + + + +

Module CCPrint

+ +
module CCPrint: sig .. end
+

Printer Combinators

+

+ +This module provides combinators to build printers for user-defined types. +It doesn't try to do pretty-printing (see for instance Pprint for this), +but a simple way to print complicated values without writing a lot of code. +

+ +Those combinators work with "%a". For instance to print a +(int * bool) list list and a float array, one can write: +

  CCPrint.(printf "int: %d list: %a, array: %a\n"
+    42
+    (list (list (pair int bool))) [[1, true; 2, false]; [4, true]]
+    (array float) [| 1. ; 2. ; 3e18 |] ;;
+
+

+ +Remember that "%a" in this context requires two arguments:

+ +To define new printers, one can either use existing ones (e.g. list int), +or use Printf.bprintf. For instance a printer for colored points in 2D: +

+ +

 type point = {x:int; y:int; colors: string list};;
+
+let pp_point buf p =
+  Printf.bprintf buf "{x=%d, y=%d, colors=%a}"
+    p.x p.y CCPrint.(list string) p.colors;;
+

+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a t = Buffer.t -> 'a -> unit 
+
+A printer for the type 'a
+
+ +
+

Combinators


+ +
val silent : 'a t
+prints nothing
+
+ +
val unit : unit t
+
val int : int t
+
val string : string t
+
val bool : bool t
+
val float3 : float t
+
val float : float t
+
val char : char t
+Since 0.14
+
+ +
val list : ?start:string ->
?stop:string -> ?sep:string -> 'a t -> 'a list t
+
val array : ?start:string ->
?stop:string -> ?sep:string -> 'a t -> 'a array t
+
val arrayi : ?start:string ->
?stop:string -> ?sep:string -> (int * 'a) t -> 'a array t
+
val seq : ?start:string ->
?stop:string -> ?sep:string -> 'a t -> 'a sequence t
+
val opt : 'a t -> 'a option t
+
val pair : 'a t -> 'b t -> ('a * 'b) t
+
val triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
+
val quad : 'a t ->
'b t -> 'c t -> 'd t -> ('a * 'b * 'c * 'd) t
+
val map : ('a -> 'b) -> 'b t -> 'a t

+

IO


+ +
val output : Pervasives.out_channel -> 'a t -> 'a -> unit
+
val to_string : 'a t -> 'a -> string
+
val sprintf : ('a, Buffer.t, unit, string) Pervasives.format4 -> 'a
+Print into a string
+
+ +
val fprintf : Pervasives.out_channel -> ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+Print on a channel
+
+ +
val to_file : string -> ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+Print to the given file
+
+ +
val printf : ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+
val eprintf : ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a

+

Monadic IO


+ +
module type MONAD_IO = sig .. end
+
module MakeIO (M : MONAD_IO) : sig .. end
+Example: +
 module PrintLwt = CCPrint.MakeIO(struct
+    include Lwt
+    type output = Lwt_io.output_channel
+    let write = Lwt_io.write
+  end);;
+
+  PrintLwt.printl Lwt_io.stdout (CCList.pp CCInt.pp) [1;2;3;4];;
+  - : unit Lwt.t
+
+
+ \ No newline at end of file diff --git a/0.17/CCRAL.Infix.html b/0.17/CCRAL.Infix.html new file mode 100644 index 00000000..7a22a47a --- /dev/null +++ b/0.17/CCRAL.Infix.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRAL.Infix + + + +

Module CCRAL.Infix

+ +
module Infix: sig .. end

+ +
val (@+) : 'a -> 'a CCRAL.t -> 'a CCRAL.t
+Cons (alias to CCRAL.cons)
+
+ +
val (>>=) : 'a CCRAL.t -> ('a -> 'b CCRAL.t) -> 'b CCRAL.t
+Alias to CCRAL.flat_map
+
+ +
val (>|=) : 'a CCRAL.t -> ('a -> 'b) -> 'b CCRAL.t
+Alias to CCRAL.map
+
+ +
val (<*>) : ('a -> 'b) CCRAL.t -> 'a CCRAL.t -> 'b CCRAL.t
+Alias to CCRAL.app
+
+ +
val (--) : int -> int -> int CCRAL.t
+Alias to CCRAL.range
+
+ +
val (--^) : int -> int -> int CCRAL.t
+a -- b is the integer range from a to b, where b is excluded.
+Since 0.17
+
+ \ No newline at end of file diff --git a/0.17/CCRAL.html b/0.17/CCRAL.html new file mode 100644 index 00000000..e447f0e8 --- /dev/null +++ b/0.17/CCRAL.html @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRAL + + + +

Module CCRAL

+ +
module CCRAL: sig .. end
+

Random-Access Lists

+

+ + This is an OCaml implementation of Okasaki's paper + "Purely Functional Random Access Lists". It defines a list-like data + structure with O(1) cons/tail operations, and O(log(n)) lookup/modification + operations. +

+ + This module used to be part of containers.misc +

+ + status: stable
+Since 0.13
+

+
+ +
type +'a t 
+
+List containing elements of type 'a
+
+ + +
val empty : 'a t
+Empty list
+
+ +
val is_empty : 'a t -> bool
+Check whether the list is empty
+
+ +
val cons : 'a -> 'a t -> 'a t
+Add an element at the front of the list
+
+ +
val return : 'a -> 'a t
+Singleton
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Map on elements
+
+ +
val mapi : f:(int -> 'a -> 'b) -> 'a t -> 'b t
+Map with index
+
+ +
val hd : 'a t -> 'a
+First element of the list, or
+Raises Invalid_argument if the list is empty
+
+ +
val tl : 'a t -> 'a t
+Remove the first element from the list, or
+Raises Invalid_argument if the list is empty
+
+ +
val front : 'a t -> ('a * 'a t) option
+Remove and return the first element of the list
+
+ +
val front_exn : 'a t -> 'a * 'a t
+Unsafe version of CCRAL.front.
+Raises Invalid_argument if the list is empty
+
+ +
val length : 'a t -> int
+Number of elements. Complexity O(ln n) where n=number of elements
+
+ +
val get : 'a t -> int -> 'a option
+get l i accesses the i-th element of the list. O(log(n)).
+
+ +
val get_exn : 'a t -> int -> 'a
+Unsafe version of CCRAL.get
+Raises Invalid_argument if the list has less than i+1 elements.
+
+ +
val set : 'a t -> int -> 'a -> 'a t
+set l i v sets the i-th element of the list to v. O(log(n)).
+Raises Invalid_argument if the list has less than i+1 elements.
+
+ +
val remove : 'a t -> int -> 'a t
+remove l i removes the i-th element of v.
+Raises Invalid_argument if the list has less than i+1 elements.
+
+ +
val append : 'a t -> 'a t -> 'a t
+
val filter : f:('a -> bool) -> 'a t -> 'a t
+
val filter_map : f:('a -> 'b option) -> 'a t -> 'b t
+
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+
val flatten : 'a t t -> 'a t
+
val app : ('a -> 'b) t -> 'a t -> 'b t
+
val take : int -> 'a t -> 'a t
+
val take_while : f:('a -> bool) -> 'a t -> 'a t
+
val drop : int -> 'a t -> 'a t
+
val drop_while : f:('a -> bool) -> 'a t -> 'a t
+
val take_drop : int -> 'a t -> 'a t * 'a t
+take_drop n l splits l into a, b such that length a = n + if length l >= n, and such that append a b = l
+
+ +
val iter : f:('a -> unit) -> 'a t -> unit
+Iterate on the list's elements
+
+ +
val iteri : f:(int -> 'a -> unit) -> 'a t -> unit
+
val fold : f:('b -> 'a -> 'b) -> x:'b -> 'a t -> 'b
+Fold on the list's elements
+
+ +
val fold_rev : f:('b -> 'a -> 'b) -> x:'b -> 'a t -> 'b
+Fold on the list's elements, in reverse order (starting from the tail)
+
+ +
val rev_map : f:('a -> 'b) -> 'a t -> 'b t
+rev_map f l is the same as map f (rev l)
+
+ +
val rev : 'a t -> 'a t
+Reverse the list
+
+ +
val equal : ?eq:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+
val compare : ?cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
+Lexicographic comparison
+
+
+

Utils


+ +
val make : int -> 'a -> 'a t
+
val repeat : int -> 'a t -> 'a t
+repeat n l is append l (append l ... l) n times
+
+ +
val range : int -> int -> int t
+range i j is i; i+1; ... ; j or j; j-1; ...; i
+
+
+

Conversions


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
val add_list : 'a t -> 'a list -> 'a t
+
val of_list : 'a list -> 'a t
+Convert a list to a RAL. Caution: non tail-rec
+
+ +
val to_list : 'a t -> 'a list
+
val of_list_map : f:('a -> 'b) -> 'a list -> 'b t
+Combination of CCRAL.of_list and CCRAL.map
+
+ +
val of_array : 'a array -> 'a t
+
val add_array : 'a t -> 'a array -> 'a t
+
val to_array : 'a t -> 'a array
+More efficient than on usual lists
+
+ +
val add_seq : 'a t -> 'a sequence -> 'a t
+
val of_seq : 'a sequence -> 'a t
+
val to_seq : 'a t -> 'a sequence
+
val add_gen : 'a t -> 'a gen -> 'a t
+
val of_gen : 'a gen -> 'a t
+
val to_gen : 'a t -> 'a gen

+

Infix


+ +
module Infix: sig .. end
+
include CCRAL.Infix
+
+

IO


+ +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
val print : ?sep:string -> 'a printer -> 'a t printer
\ No newline at end of file diff --git a/0.17/CCRandom.html b/0.17/CCRandom.html new file mode 100644 index 00000000..ff04a438 --- /dev/null +++ b/0.17/CCRandom.html @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRandom + + + +

Module CCRandom

+ +
module CCRandom: sig .. end
+

Random Generators


+
+
+ +
type state = Random.State.t 
+ + +
type 'a t = state -> 'a 
+
+Random generator for values of type 'a
+
+ + +
type 'a random_gen = 'a t 
+ + +
val return : 'a -> 'a t
+return x is the generator that always returns x. + Example: let random_int = return 4 (* fair dice roll *)
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+
val map : ('a -> 'b) -> 'a t -> 'b t
+
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val delay : (unit -> 'a t) -> 'a t
+Delay evaluation. Useful for side-effectful generators that + need some code to run for every call. + Example: +
    let gensym = let r = ref 0 in fun () -> incr r; !r ;;
+
+    delay (fun () ->
+      let name = gensym() in
+      small_int >>= fun i -> return (name,i)
+    )
+    

+Since 0.4
+
+ +
val choose : 'a t list -> 'a option t
+Choose a generator within the list.
+
+ +
val choose_exn : 'a t list -> 'a t
+Same as CCRandom.choose but without option.
+Raises Invalid_argument if the list is empty
+
+ +
val choose_array : 'a t array -> 'a option t
+
val choose_return : 'a list -> 'a t
+Choose among the list
+Raises Invalid_argument if the list is empty
+
+ +
val replicate : int -> 'a t -> 'a list t
+replicate n g makes a list of n elements which are all generated + randomly using g
+
+ +
val sample_without_replacement : ?compare:('a -> 'a -> int) -> int -> 'a t -> 'a list t
+sample_without_replacement n g makes a list of n elements which are all + generated randomly using g with the added constraint that none of the generated + random values are equal
+Since 0.15
+Raises Invalid_argument if n <= 0
+
+ +
val list_seq : 'a t list -> 'a list t
+Build random lists from lists of random generators
+Since 0.4
+
+ +
exception Pick_from_empty
+
+Since 0.16
+
+ +
val pick_list : 'a list -> 'a t
+Pick an element at random from the list
+Since 0.16
+Raises Pick_from_empty if the list is empty
+
+ +
val pick_array : 'a array -> 'a t
+Pick an element at random from the array
+Since 0.16
+Raises Pick_from_empty if the array is empty
+
+ +
val small_int : int t
+
val int : int -> int t
+
val int_range : int -> int -> int t
+Inclusive range
+
+ +
val small_float : float t
+A reasonably small float.
+Since 0.6.1
+
+ +
val float : float -> float t
+Random float within the given range
+Since 0.6.1
+
+ +
val float_range : float -> float -> float t
+Inclusive range. float_range a b assumes a < b.
+Since 0.6.1
+
+ +
val split : int -> (int * int) option t
+Split a positive value n into n1,n2 where n = n1 + n2.
+Returns None if the value is too small
+
+ +
val split_list : int -> len:int -> int list option t
+Split a value n into a list of values whose sum is n + and whose length is length. The list is never empty and does not + contain 0.
+Raises Invalid_argument if len <= 1
+Returns None if the value is too small
+
+ +
val retry : ?max:int -> 'a option t -> 'a option t
+retry g calls g until it returns some value, or until the maximum + number of retries was reached. If g fails, + then it counts for one iteration, and the generator retries.
+
+ +
val try_successively : 'a option t list -> 'a option t
+try_successively l tries each generator of l, one after the other. + If some generator succeeds its result is returned, else the + next generator is tried
+
+ +
val (<?>) : 'a option t -> 'a option t -> 'a option t
+a <?> b is a choice operator. It first tries a, and returns its + result if successful. If a fails, then b is returned.
+
+ +
val fix : ?sub1:('a t -> 'a t) list ->
?sub2:('a t -> 'a t -> 'a t) list ->
?subn:(int t * ('a list t -> 'a t)) list ->
base:'a t -> int t -> 'a t
+Recursion combinators, for building recursive values. + The integer generator is used to provide fuel. The sub_ generators + should use their arguments only once!
+
+
sub1 : cases that recurse on one value
+
sub2 : cases that use the recursive gen twice
+
subn : cases that use a list of recursive cases
+
+
Applicative

+ +
val pure : 'a -> 'a t
+
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t

+
Run a generator

+ +
val run : ?st:state -> 'a t -> 'a
+Using a random state (possibly the one in argument) run a generator
+
+ \ No newline at end of file diff --git a/0.17/CCRef.html b/0.17/CCRef.html new file mode 100644 index 00000000..8672e9cf --- /dev/null +++ b/0.17/CCRef.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRef + + + +

Module CCRef

+ +
module CCRef: sig .. end
+

References


+Since 0.9
+
+
+ +
type 'a print = Format.formatter -> 'a -> unit 
+ + +
type 'a pp = Buffer.t -> 'a -> unit 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a eq = 'a -> 'a -> bool 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a t = 'a Pervasives.ref 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
+Transform the value
+
+ +
val create : 'a -> 'a t
+Alias to ref
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+Call the function on the content of the reference
+
+ +
val update : ('a -> 'a) -> 'a t -> unit
+Update the reference's content with the given function
+
+ +
val incr_then_get : int t -> int
+incr_then_get r increments r and returns its new value, think ++ r
+Since 0.17
+
+ +
val get_then_incr : int t -> int
+get_then_incr r increments r and returns its old value, think r++
+Since 0.17
+
+ +
val compare : 'a ord -> 'a t ord
+
val equal : 'a eq -> 'a t eq
+
val to_list : 'a t -> 'a list
+
val to_seq : 'a t -> 'a sequence
+
val print : 'a print -> 'a t print
+
val pp : 'a pp -> 'a t pp
\ No newline at end of file diff --git a/0.17/CCResult.Infix.html b/0.17/CCResult.Infix.html new file mode 100644 index 00000000..fdd7b107 --- /dev/null +++ b/0.17/CCResult.Infix.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.Infix + + + +

Module CCResult.Infix

+ +
module Infix: sig .. end

+ +
val (>|=) : ('a, 'err) CCResult.t -> ('a -> 'b) -> ('b, 'err) CCResult.t
+
val (>>=) : ('a, 'err) CCResult.t ->
('a -> ('b, 'err) CCResult.t) -> ('b, 'err) CCResult.t
+
val (<*>) : ('a -> 'b, 'err) CCResult.t -> ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
\ No newline at end of file diff --git a/0.17/CCResult.MONAD.html b/0.17/CCResult.MONAD.html new file mode 100644 index 00000000..0aa51082 --- /dev/null +++ b/0.17/CCResult.MONAD.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.MONAD + + + +

Module type CCResult.MONAD

+ +
module type MONAD = sig .. end
+

Monadic Operations


+
+
+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCResult.Traverse.html b/0.17/CCResult.Traverse.html new file mode 100644 index 00000000..0e88595c --- /dev/null +++ b/0.17/CCResult.Traverse.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.Traverse + + + +

Functor CCResult.Traverse

+ +
module Traverse (M : MONAD) : sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
val sequence_m : ('a M.t, 'err) CCResult.t -> ('a, 'err) CCResult.t M.t
+
val fold_m : ('b -> 'a -> 'b M.t) -> 'b -> ('a, 'err) CCResult.t -> 'b M.t
+
val map_m : ('a -> 'b M.t) -> ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t M.t
+
val retry_m : int -> (unit -> ('a, 'err) CCResult.t M.t) -> ('a, 'err list) CCResult.t M.t
\ No newline at end of file diff --git a/0.17/CCResult.html b/0.17/CCResult.html new file mode 100644 index 00000000..1ece6578 --- /dev/null +++ b/0.17/CCResult.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult + + + +

Module CCResult

+ +
module CCResult: sig .. end
+

Error Monad

+

+ + Uses the new "result" type from OCaml 4.03.
+Since 0.16
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type ('good, 'bad) t = ('good, 'bad) Result.result = 
+ + + + + + + + + +
+| +Ok of 'good
+| +Error of 'bad
+ + + +
val return : 'a -> ('a, 'err) t
+Successfully return a value
+
+ +
val fail : 'err -> ('a, 'err) t
+Fail with an error
+
+ +
val of_exn : exn -> ('a, string) t
+of_exn e uses Printexc to print the exception as a string
+
+ +
val of_exn_trace : exn -> ('a, string) t
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +

+ + Remember to call Printexc.record_backtrace true and compile with the + debug flag for this to work.
+

+ +
val fail_printf : ('a, Buffer.t, unit, ('a, string) t) Pervasives.format4 -> 'a
+fail_printf format uses format to obtain an error message + and then returns Error msg
+
+ +
val fail_fprintf : ('a, Format.formatter, unit, ('a, string) t) Pervasives.format4 ->
'a
+fail_printf format uses format to obtain an error message + and then returns Error msg
+
+ +
val map : ('a -> 'b) -> ('a, 'err) t -> ('b, 'err) t
+Map on success
+
+ +
val map_err : ('err1 -> 'err2) -> ('a, 'err1) t -> ('a, 'err2) t
+Map on the error variant
+
+ +
val map2 : ('a -> 'b) ->
('err1 -> 'err2) -> ('a, 'err1) t -> ('b, 'err2) t
+Same as CCResult.map, but also with a function that can transform + the error message in case of failure
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Apply the function only in case of Ok
+
+ +
exception Get_error
+ +
val get_exn : ('a, 'b) t -> 'a
+Extract the value x from Ok x, fails otherwise. + You should be careful with this function, and favor other combinators + whenever possible.
+Raises Get_error if the value is an error.
+
+ +
val get_or : ('a, 'b) t -> default:'a -> 'a
+get_or e ~default returns x if e = Ok x, default otherwise
+
+ +
val map_or : ('a -> 'b) -> ('a, 'b) t -> default:'b -> 'b
+map_or f e ~default returns f x if e = Ok x, default otherwise
+
+ +
val catch : ('a, 'err) t -> ok:('a -> 'b) -> err:('err -> 'b) -> 'b
+catch e ~ok ~err calls either ok or err depending on + the value of e.
+
+ +
val flat_map : ('a -> ('b, 'err) t) ->
('a, 'err) t -> ('b, 'err) t
+
val (>|=) : ('a, 'err) t -> ('a -> 'b) -> ('b, 'err) t
+
val (>>=) : ('a, 'err) t ->
('a -> ('b, 'err) t) -> ('b, 'err) t
+
val equal : ?err:'err equal ->
'a equal -> ('a, 'err) t equal
+
val compare : ?err:'err ord ->
'a ord -> ('a, 'err) t ord
+
val fold : ok:('a -> 'b) -> error:('err -> 'b) -> ('a, 'err) t -> 'b
+fold ~ok ~error e opens e and, if e = Ok x, returns + ok x, otherwise e = Error s and it returns error s.
+
+
+

Wrappers


+ +
val guard : (unit -> 'a) -> ('a, exn) t
+guard f runs f () and returns its result wrapped in Ok. If + f () raises some exception e, then it fails with Error e
+
+ +
val guard_str : (unit -> 'a) -> ('a, string) t
+Same as CCResult.guard but uses CCResult.of_exn to print the exception.
+
+ +
val guard_str_trace : (unit -> 'a) -> ('a, string) t
+Same as CCResult.guard_str but uses CCResult.of_exn_trace instead of CCResult.of_exn so + that the stack trace is printed.
+
+ +
val wrap1 : ('a -> 'b) -> 'a -> ('b, exn) t
+Same as CCResult.guard but gives the function one argument.
+
+ +
val wrap2 : ('a -> 'b -> 'c) -> 'a -> 'b -> ('c, exn) t
+Same as CCResult.guard but gives the function two arguments.
+
+ +
val wrap3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> ('d, exn) t
+Same as CCResult.guard but gives the function three arguments.
+
+
+

Applicative


+ +
val pure : 'a -> ('a, 'err) t
+Synonym of CCResult.return
+
+ +
val (<*>) : ('a -> 'b, 'err) t -> ('a, 'err) t -> ('b, 'err) t
+a <*> b evaluates a and b, and, in case of success, returns + Ok (a b). Otherwise, it fails, and the error of a is chosen + over the error of b if both fail.
+
+ +
val join : (('a, 'err) t, 'err) t -> ('a, 'err) t
+join t, in case of success, returns Ok o from Ok (Ok o). Otherwise, + it fails with Error e where e is the unwrapped error of t.
+
+ +
val both : ('a, 'err) t -> ('b, 'err) t -> ('a * 'b, 'err) t
+both a b, in case of success, returns Ok (o, o') with the ok values + of a and b. Otherwise, it fails, and the error of a is chosen over the + error of b if both fail.
+
+
+

Infix


+ +
module Infix: sig .. end

+

Collections


+ +
val map_l : ('a -> ('b, 'err) t) -> 'a list -> ('b list, 'err) t
+
val fold_l : ('b -> 'a -> ('b, 'err) t) -> 'b -> 'a list -> ('b, 'err) t
+
val fold_seq : ('b -> 'a -> ('b, 'err) t) ->
'b -> 'a sequence -> ('b, 'err) t

+

Misc


+ +
val choose : ('a, 'err) t list -> ('a, 'err list) t
+choose l selects a member of l that is a Ok _ value, + or returns Error l otherwise, where l is the list of errors.
+
+ +
val retry : int -> (unit -> ('a, 'err) t) -> ('a, 'err list) t
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. If f fails n times, retry n f fails + with the list of successive errors.
+
+ +
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
val to_opt : ('a, 'b) t -> 'a option
+
val of_opt : 'a option -> ('a, string) t
+
val to_seq : ('a, 'b) t -> 'a sequence
+
type ('a, 'b) error = [ `Error of 'b | `Ok of 'a ] 
+ + +
val of_err : ('a, 'b) error -> ('a, 'b) t
+Since 0.17
+
+ +
val to_err : ('a, 'b) t -> ('a, 'b) error
+Since 0.17
+
+
+

IO


+ +
val pp : 'a printer -> ('a, string) t printer
+
val print : 'a formatter -> ('a, string) t formatter
\ No newline at end of file diff --git a/0.17/CCRingBuffer.Array.Byte.html b/0.17/CCRingBuffer.Array.Byte.html new file mode 100644 index 00000000..f001a50b --- /dev/null +++ b/0.17/CCRingBuffer.Array.Byte.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.Byte + + + +

Module CCRingBuffer.Array.Byte

+ +
module Byte: S  with type elt = char and type t = Bytes.t
+Efficient array version for the char type
+
+
+ +
type elt 
+
+The element type
+
+ + +
type t 
+
+The type of an array instance
+
+ + +
val empty : t
+The empty array
+
+ +
val make : int -> elt -> t
+make s e makes an array of size s with e elements
+
+ +
val length : t -> int
+length t gets the total number of elements currently in t
+
+ +
val get : t -> int -> elt
+get t i gets the element at position i
+
+ +
val set : t -> int -> elt -> unit
+set t i e sets the element at position i to e
+
+ +
val sub : t -> int -> int -> t
+sub t i len gets the subarray of t from + position i to i + len
+
+ +
val copy : t -> t
+copy t makes a fresh copy of the array t
+
+ +
val blit : t -> int -> t -> int -> int -> unit
+blit t s arr i len copies len elements from arr starting at i + to position s from t
+
+ +
val iter : (elt -> unit) -> t -> unit
+iter f t iterates over the array t invoking f with + the current element, in array order
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.Array.Make.html b/0.17/CCRingBuffer.Array.Make.html new file mode 100644 index 00000000..9a59d85f --- /dev/null +++ b/0.17/CCRingBuffer.Array.Make.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.Make + + + +

Functor CCRingBuffer.Array.Make

+ +
module Make (Elt : sig
+
type t 
+ +
end) : S with type elt = Elt.t and type t = Elt.t array
+Makes an array given an arbitrary element type
+
+ + + + + +
Parameters: + + + + +
+Elt:sig type t end +
+
+
+ +
type elt 
+
+The element type
+
+ + +
type t 
+
+The type of an array instance
+
+ + +
val empty : t
+The empty array
+
+ +
val make : int -> elt -> t
+make s e makes an array of size s with e elements
+
+ +
val length : t -> int
+length t gets the total number of elements currently in t
+
+ +
val get : t -> int -> elt
+get t i gets the element at position i
+
+ +
val set : t -> int -> elt -> unit
+set t i e sets the element at position i to e
+
+ +
val sub : t -> int -> int -> t
+sub t i len gets the subarray of t from + position i to i + len
+
+ +
val copy : t -> t
+copy t makes a fresh copy of the array t
+
+ +
val blit : t -> int -> t -> int -> int -> unit
+blit t s arr i len copies len elements from arr starting at i + to position s from t
+
+ +
val iter : (elt -> unit) -> t -> unit
+iter f t iterates over the array t invoking f with + the current element, in array order
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.Array.S.html b/0.17/CCRingBuffer.Array.S.html new file mode 100644 index 00000000..0da4e759 --- /dev/null +++ b/0.17/CCRingBuffer.Array.S.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.S + + + +

Module type CCRingBuffer.Array.S

+ +
module type S = sig .. end

+ +
type elt 
+
+The element type
+
+ + +
type t 
+
+The type of an array instance
+
+ + +
val empty : t
+The empty array
+
+ +
val make : int -> elt -> t
+make s e makes an array of size s with e elements
+
+ +
val length : t -> int
+length t gets the total number of elements currently in t
+
+ +
val get : t -> int -> elt
+get t i gets the element at position i
+
+ +
val set : t -> int -> elt -> unit
+set t i e sets the element at position i to e
+
+ +
val sub : t -> int -> int -> t
+sub t i len gets the subarray of t from + position i to i + len
+
+ +
val copy : t -> t
+copy t makes a fresh copy of the array t
+
+ +
val blit : t -> int -> t -> int -> int -> unit
+blit t s arr i len copies len elements from arr starting at i + to position s from t
+
+ +
val iter : (elt -> unit) -> t -> unit
+iter f t iterates over the array t invoking f with + the current element, in array order
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.Array.html b/0.17/CCRingBuffer.Array.html new file mode 100644 index 00000000..2d6ee205 --- /dev/null +++ b/0.17/CCRingBuffer.Array.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array + + + +

Module CCRingBuffer.Array

+ +
module Array: sig .. end
+The abstract type for arrays
+
+
+ +
module type S = sig .. end
+
module Byte: S  with type elt = char and type t = Bytes.t
+Efficient array version for the char type +
+ +
module Make (Elt : sig
+
type t 
+ +
end) : S with type elt = Elt.t and type t = Elt.t array
+Makes an array given an arbitrary element type +
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.Byte.html b/0.17/CCRingBuffer.Byte.html new file mode 100644 index 00000000..43aaee4d --- /dev/null +++ b/0.17/CCRingBuffer.Byte.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Byte + + + +

Module CCRingBuffer.Byte

+ +
module Byte: S  with module Array = Array.Byte
+An efficient byte based ring buffer
+
+
+ +
module Array: CCRingBuffer.Array.S 
+The module type of Array for this ring buffer +
+ +
type t 
+
+Defines the ring buffer type, with both bounded and + unbounded flavors
+
+ + +
exception Empty
+
+Raised in querying functions when the buffer is empty
+
+ +
val create : ?bounded:bool -> int -> t
+create ?bounded size creates a new buffer with given size. + Defaults to bounded=false.
+
+ +
val copy : t -> t
+Make a fresh copy of the buffer.
+
+ +
val capacity : t -> int
+Length of the inner buffer.
+
+ +
val max_capacity : t -> int option
+Maximum length of the inner buffer, or None if unbounded.
+
+ +
val length : t -> int
+Number of elements currently stored in the buffer.
+
+ +
val blit_from : t -> Array.t -> int -> int -> unit
+blit_from buf from_buf o len copies the slice o, ... o + len - 1 from + a input buffer from_buf to the end of the buffer.
+Raises Invalid_argument if o,len is not a valid slice of s
+
+ +
val blit_into : t -> Array.t -> int -> int -> int
+blit_into buf to_buf o len copies at most len elements from buf + into to_buf starting at offset o in s.
+Raises Invalid_argument if o,len is not a valid slice of s
+Returns the number of elements actually copied (min len (length buf)).
+
+ +
val append : t -> into:t -> unit
+append b ~into copies all data from b and adds it at the + end of into
+
+ +
val to_list : t -> Array.elt list
+Extract the current content into a list
+
+ +
val clear : t -> unit
+Clear the content of the buffer. Doesn't actually destroy the content.
+
+ +
val reset : t -> unit
+Clear the content of the buffer, and also resize it to a default size
+
+ +
val is_empty : t -> bool
+Is the buffer empty (i.e. contains no elements)?
+
+ +
val junk_front : t -> unit
+Drop the front element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val junk_back : t -> unit
+Drop the back element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val skip : t -> int -> unit
+skip b len removes len elements from the front of b.
+Raises Invalid_argument if len > length b.
+
+ +
val iter : t -> f:(Array.elt -> unit) -> unit
+iter b ~f calls f i t for each element t in buf
+
+ +
val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+iteri b ~f calls f i t for each element t in buf, with i + being its relative index within buf.
+
+ +
val get_front : t -> int -> Array.elt
+get_front buf i returns the i-th element of buf from the front, ie + the one returned by take_front buf after i-1 calls to junk_front buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val get_back : t -> int -> Array.elt
+get_back buf i returns the i-th element of buf from the back, ie + the one returned by take_back buf after i-1 calls to junk_back buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val push_back : t -> Array.elt -> unit
+Push value at the back of t. + If t.bounded=false, the buffer will grow as needed, + otherwise the oldest elements are replaced first.
+
+ +
val peek_front : t -> Array.elt
+First value from front of t.
+Raises Empty if buffer is empty.
+
+ +
val peek_back : t -> Array.elt
+Get the last value from back of t.
+Raises Empty if buffer is empty.
+
+ +
val take_back : t -> Array.elt option
+Take the last value from back of t, if any
+
+ +
val take_back_exn : t -> Array.elt
+Take the last value from back of t.
+Raises Empty if buffer is already empty.
+
+ +
val take_front : t -> Array.elt option
+Take the first value from front of t, if any
+
+ +
val take_front_exn : t -> Array.elt
+Take the first value from front of t.
+Raises Empty if buffer is already empty.
+
+ +
val of_array : Array.t -> t
+Create a buffer from an initial array, but doesn't take ownership + of it (stills allocates a new internal array)
+Since 0.11
+
+ +
val to_array : t -> Array.t
+Create an array from the elements, in order.
+Since 0.11
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.Make.html b/0.17/CCRingBuffer.Make.html new file mode 100644 index 00000000..6fb2174d --- /dev/null +++ b/0.17/CCRingBuffer.Make.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Make + + + +

Functor CCRingBuffer.Make

+ +
module Make (X : sig
+
type t 
+ +
end) : S with type Array.elt = X.t
+Buffer using regular arrays
+
+ + + + + +
Parameters: + + + + +
+X:sig type t end +
+
+
+ +
module Array: CCRingBuffer.Array.S 
+The module type of Array for this ring buffer +
+ +
type t 
+
+Defines the ring buffer type, with both bounded and + unbounded flavors
+
+ + +
exception Empty
+
+Raised in querying functions when the buffer is empty
+
+ +
val create : ?bounded:bool -> int -> t
+create ?bounded size creates a new buffer with given size. + Defaults to bounded=false.
+
+ +
val copy : t -> t
+Make a fresh copy of the buffer.
+
+ +
val capacity : t -> int
+Length of the inner buffer.
+
+ +
val max_capacity : t -> int option
+Maximum length of the inner buffer, or None if unbounded.
+
+ +
val length : t -> int
+Number of elements currently stored in the buffer.
+
+ +
val blit_from : t -> Array.t -> int -> int -> unit
+blit_from buf from_buf o len copies the slice o, ... o + len - 1 from + a input buffer from_buf to the end of the buffer.
+Raises Invalid_argument if o,len is not a valid slice of s
+
+ +
val blit_into : t -> Array.t -> int -> int -> int
+blit_into buf to_buf o len copies at most len elements from buf + into to_buf starting at offset o in s.
+Raises Invalid_argument if o,len is not a valid slice of s
+Returns the number of elements actually copied (min len (length buf)).
+
+ +
val append : t -> into:t -> unit
+append b ~into copies all data from b and adds it at the + end of into
+
+ +
val to_list : t -> Array.elt list
+Extract the current content into a list
+
+ +
val clear : t -> unit
+Clear the content of the buffer. Doesn't actually destroy the content.
+
+ +
val reset : t -> unit
+Clear the content of the buffer, and also resize it to a default size
+
+ +
val is_empty : t -> bool
+Is the buffer empty (i.e. contains no elements)?
+
+ +
val junk_front : t -> unit
+Drop the front element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val junk_back : t -> unit
+Drop the back element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val skip : t -> int -> unit
+skip b len removes len elements from the front of b.
+Raises Invalid_argument if len > length b.
+
+ +
val iter : t -> f:(Array.elt -> unit) -> unit
+iter b ~f calls f i t for each element t in buf
+
+ +
val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+iteri b ~f calls f i t for each element t in buf, with i + being its relative index within buf.
+
+ +
val get_front : t -> int -> Array.elt
+get_front buf i returns the i-th element of buf from the front, ie + the one returned by take_front buf after i-1 calls to junk_front buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val get_back : t -> int -> Array.elt
+get_back buf i returns the i-th element of buf from the back, ie + the one returned by take_back buf after i-1 calls to junk_back buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val push_back : t -> Array.elt -> unit
+Push value at the back of t. + If t.bounded=false, the buffer will grow as needed, + otherwise the oldest elements are replaced first.
+
+ +
val peek_front : t -> Array.elt
+First value from front of t.
+Raises Empty if buffer is empty.
+
+ +
val peek_back : t -> Array.elt
+Get the last value from back of t.
+Raises Empty if buffer is empty.
+
+ +
val take_back : t -> Array.elt option
+Take the last value from back of t, if any
+
+ +
val take_back_exn : t -> Array.elt
+Take the last value from back of t.
+Raises Empty if buffer is already empty.
+
+ +
val take_front : t -> Array.elt option
+Take the first value from front of t, if any
+
+ +
val take_front_exn : t -> Array.elt
+Take the first value from front of t.
+Raises Empty if buffer is already empty.
+
+ +
val of_array : Array.t -> t
+Create a buffer from an initial array, but doesn't take ownership + of it (stills allocates a new internal array)
+Since 0.11
+
+ +
val to_array : t -> Array.t
+Create an array from the elements, in order.
+Since 0.11
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.MakeFromArray.html b/0.17/CCRingBuffer.MakeFromArray.html new file mode 100644 index 00000000..1b63baf3 --- /dev/null +++ b/0.17/CCRingBuffer.MakeFromArray.html @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.MakeFromArray + + + +

Functor CCRingBuffer.MakeFromArray

+ +
module MakeFromArray (A : Array.S) : S  with module Array = A
+Makes a ring buffer module with the given array type.
+
+ + + + + +
Parameters: + + + + +
+A:Array.S +
+
+
+ +
module Array: CCRingBuffer.Array.S 
+The module type of Array for this ring buffer +
+ +
type t 
+
+Defines the ring buffer type, with both bounded and + unbounded flavors
+
+ + +
exception Empty
+
+Raised in querying functions when the buffer is empty
+
+ +
val create : ?bounded:bool -> int -> t
+create ?bounded size creates a new buffer with given size. + Defaults to bounded=false.
+
+ +
val copy : t -> t
+Make a fresh copy of the buffer.
+
+ +
val capacity : t -> int
+Length of the inner buffer.
+
+ +
val max_capacity : t -> int option
+Maximum length of the inner buffer, or None if unbounded.
+
+ +
val length : t -> int
+Number of elements currently stored in the buffer.
+
+ +
val blit_from : t -> Array.t -> int -> int -> unit
+blit_from buf from_buf o len copies the slice o, ... o + len - 1 from + a input buffer from_buf to the end of the buffer.
+Raises Invalid_argument if o,len is not a valid slice of s
+
+ +
val blit_into : t -> Array.t -> int -> int -> int
+blit_into buf to_buf o len copies at most len elements from buf + into to_buf starting at offset o in s.
+Raises Invalid_argument if o,len is not a valid slice of s
+Returns the number of elements actually copied (min len (length buf)).
+
+ +
val append : t -> into:t -> unit
+append b ~into copies all data from b and adds it at the + end of into
+
+ +
val to_list : t -> Array.elt list
+Extract the current content into a list
+
+ +
val clear : t -> unit
+Clear the content of the buffer. Doesn't actually destroy the content.
+
+ +
val reset : t -> unit
+Clear the content of the buffer, and also resize it to a default size
+
+ +
val is_empty : t -> bool
+Is the buffer empty (i.e. contains no elements)?
+
+ +
val junk_front : t -> unit
+Drop the front element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val junk_back : t -> unit
+Drop the back element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val skip : t -> int -> unit
+skip b len removes len elements from the front of b.
+Raises Invalid_argument if len > length b.
+
+ +
val iter : t -> f:(Array.elt -> unit) -> unit
+iter b ~f calls f i t for each element t in buf
+
+ +
val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+iteri b ~f calls f i t for each element t in buf, with i + being its relative index within buf.
+
+ +
val get_front : t -> int -> Array.elt
+get_front buf i returns the i-th element of buf from the front, ie + the one returned by take_front buf after i-1 calls to junk_front buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val get_back : t -> int -> Array.elt
+get_back buf i returns the i-th element of buf from the back, ie + the one returned by take_back buf after i-1 calls to junk_back buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val push_back : t -> Array.elt -> unit
+Push value at the back of t. + If t.bounded=false, the buffer will grow as needed, + otherwise the oldest elements are replaced first.
+
+ +
val peek_front : t -> Array.elt
+First value from front of t.
+Raises Empty if buffer is empty.
+
+ +
val peek_back : t -> Array.elt
+Get the last value from back of t.
+Raises Empty if buffer is empty.
+
+ +
val take_back : t -> Array.elt option
+Take the last value from back of t, if any
+
+ +
val take_back_exn : t -> Array.elt
+Take the last value from back of t.
+Raises Empty if buffer is already empty.
+
+ +
val take_front : t -> Array.elt option
+Take the first value from front of t, if any
+
+ +
val take_front_exn : t -> Array.elt
+Take the first value from front of t.
+Raises Empty if buffer is already empty.
+
+ +
val of_array : Array.t -> t
+Create a buffer from an initial array, but doesn't take ownership + of it (stills allocates a new internal array)
+Since 0.11
+
+ +
val to_array : t -> Array.t
+Create an array from the elements, in order.
+Since 0.11
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.S.Array.html b/0.17/CCRingBuffer.S.Array.html new file mode 100644 index 00000000..4af6dc43 --- /dev/null +++ b/0.17/CCRingBuffer.S.Array.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.S.Array + + + +

Module CCRingBuffer.S.Array

+ +
module Array: CCRingBuffer.Array.S 
+The module type of Array for this ring buffer
+
+
+ +
type elt 
+
+The element type
+
+ + +
type t 
+
+The type of an array instance
+
+ + +
val empty : t
+The empty array
+
+ +
val make : int -> elt -> t
+make s e makes an array of size s with e elements
+
+ +
val length : t -> int
+length t gets the total number of elements currently in t
+
+ +
val get : t -> int -> elt
+get t i gets the element at position i
+
+ +
val set : t -> int -> elt -> unit
+set t i e sets the element at position i to e
+
+ +
val sub : t -> int -> int -> t
+sub t i len gets the subarray of t from + position i to i + len
+
+ +
val copy : t -> t
+copy t makes a fresh copy of the array t
+
+ +
val blit : t -> int -> t -> int -> int -> unit
+blit t s arr i len copies len elements from arr starting at i + to position s from t
+
+ +
val iter : (elt -> unit) -> t -> unit
+iter f t iterates over the array t invoking f with + the current element, in array order
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.S.html b/0.17/CCRingBuffer.S.html new file mode 100644 index 00000000..d9011d8a --- /dev/null +++ b/0.17/CCRingBuffer.S.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.S + + + +

Module type CCRingBuffer.S

+ +
module type S = sig .. end
+

Ring Buffer

+

+ + The abstract ring buffer type, made concrete by choice of + ARRAY module implementation
+

+
+ +
module Array: CCRingBuffer.Array.S 
+The module type of Array for this ring buffer +
+ +
type t 
+
+Defines the ring buffer type, with both bounded and + unbounded flavors
+
+ + +
exception Empty
+
+Raised in querying functions when the buffer is empty
+
+ +
val create : ?bounded:bool -> int -> t
+create ?bounded size creates a new buffer with given size. + Defaults to bounded=false.
+
+ +
val copy : t -> t
+Make a fresh copy of the buffer.
+
+ +
val capacity : t -> int
+Length of the inner buffer.
+
+ +
val max_capacity : t -> int option
+Maximum length of the inner buffer, or None if unbounded.
+
+ +
val length : t -> int
+Number of elements currently stored in the buffer.
+
+ +
val blit_from : t -> Array.t -> int -> int -> unit
+blit_from buf from_buf o len copies the slice o, ... o + len - 1 from + a input buffer from_buf to the end of the buffer.
+Raises Invalid_argument if o,len is not a valid slice of s
+
+ +
val blit_into : t -> Array.t -> int -> int -> int
+blit_into buf to_buf o len copies at most len elements from buf + into to_buf starting at offset o in s.
+Raises Invalid_argument if o,len is not a valid slice of s
+Returns the number of elements actually copied (min len (length buf)).
+
+ +
val append : t -> into:t -> unit
+append b ~into copies all data from b and adds it at the + end of into
+
+ +
val to_list : t -> Array.elt list
+Extract the current content into a list
+
+ +
val clear : t -> unit
+Clear the content of the buffer. Doesn't actually destroy the content.
+
+ +
val reset : t -> unit
+Clear the content of the buffer, and also resize it to a default size
+
+ +
val is_empty : t -> bool
+Is the buffer empty (i.e. contains no elements)?
+
+ +
val junk_front : t -> unit
+Drop the front element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val junk_back : t -> unit
+Drop the back element from t.
+Raises Empty if the buffer is already empty.
+
+ +
val skip : t -> int -> unit
+skip b len removes len elements from the front of b.
+Raises Invalid_argument if len > length b.
+
+ +
val iter : t -> f:(Array.elt -> unit) -> unit
+iter b ~f calls f i t for each element t in buf
+
+ +
val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+iteri b ~f calls f i t for each element t in buf, with i + being its relative index within buf.
+
+ +
val get_front : t -> int -> Array.elt
+get_front buf i returns the i-th element of buf from the front, ie + the one returned by take_front buf after i-1 calls to junk_front buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val get_back : t -> int -> Array.elt
+get_back buf i returns the i-th element of buf from the back, ie + the one returned by take_back buf after i-1 calls to junk_back buf.
+Raises Invalid_argument if the index is invalid (> length buf)
+
+ +
val push_back : t -> Array.elt -> unit
+Push value at the back of t. + If t.bounded=false, the buffer will grow as needed, + otherwise the oldest elements are replaced first.
+
+ +
val peek_front : t -> Array.elt
+First value from front of t.
+Raises Empty if buffer is empty.
+
+ +
val peek_back : t -> Array.elt
+Get the last value from back of t.
+Raises Empty if buffer is empty.
+
+ +
val take_back : t -> Array.elt option
+Take the last value from back of t, if any
+
+ +
val take_back_exn : t -> Array.elt
+Take the last value from back of t.
+Raises Empty if buffer is already empty.
+
+ +
val take_front : t -> Array.elt option
+Take the first value from front of t, if any
+
+ +
val take_front_exn : t -> Array.elt
+Take the first value from front of t.
+Raises Empty if buffer is already empty.
+
+ +
val of_array : Array.t -> t
+Create a buffer from an initial array, but doesn't take ownership + of it (stills allocates a new internal array)
+Since 0.11
+
+ +
val to_array : t -> Array.t
+Create an array from the elements, in order.
+Since 0.11
+
+ \ No newline at end of file diff --git a/0.17/CCRingBuffer.html b/0.17/CCRingBuffer.html new file mode 100644 index 00000000..450970d6 --- /dev/null +++ b/0.17/CCRingBuffer.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer + + + +

Module CCRingBuffer

+ +
module CCRingBuffer: sig .. end
+

Circular Buffer (Deque)

+

+ + Useful for IO, or as a general-purpose alternative to Queue when + batch operations are needed. +

+ + status: experimental
+Since 0.9
+

+
+
+

Underlying Array


+ +
module Array: sig .. end
+The abstract type for arrays +
+ +
module type S = sig .. end
+Ring Buffer +
+ +
module Byte: S  with module Array = Array.Byte
+An efficient byte based ring buffer +
+ +
module MakeFromArray (A : Array.S) : S  with module Array = A
+Makes a ring buffer module with the given array type. +
+ +
module Make (X : sig
+
type t 
+ +
end) : S with type Array.elt = X.t
+Buffer using regular arrays +
+ \ No newline at end of file diff --git a/0.17/CCSemaphore.html b/0.17/CCSemaphore.html new file mode 100644 index 00000000..d62ae473 --- /dev/null +++ b/0.17/CCSemaphore.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSemaphore + + + +

Module CCSemaphore

+ +
module CCSemaphore: sig .. end
+

Semaphores


+Since 0.13
+
+
+ +
type t 
+
+A semaphore
+
+ + +
val create : int -> t
+create n creates a semaphore with initial value n
+Raises Invalid_argument if n <= 0
+
+ +
val get : t -> int
+Current value
+
+ +
val acquire : int -> t -> unit
+acquire n s blocks until get s >= n, then atomically + sets s := !s - n
+
+ +
val release : int -> t -> unit
+release n s atomically sets s := !s + n
+
+ +
val with_acquire : n:int -> t -> f:(unit -> 'a) -> 'a
+with_acquire ~n s ~f first acquires s with n units, + calls f (), and then release s with n units. + Safely release the semaphore even if f () fails
+
+ +
val wait_until_at_least : n:int -> t -> f:(unit -> 'a) -> 'a
+wait_until_at_least ~n s ~f waits until get s >= n, then calls f () + and returns its result. Doesn't modify the semaphore.
+
+ \ No newline at end of file diff --git a/0.17/CCSet.Make.html b/0.17/CCSet.Make.html new file mode 100644 index 00000000..711753bc --- /dev/null +++ b/0.17/CCSet.Make.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet.Make + + + +

Functor CCSet.Make

+ +
module Make (O : Set.OrderedType) : S 
+  with type t = Set.Make(O).t
+   and type elt = O.t
+ + + + +
Parameters: + + + + +
+O:Set.OrderedType +
+
+
+ +
include Set.S
+ +
val of_seq : elt CCSet.sequence -> t
+
val add_seq : t -> elt CCSet.sequence -> t
+Since 0.14
+
+ +
val to_seq : t -> elt CCSet.sequence
+
val of_list : elt list -> t
+
val add_list : t -> elt list -> t
+Since 0.14
+
+ +
val to_list : t -> elt list
+
val pp : ?start:string ->
?stop:string -> ?sep:string -> elt CCSet.printer -> t CCSet.printer
+
val print : ?start:string ->
?stop:string -> ?sep:string -> elt CCSet.formatter -> t CCSet.formatter
\ No newline at end of file diff --git a/0.17/CCSet.S.html b/0.17/CCSet.S.html new file mode 100644 index 00000000..f03129a6 --- /dev/null +++ b/0.17/CCSet.S.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet.S + + + +

Module type CCSet.S

+ +
module type S = sig .. end

+ +
include Set.S
+ +
val of_seq : elt CCSet.sequence -> t
+
val add_seq : t -> elt CCSet.sequence -> t
+Since 0.14
+
+ +
val to_seq : t -> elt CCSet.sequence
+
val of_list : elt list -> t
+
val add_list : t -> elt list -> t
+Since 0.14
+
+ +
val to_list : t -> elt list
+
val pp : ?start:string ->
?stop:string -> ?sep:string -> elt CCSet.printer -> t CCSet.printer
+
val print : ?start:string ->
?stop:string -> ?sep:string -> elt CCSet.formatter -> t CCSet.formatter
\ No newline at end of file diff --git a/0.17/CCSet.html b/0.17/CCSet.html new file mode 100644 index 00000000..304c8276 --- /dev/null +++ b/0.17/CCSet.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet + + + +

Module CCSet

+ +
module CCSet: sig .. end
+

Wrapper around Set


+Since 0.9
+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
module type S = sig .. end
+
module Make (O : Set.OrderedType) : S 
+  with type t = Set.Make(O).t
+   and type elt = O.t
\ No newline at end of file diff --git a/0.17/CCSexp.Traverse.html b/0.17/CCSexp.Traverse.html new file mode 100644 index 00000000..63c0c651 --- /dev/null +++ b/0.17/CCSexp.Traverse.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexp.Traverse + + + +

Module CCSexp.Traverse

+ +
module Traverse: sig .. end

+ +
type 'a conv = CCSexp.t -> 'a option 
+
+A converter from S-expressions to 'a is a function sexp -> 'a option.
+Since 0.4.1
+
+ + +
val map_opt : ('a -> 'b option) -> 'a list -> 'b list option
+Map over a list, failing as soon as the function fails on any element
+Since 0.4.1
+
+ +
val list_any : 'a conv -> CCSexp.t -> 'a option
+list_any f (List l) tries f x for every element x in List l, + and returns the first non-None result (if any).
+
+ +
val list_all : 'a conv -> CCSexp.t -> 'a list
+list_all f (List l) returns the list of all y such that x in l + and f x = Some y
+
+ +
val to_int : int conv
+Expect an integer
+
+ +
val to_string : string conv
+Expect a string (an atom)
+
+ +
val to_bool : bool conv
+Expect a boolean
+
+ +
val to_float : float conv
+Expect a float
+
+ +
val to_list : CCSexp.t list conv
+Expect a list
+
+ +
val to_list_with : (CCSexp.t -> 'a option) -> 'a list conv
+Expect a list, applies f to all the elements of the list, and succeeds + only if f succeeded on every element
+Since 0.4.1
+
+ +
val to_pair : (CCSexp.t * CCSexp.t) conv
+Expect a list of two elements
+
+ +
val to_pair_with : 'a conv ->
'b conv -> ('a * 'b) conv
+Same as CCSexp.Traverse.to_pair but applies conversion functions
+Since 0.4.1
+
+ +
val to_triple : (CCSexp.t * CCSexp.t * CCSexp.t) conv
+
val to_triple_with : 'a conv ->
'b conv ->
'c conv -> ('a * 'b * 'c) conv
+
val get_field : string -> CCSexp.t conv
+get_field name e, when e = List [(n1,x1); (n2,x2) ... ], extracts + the xi such that name = ni, if it can find it.
+
+ +
val field : string -> 'a conv -> 'a conv
+Enriched version of CCSexp.Traverse.get_field, with a converter as argument
+
+ +
val get_variant : (string * (CCSexp.t list -> 'a option)) list -> 'a conv
+get_variant l e checks whether e = List (Atom s :: args), and + if some pair of l is s, f. In this case, it calls f args + and returns its result, otherwise it returns None.
+
+ +
val field_list : string -> (CCSexp.t list -> 'a option) -> 'a conv
+field_list name f "(... (name a b c d) ...record)" + will look for a field based on the given name, and expect it to have a + list of arguments dealt with by f (here, "a b c d").
+Since 0.4.1
+
+ +
val (>>=) : 'a option -> ('a -> 'b option) -> 'b option
+
val (>|=) : 'a option -> ('a -> 'b) -> 'b option
+
val return : 'a -> 'a option
+
val get_exn : 'a option -> 'a
+Unwrap an option, possibly failing.
+Raises Invalid_argument if the argument is None
+
+ \ No newline at end of file diff --git a/0.17/CCSexp.html b/0.17/CCSexp.html new file mode 100644 index 00000000..cccb1b85 --- /dev/null +++ b/0.17/CCSexp.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexp + + + +

Module CCSexp

+ +
module CCSexp: sig .. end
+

Handling S-expressions


+Since 0.7 +Moved the streaming parser to CCSexpStream
+
+
+
+

Basics


+ +
type t = [ `Atom of string | `List of t list ] 
+ + +
val equal : t -> t -> bool
+
val compare : t -> t -> int
+
val hash : t -> int
+
val atom : string -> t
+Build an atom directly from a string
+
+ +
val of_int : int -> t
+
val of_bool : bool -> t
+
val of_list : t list -> t
+
val of_rev_list : t list -> t
+Reverse the list
+
+ +
val of_float : float -> t
+
val of_unit : t
+
val of_pair : t * t -> t
+
val of_triple : t * t * t -> t
+
val of_quad : t * t * t * t -> t
+
val of_variant : string -> t list -> t
+of_variant name args is used to encode algebraic variants + into a S-expr. For instance of_variant "some" [of_int 1] + represents the value Some 1
+
+ +
val of_field : string -> t -> t
+Used to represent one record field
+
+ +
val of_record : (string * t) list -> t
+Represent a record by its named fields
+
+
+
Traversal of S-exp
+

+ +Example: serializing 2D points +

type pt = {x:int; y:int };;
+
+let pt_of_sexp e =
+  Sexp.Traverse.(
+    field "x" to_int e >>= fun x ->
+    field "y" to_int e >>= fun y ->
+    return {x;y}
+  );;
+
+let sexp_of_pt pt = Sexp.(of_record ["x", of_int pt.x; "y", of_int pt.y]);;
+
+let l = [{x=1;y=1}; {x=2;y=10}];;
+
+let sexp = Sexp.(of_list (List.map sexp_of_pt l));;
+
+Sexp.Traverse.list_all pt_of_sexp sexp;;
+

+ +
module Traverse: sig .. end
\ No newline at end of file diff --git a/0.17/CCSexpM.D.html b/0.17/CCSexpM.D.html new file mode 100644 index 00000000..aabbb0a8 --- /dev/null +++ b/0.17/CCSexpM.D.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.D + + + +

Module CCSexpM.D

+ +
module D: module type of MakeDecode(ID_MONAD)
+Decoder that just blocks when input is not available
+Since 0.14
+
+
+ \ No newline at end of file diff --git a/0.17/CCSexpM.ID_MONAD.html b/0.17/CCSexpM.ID_MONAD.html new file mode 100644 index 00000000..dfa49be8 --- /dev/null +++ b/0.17/CCSexpM.ID_MONAD.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.ID_MONAD + + + +

Module CCSexpM.ID_MONAD

+ +
module ID_MONAD: MONAD  with type 'a t = 'a
+The monad that just uses blocking calls as bind
+Since 0.16
+
+
+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCSexpM.MONAD.html b/0.17/CCSexpM.MONAD.html new file mode 100644 index 00000000..7f040653 --- /dev/null +++ b/0.17/CCSexpM.MONAD.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.MONAD + + + +

Module type CCSexpM.MONAD

+ +
module type MONAD = sig .. end

+ +
type 'a t 
+ + +
val return : 'a -> 'a t
+
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
\ No newline at end of file diff --git a/0.17/CCSexpM.MakeDecode.html b/0.17/CCSexpM.MakeDecode.html new file mode 100644 index 00000000..30fa8f48 --- /dev/null +++ b/0.17/CCSexpM.MakeDecode.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.MakeDecode + + + +

Functor CCSexpM.MakeDecode

+ +
module MakeDecode (M : MONAD) : sig .. end
+ + + + +
Parameters: + + + + +
+M:MONAD +
+
+
+ +
type t 
+
+Decoder
+
+ + +
val make : ?bufsize:int -> (Bytes.t -> int -> int -> int M.t) -> t
+Make a decoder with the given function used to refill an + internal buffer. The function might return 0 if the + input is exhausted.
+
+
bufsize : size of internal buffer
+ +
val next : t -> CCSexpM.sexp CCSexpM.parse_result M.t
+Parse the next S-expression or return an error if the input isn't + long enough or isn't a proper S-expression
+
+ \ No newline at end of file diff --git a/0.17/CCSexpM.html b/0.17/CCSexpM.html new file mode 100644 index 00000000..f76fd3f7 --- /dev/null +++ b/0.17/CCSexpM.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM + + + +

Module CCSexpM

+ +
module CCSexpM: sig .. end
+

Simple and efficient S-expression parsing/printing


+Since 0.7
+
+
+ +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ +
+

Basics


+ +
type t = [ `Atom of string | `List of t list ] 
+ + +
type sexp = t 
+ +
+

Serialization (encoding)


+ +
val to_buf : Buffer.t -> t -> unit
+
val to_string : t -> string
+
val to_file : string -> t -> unit
+
val to_file_seq : string -> t sequence -> unit
+Print the given sequence of expressions to a file
+
+ +
val to_chan : Pervasives.out_channel -> t -> unit
+
val print : Format.formatter -> t -> unit
+Pretty-printer nice on human eyes (including indentation)
+
+ +
val print_noindent : Format.formatter -> t -> unit
+Raw, direct printing as compact as possible
+
+
+

Deserialization (decoding)


+ +
module type MONAD = sig .. end
+
type 'a parse_result = [ `End | `Error of string | `Ok of 'a ] 
+
+A parser of 'a can return `Ok x when it parsed a value, + or `Error e when a parse error was encountered, or + `End if the input was empty
+
+ + +
module MakeDecode (M : MONAD) : sig .. end
+
module ID_MONAD: MONAD  with type 'a t = 'a
+The monad that just uses blocking calls as bind +
+ +
module D: module type of MakeDecode(ID_MONAD)
+Decoder that just blocks when input is not available +
+ +
val parse_string : string -> t or_error
+Parse a string
+
+ +
val parse_chan : ?bufsize:int -> Pervasives.in_channel -> t or_error
+Parse a S-expression from the given channel. Can read more data than + necessary, so don't use this if you need finer-grained control (e.g. + to read something else after the S-exp)
+
+ +
val parse_chan_gen : ?bufsize:int ->
Pervasives.in_channel -> t or_error gen
+Parse a channel into a generator of S-expressions
+
+ +
val parse_chan_list : ?bufsize:int -> Pervasives.in_channel -> t list or_error
+
val parse_file : string -> t or_error
+Open the file and read a S-exp from it
+
+ +
val parse_file_list : string -> t list or_error
+Open the file and read a S-exp from it
+
+ \ No newline at end of file diff --git a/0.17/CCString.S.html b/0.17/CCString.S.html new file mode 100644 index 00000000..2ebe58c7 --- /dev/null +++ b/0.17/CCString.S.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.S + + + +

Module type CCString.S

+ +
module type S = sig .. end

+ +
type t 
+ + +
val length : t -> int
+
val blit : t -> int -> Bytes.t -> int -> int -> unit
+Similar to String.blit. + Compatible with the -safe-string option.
+Raises Invalid_argument if indices are not valid
+
+ +
val fold : ('a -> char -> 'a) -> 'a -> t -> 'a
+Fold on chars by increasing index.
+Since 0.7
+
+
+

Conversions


+ +
val to_gen : t -> char CCString.gen
+
val to_seq : t -> char CCString.sequence
+
val to_klist : t -> char CCString.klist
+
val to_list : t -> char list
+
val pp : Buffer.t -> t -> unit
+
val print : Format.formatter -> t -> unit
+Print the string within quotes
+
+ \ No newline at end of file diff --git a/0.17/CCString.Split.html b/0.17/CCString.Split.html new file mode 100644 index 00000000..0db88d50 --- /dev/null +++ b/0.17/CCString.Split.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.Split + + + +

Module CCString.Split

+ +
module Split: sig .. end

+ +
val list_ : by:string -> string -> (string * int * int) list
+Eplit the given string along the given separator by. Should only + be used with very small separators, otherwise + use Containers_string.KMP.
+Raises Failure if by = ""
+Returns a list of slices (s,index,length) that are + separated by by. String.sub can then be used to actually extract + a string from the slice.
+
+ +
val gen : by:string -> string -> (string * int * int) CCString.gen
+
val seq : by:string -> string -> (string * int * int) CCString.sequence
+
val klist : by:string -> string -> (string * int * int) CCString.klist

+
Copying functions
+

+ + Those split functions actually copy the substrings, which can be + more convenient but less efficient in general
+ +

val list_cpy : by:string -> string -> string list
+
val gen_cpy : by:string -> string -> string CCString.gen
+
val seq_cpy : by:string -> string -> string CCString.sequence
+
val klist_cpy : by:string -> string -> string CCString.klist
+
val left : by:string -> string -> (string * string) option
+Split on the first occurrence of by from the leftmost part of + the string
+Since 0.12
+
+ +
val left_exn : by:string -> string -> string * string
+Split on the first occurrence of by from the leftmost part of the string
+Since 0.16
+Raises Not_found if by is not part of the string
+
+ +
val right : by:string -> string -> (string * string) option
+Split on the first occurrence of by from the rightmost part of + the string
+Since 0.12
+
+ +
val right_exn : by:string -> string -> string * string
+Split on the first occurrence of by from the rightmost part of the string
+Since 0.16
+Raises Not_found if by is not part of the string
+
+ \ No newline at end of file diff --git a/0.17/CCString.Sub.html b/0.17/CCString.Sub.html new file mode 100644 index 00000000..c1e3973f --- /dev/null +++ b/0.17/CCString.Sub.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.Sub + + + +

Module CCString.Sub

+ +
module Sub: sig .. end

+ +
type t = string * int * int 
+
+A string, an offset, and the length of the slice
+
+ + +
val make : string -> int -> len:int -> t
+
val full : string -> t
+Full string
+
+ +
val copy : t -> string
+Make a copy of the substring
+
+ +
val underlying : t -> string
+
val sub : t -> int -> int -> t
+Sub-slice
+
+ +
include CCString.S
+ \ No newline at end of file diff --git a/0.17/CCString.html b/0.17/CCString.html new file mode 100644 index 00000000..7e5dc7a0 --- /dev/null +++ b/0.17/CCString.html @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString + + + +

Module CCString

+ +
module CCString: sig .. end
+

Basic String Utils

+

+ +Consider using Containers_string.KMP for pattern search, or Regex +libraries.
+

+
+ +
type 'a gen = unit -> 'a option 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ +
+

Common Signature


+ +
module type S = sig .. end

+

Strings


+ +
val equal : string -> string -> bool
+
val compare : string -> string -> int
+
val hash : string -> int
+
val init : int -> (int -> char) -> string
+Analog to Array.init.
+Since 0.3.3
+
+ +
val rev : string -> string
+rev s returns the reverse of s
+Since 0.17
+
+ +
val pad : ?side:[ `Left | `Right ] -> ?c:char -> int -> string -> string
+pad n str ensures that str is at least n bytes long, + and pads it on the side with c if it's not the case.
+Since 0.17
+
+
side : determines where padding occurs (default: `Left)
+
c : the char used to pad (default: ' ')
+ +
val of_gen : char gen -> string
+
val of_seq : char sequence -> string
+
val of_klist : char klist -> string
+
val of_list : char list -> string
+
val of_array : char array -> string
+
val to_array : string -> char array
+
val find : ?start:int -> sub:string -> string -> int
+Find sub in string, returns its first index or -1. + Should only be used with very small sub
+
+ +
val find_all : ?start:int -> sub:string -> string -> int gen
+find_all ~sub s finds all occurrences of sub in s, even overlapping + instances.
+Since 0.17
+
+
start : starting position in s
+ +
val find_all_l : ?start:int -> sub:string -> string -> int list
+find_all ~sub s finds all occurrences of sub in s and returns + them in a list
+Since 0.17
+
+
start : starting position in s
+ +
val mem : ?start:int -> sub:string -> string -> bool
+mem ~sub s is true iff sub is a substring of s
+Since 0.12
+
+ +
val rfind : sub:string -> string -> int
+Find sub in string from the right, returns its first index or -1. + Should only be used with very small sub
+Since 0.12
+
+ +
val replace : ?which:[ `All | `Left | `Right ] ->
sub:string -> by:string -> string -> string
+replace ~sub ~by s replaces some occurrences of sub by by in s
+Since 0.14
+Raises Invalid_argument if sub = ""
+
+
which : decides whether the occurrences to replace are: + +
+ +
val is_sub : sub:string -> int -> string -> int -> len:int -> bool
+is_sub ~sub i s j ~len returns true iff the substring of + sub starting at position i and of length len is a substring + of s starting at position j
+
+ +
val repeat : string -> int -> string
+The same string, repeated n times
+
+ +
val prefix : pre:string -> string -> bool
+prefix ~pre s returns true iff pre is a prefix of s
+
+ +
val suffix : suf:string -> string -> bool
+suffix ~suf s returns true iff suf is a suffix of s
+Since 0.7
+
+ +
val chop_prefix : pre:string -> string -> string option
+chop_pref ~pre s removes pre from s if pre really is a prefix + of s, returns None otherwise
+Since 0.17
+
+ +
val chop_suffix : suf:string -> string -> string option
+chop_suffix ~suf s removes suf from s if suf really is a suffix + of s, returns None otherwise
+Since 0.17
+
+ +
val take : int -> string -> string
+take n s keeps only the n first chars of s
+Since 0.17
+
+ +
val drop : int -> string -> string
+drop n s removes the n first chars of s
+Since 0.17
+
+ +
val take_drop : int -> string -> string * string
+take_drop n s = take n s, drop n s
+Since 0.17
+
+ +
val lines : string -> string list
+lines s returns a list of the lines of s (splits along '\n')
+Since 0.10
+
+ +
val lines_gen : string -> string gen
+lines_gen s returns a generator of the lines of s (splits along '\n')
+Since 0.10
+
+ +
val concat_gen : sep:string -> string gen -> string
+concat_gen ~sep g concatenates all strings of g, separated with sep.
+Since 0.10
+
+ +
val unlines : string list -> string
+unlines l concatenates all strings of l, separated with '\n'
+Since 0.10
+
+ +
val unlines_gen : string gen -> string
+unlines_gen g concatenates all strings of g, separated with '\n'
+Since 0.10
+
+ +
val set : string -> int -> char -> string
+set s i c creates a new string which is a copy of s, except + for index i, which becomes c.
+Since 0.12
+Raises Invalid_argument if i is an invalid index
+
+ +
val iter : (char -> unit) -> string -> unit
+Alias to String.iter
+Since 0.12
+
+ +
val iteri : (int -> char -> unit) -> string -> unit
+Iter on chars with their index
+Since 0.12
+
+ +
val map : (char -> char) -> string -> string
+Map chars
+Since 0.12
+
+ +
val mapi : (int -> char -> char) -> string -> string
+Map chars with their index
+Since 0.12
+
+ +
val filter_map : (char -> char option) -> string -> string
+Since 0.17
+
+ +
val filter : (char -> bool) -> string -> string
+Since 0.17
+
+ +
val flat_map : ?sep:string -> (char -> string) -> string -> string
+Map each chars to a string, then concatenates them all
+Since 0.12
+
+
sep : optional separator between each generated string
+ +
val for_all : (char -> bool) -> string -> bool
+True for all chars?
+Since 0.12
+
+ +
val exists : (char -> bool) -> string -> bool
+True for some char?
+Since 0.12
+
+ +
include CCString.S
+
+

Operations on 2 strings


+ +
val map2 : (char -> char -> char) -> string -> string -> string
+Map pairs of chars
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+ +
val iter2 : (char -> char -> unit) -> string -> string -> unit
+Iterate on pairs of chars
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+ +
val iteri2 : (int -> char -> char -> unit) -> string -> string -> unit
+Iterate on pairs of chars with their index
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+ +
val fold2 : ('a -> char -> char -> 'a) -> 'a -> string -> string -> 'a
+Fold on pairs of chars
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+ +
val for_all2 : (char -> char -> bool) -> string -> string -> bool
+All pairs of chars respect the predicate?
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+ +
val exists2 : (char -> char -> bool) -> string -> string -> bool
+Exists a pair of chars?
+Since 0.12
+Raises Invalid_argument if the strings have not the same length
+
+
+

Splitting


+ +
module Split: sig .. end

+

Utils


+ +
val compare_versions : string -> string -> int
+compare_versions a b compares version strings a and b, + considering that numbers are above text.
+Since 0.13
+
+
+

Slices

A contiguous part of a string
+ +
module Sub: sig .. end
\ No newline at end of file diff --git a/0.17/CCThread.Arr.html b/0.17/CCThread.Arr.html new file mode 100644 index 00000000..fb72f635 --- /dev/null +++ b/0.17/CCThread.Arr.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread.Arr + + + +

Module CCThread.Arr

+ +
module Arr: sig .. end
+

Array of threads


+
+
+ +
val spawn : int -> (int -> 'a) -> CCThread.t array
+A.spawn n f creates an array res of length n, such that + res.(i) = spawn (fun () -> f i)
+
+ +
val join : CCThread.t array -> unit
+A.join a joins every thread in a
+
+ \ No newline at end of file diff --git a/0.17/CCThread.Barrier.html b/0.17/CCThread.Barrier.html new file mode 100644 index 00000000..16a95f4d --- /dev/null +++ b/0.17/CCThread.Barrier.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread.Barrier + + + +

Module CCThread.Barrier

+ +
module Barrier: sig .. end

+ +
type t 
+
+Barrier, used to synchronize threads
+
+ + +
val create : unit -> t
+Create a barrier
+
+ +
val reset : t -> unit
+Reset to initial (non-triggered) state
+
+ +
val wait : t -> unit
+wait b waits for barrier b to be activated by activate b. + All threads calling this wait until activate b is called. + If b is already activated, wait b does nothing
+
+ +
val activate : t -> unit
+activate b unblocks all threads that were waiting on b
+
+ +
val activated : t -> bool
+activated b returns true iff activate b was called, and reset b + was not called since. In other words, activated b = true means + wait b will not block.
+
+ \ No newline at end of file diff --git a/0.17/CCThread.html b/0.17/CCThread.html new file mode 100644 index 00000000..63dc7c84 --- /dev/null +++ b/0.17/CCThread.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread + + + +

Module CCThread

+ +
module CCThread: sig .. end
+

Threads

+

+ + status: unstable
+Since 0.13
+

+
+ +
type t = Thread.t 
+ + +
val spawn : (unit -> 'a) -> t
+spawn f creates a new thread that runs f ()
+
+ +
val spawn1 : ('a -> 'b) -> 'a -> t
+spawn1 f x is like spawn (fun () -> f x).
+Since 0.16
+
+ +
val spawn2 : ('a -> 'b -> 'c) -> 'a -> 'b -> t
+spawn2 f x y is like spawn (fun () -> f x y).
+Since 0.16
+
+ +
val detach : (unit -> 'a) -> unit
+detach f is the same as ignore (spawn f)
+
+ +
module Arr: sig .. end
+Array of threads +
+
+

Single-Use Barrier


+ +
module Barrier: sig .. end
\ No newline at end of file diff --git a/0.17/CCTimer.html b/0.17/CCTimer.html new file mode 100644 index 00000000..5f2a578b --- /dev/null +++ b/0.17/CCTimer.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTimer + + + +

Module CCTimer

+ +
module CCTimer: sig .. end
+

Event timer

+

+ + Used to be part of CCFuture
+Since 0.16
+

+
+ +
type t 
+
+A scheduler for events. It runs in its own thread.
+
+ + +
val create : unit -> t
+A new timer.
+
+ +
val set_exn_handler : t -> (exn -> unit) -> unit
+set_exn_handler timer f registers f so that any exception + raised by a task scheduled in timer is given to f
+
+ +
exception Stopped
+ +
val after : t -> float -> f:(unit -> 'a) -> unit
+Call the callback f after the given number of seconds.
+Raises Stopped if the timer was stopped
+
+ +
val at : t -> float -> f:(unit -> 'a) -> unit
+Create a future that evaluates to () at the given Unix timestamp
+Raises Stopped if the timer was stopped
+
+ +
exception ExitEvery
+ +
val every : ?delay:float -> t -> float -> f:(unit -> 'a) -> unit
+every timer n ~f calls f () every n seconds. + f() can raise ExitEvery to stop the cycle.
+Raises Stopped if the timer was stopped
+
+
delay : if provided, the first call to f () is delayed by + that many seconds.
+ +
val stop : t -> unit
+Stop the given timer, cancelling pending tasks. Idempotent. + From now on, calling most other operations on the timer will raise Stopped.
+
+ +
val active : t -> bool
+Returns true until stop t has been called.
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.Make.html b/0.17/CCTrie.Make.html new file mode 100644 index 00000000..409b07b1 --- /dev/null +++ b/0.17/CCTrie.Make.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.Make + + + +

Functor CCTrie.Make

+ +
module Make (W : WORD) : S  with type key = W.t and type char_ = W.char_
+ + + + +
Parameters: + + + + +
+W:WORD +
+
+
+ +
type char_ 
+ + +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val add : key -> 'a -> 'a t -> 'a t
+Add a binding to the trie (possibly erasing the previous one)
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present
+
+ +
val find : key -> 'a t -> 'a option
+Find the value associated with the key, if any
+
+ +
val find_exn : key -> 'a t -> 'a
+Same as CCTrie.S.find but can fail.
+Raises Not_found if the key is not present
+
+ +
val longest_prefix : key -> 'a t -> key
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +

+ + Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m + will return "abc"
+Since 0.17
+

+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+Update the binding for the given key. The function is given + None if the key is absent, or Some v if key is bound to v; + if it returns None the key is removed, otherwise it + returns Some y and key becomes bound to y
+
+ +
val fold : ('b -> key -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on key/value bindings. Will use CCTrie.WORD.of_list to rebuild keys.
+
+ +
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use CCTrie.WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : (key -> 'a -> unit) -> 'a t -> unit
+Same as CCTrie.S.fold, but for effectful functions
+
+ +
val fold_values : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+More efficient version of CCTrie.S.fold, that doesn't keep keys
+
+ +
val iter_values : ('a -> unit) -> 'a t -> unit
+
val merge : ('a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
+Merge two tries together. The function is used in + case of conflicts, when a key belongs to both tries
+
+ +
val size : 'a t -> int
+Number of bindings
+
+
+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val of_list : (key * 'a) list -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCTrie.sequence
+
val of_seq : (key * 'a) CCTrie.sequence -> 'a t
+
val to_seq_values : 'a t -> 'a CCTrie.sequence
+
val to_tree : 'a t ->
[ `Char of char_ | `Switch | `Val of 'a ] CCTrie.ktree

+
Ranges

+ +
val above : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is bigger or equal to the given key, in + ascending order
+
+ +
val below : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is smaller or equal to the given key, + in decreasing order
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.MakeArray.html b/0.17/CCTrie.MakeArray.html new file mode 100644 index 00000000..a7d0bf2c --- /dev/null +++ b/0.17/CCTrie.MakeArray.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.MakeArray + + + +

Functor CCTrie.MakeArray

+ +
module MakeArray (X : ORDERED) : S  with type key = X.t array and type char_ = X.t
+ + + + +
Parameters: + + + + +
+X:ORDERED +
+
+
+ +
type char_ 
+ + +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val add : key -> 'a -> 'a t -> 'a t
+Add a binding to the trie (possibly erasing the previous one)
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present
+
+ +
val find : key -> 'a t -> 'a option
+Find the value associated with the key, if any
+
+ +
val find_exn : key -> 'a t -> 'a
+Same as CCTrie.S.find but can fail.
+Raises Not_found if the key is not present
+
+ +
val longest_prefix : key -> 'a t -> key
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +

+ + Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m + will return "abc"
+Since 0.17
+

+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+Update the binding for the given key. The function is given + None if the key is absent, or Some v if key is bound to v; + if it returns None the key is removed, otherwise it + returns Some y and key becomes bound to y
+
+ +
val fold : ('b -> key -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on key/value bindings. Will use CCTrie.WORD.of_list to rebuild keys.
+
+ +
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use CCTrie.WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : (key -> 'a -> unit) -> 'a t -> unit
+Same as CCTrie.S.fold, but for effectful functions
+
+ +
val fold_values : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+More efficient version of CCTrie.S.fold, that doesn't keep keys
+
+ +
val iter_values : ('a -> unit) -> 'a t -> unit
+
val merge : ('a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
+Merge two tries together. The function is used in + case of conflicts, when a key belongs to both tries
+
+ +
val size : 'a t -> int
+Number of bindings
+
+
+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val of_list : (key * 'a) list -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCTrie.sequence
+
val of_seq : (key * 'a) CCTrie.sequence -> 'a t
+
val to_seq_values : 'a t -> 'a CCTrie.sequence
+
val to_tree : 'a t ->
[ `Char of char_ | `Switch | `Val of 'a ] CCTrie.ktree

+
Ranges

+ +
val above : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is bigger or equal to the given key, in + ascending order
+
+ +
val below : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is smaller or equal to the given key, + in decreasing order
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.MakeList.html b/0.17/CCTrie.MakeList.html new file mode 100644 index 00000000..a89881bc --- /dev/null +++ b/0.17/CCTrie.MakeList.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.MakeList + + + +

Functor CCTrie.MakeList

+ +
module MakeList (X : ORDERED) : S  with type key = X.t list and type char_ = X.t
+ + + + +
Parameters: + + + + +
+X:ORDERED +
+
+
+ +
type char_ 
+ + +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val add : key -> 'a -> 'a t -> 'a t
+Add a binding to the trie (possibly erasing the previous one)
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present
+
+ +
val find : key -> 'a t -> 'a option
+Find the value associated with the key, if any
+
+ +
val find_exn : key -> 'a t -> 'a
+Same as CCTrie.S.find but can fail.
+Raises Not_found if the key is not present
+
+ +
val longest_prefix : key -> 'a t -> key
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +

+ + Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m + will return "abc"
+Since 0.17
+

+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+Update the binding for the given key. The function is given + None if the key is absent, or Some v if key is bound to v; + if it returns None the key is removed, otherwise it + returns Some y and key becomes bound to y
+
+ +
val fold : ('b -> key -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on key/value bindings. Will use CCTrie.WORD.of_list to rebuild keys.
+
+ +
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use CCTrie.WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : (key -> 'a -> unit) -> 'a t -> unit
+Same as CCTrie.S.fold, but for effectful functions
+
+ +
val fold_values : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+More efficient version of CCTrie.S.fold, that doesn't keep keys
+
+ +
val iter_values : ('a -> unit) -> 'a t -> unit
+
val merge : ('a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
+Merge two tries together. The function is used in + case of conflicts, when a key belongs to both tries
+
+ +
val size : 'a t -> int
+Number of bindings
+
+
+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val of_list : (key * 'a) list -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCTrie.sequence
+
val of_seq : (key * 'a) CCTrie.sequence -> 'a t
+
val to_seq_values : 'a t -> 'a CCTrie.sequence
+
val to_tree : 'a t ->
[ `Char of char_ | `Switch | `Val of 'a ] CCTrie.ktree

+
Ranges

+ +
val above : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is bigger or equal to the given key, in + ascending order
+
+ +
val below : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is smaller or equal to the given key, + in decreasing order
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.ORDERED.html b/0.17/CCTrie.ORDERED.html new file mode 100644 index 00000000..3e2a82e8 --- /dev/null +++ b/0.17/CCTrie.ORDERED.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.ORDERED + + + +

Module type CCTrie.ORDERED

+ +
module type ORDERED = sig .. end

+ +
type t 
+ + +
val compare : t -> t -> int
\ No newline at end of file diff --git a/0.17/CCTrie.S.html b/0.17/CCTrie.S.html new file mode 100644 index 00000000..9c4521b3 --- /dev/null +++ b/0.17/CCTrie.S.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.S + + + +

Module type CCTrie.S

+ +
module type S = sig .. end

+ +
type char_ 
+ + +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val add : key -> 'a -> 'a t -> 'a t
+Add a binding to the trie (possibly erasing the previous one)
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present
+
+ +
val find : key -> 'a t -> 'a option
+Find the value associated with the key, if any
+
+ +
val find_exn : key -> 'a t -> 'a
+Same as CCTrie.S.find but can fail.
+Raises Not_found if the key is not present
+
+ +
val longest_prefix : key -> 'a t -> key
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +

+ + Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m + will return "abc"
+Since 0.17
+

+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+Update the binding for the given key. The function is given + None if the key is absent, or Some v if key is bound to v; + if it returns None the key is removed, otherwise it + returns Some y and key becomes bound to y
+
+ +
val fold : ('b -> key -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on key/value bindings. Will use CCTrie.WORD.of_list to rebuild keys.
+
+ +
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use CCTrie.WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : (key -> 'a -> unit) -> 'a t -> unit
+Same as CCTrie.S.fold, but for effectful functions
+
+ +
val fold_values : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+More efficient version of CCTrie.S.fold, that doesn't keep keys
+
+ +
val iter_values : ('a -> unit) -> 'a t -> unit
+
val merge : ('a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
+Merge two tries together. The function is used in + case of conflicts, when a key belongs to both tries
+
+ +
val size : 'a t -> int
+Number of bindings
+
+
+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val of_list : (key * 'a) list -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCTrie.sequence
+
val of_seq : (key * 'a) CCTrie.sequence -> 'a t
+
val to_seq_values : 'a t -> 'a CCTrie.sequence
+
val to_tree : 'a t ->
[ `Char of char_ | `Switch | `Val of 'a ] CCTrie.ktree

+
Ranges

+ +
val above : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is bigger or equal to the given key, in + ascending order
+
+ +
val below : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is smaller or equal to the given key, + in decreasing order
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.String.html b/0.17/CCTrie.String.html new file mode 100644 index 00000000..6333134f --- /dev/null +++ b/0.17/CCTrie.String.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.String + + + +

Module CCTrie.String

+ +
module String: S  with type key = string and type char_ = char

+ +
type char_ 
+ + +
type key 
+ + +
type 'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val add : key -> 'a -> 'a t -> 'a t
+Add a binding to the trie (possibly erasing the previous one)
+
+ +
val remove : key -> 'a t -> 'a t
+Remove the key, if present
+
+ +
val find : key -> 'a t -> 'a option
+Find the value associated with the key, if any
+
+ +
val find_exn : key -> 'a t -> 'a
+Same as CCTrie.S.find but can fail.
+Raises Not_found if the key is not present
+
+ +
val longest_prefix : key -> 'a t -> key
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +

+ + Example: if m has keys "abc0" and "abcd", then longest_prefix "abc2" m + will return "abc"
+Since 0.17
+

+ +
val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+Update the binding for the given key. The function is given + None if the key is absent, or Some v if key is bound to v; + if it returns None the key is removed, otherwise it + returns Some y and key becomes bound to y
+
+ +
val fold : ('b -> key -> 'a -> 'b) -> 'b -> 'a t -> 'b
+Fold on key/value bindings. Will use CCTrie.WORD.of_list to rebuild keys.
+
+ +
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use CCTrie.WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : (key -> 'a -> unit) -> 'a t -> unit
+Same as CCTrie.S.fold, but for effectful functions
+
+ +
val fold_values : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
+More efficient version of CCTrie.S.fold, that doesn't keep keys
+
+ +
val iter_values : ('a -> unit) -> 'a t -> unit
+
val merge : ('a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
+Merge two tries together. The function is used in + case of conflicts, when a key belongs to both tries
+
+ +
val size : 'a t -> int
+Number of bindings
+
+
+
Conversions

+ +
val to_list : 'a t -> (key * 'a) list
+
val of_list : (key * 'a) list -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCTrie.sequence
+
val of_seq : (key * 'a) CCTrie.sequence -> 'a t
+
val to_seq_values : 'a t -> 'a CCTrie.sequence
+
val to_tree : 'a t ->
[ `Char of char_ | `Switch | `Val of 'a ] CCTrie.ktree

+
Ranges

+ +
val above : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is bigger or equal to the given key, in + ascending order
+
+ +
val below : key -> 'a t -> (key * 'a) CCTrie.sequence
+All bindings whose key is smaller or equal to the given key, + in decreasing order
+
+ \ No newline at end of file diff --git a/0.17/CCTrie.WORD.html b/0.17/CCTrie.WORD.html new file mode 100644 index 00000000..24512dc1 --- /dev/null +++ b/0.17/CCTrie.WORD.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.WORD + + + +

Module type CCTrie.WORD

+ +
module type WORD = sig .. end

+ +
type t 
+ + +
type char_ 
+ + +
val compare : char_ -> char_ -> int
+
val to_seq : t -> char_ CCTrie.sequence
+
val of_list : char_ list -> t
\ No newline at end of file diff --git a/0.17/CCTrie.html b/0.17/CCTrie.html new file mode 100644 index 00000000..886ae7f5 --- /dev/null +++ b/0.17/CCTrie.html @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie + + + +

Module CCTrie

+ +
module CCTrie: sig .. end
+

Prefix Tree


+
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a ktree = unit -> [ `Nil | `Node of 'a * 'a ktree list ] 
+ +
+

Signatures


+
+

Signatures


+
+
A Composite Word
+

+ + Words are made of characters, who belong to a total order
+ +

module type WORD = sig .. end
+
module type S = sig .. end

+

Implementation


+ +
module Make (W : WORD) : S  with type key = W.t and type char_ = W.char_
+
module type ORDERED = sig .. end
+
module MakeArray (X : ORDERED) : S  with type key = X.t array and type char_ = X.t
+
module MakeList (X : ORDERED) : S  with type key = X.t list and type char_ = X.t
+
module String: S  with type key = string and type char_ = char
\ No newline at end of file diff --git a/0.17/CCUnix.Infix.html b/0.17/CCUnix.Infix.html new file mode 100644 index 00000000..12be34de --- /dev/null +++ b/0.17/CCUnix.Infix.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCUnix.Infix + + + +

Module CCUnix.Infix

+ +
module Infix: sig .. end

+ +
val ?| : ('a, Buffer.t, unit, CCUnix.call_result) Pervasives.format4 -> 'a
+Infix version of CCUnix.call
+Since 0.11
+
+ +
val ?|& : ('a, Buffer.t, unit, CCUnix.async_call_result) Pervasives.format4 -> 'a
+Infix version of CCUnix.async_call
+Since 0.11
+
+ \ No newline at end of file diff --git a/0.17/CCUnix.html b/0.17/CCUnix.html new file mode 100644 index 00000000..f0778507 --- /dev/null +++ b/0.17/CCUnix.html @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCUnix + + + +

Module CCUnix

+ +
module CCUnix: sig .. end
+

High-level Functions on top of Unix

+

+ +Some useful functions built on top of Unix. +

+ +status: unstable
+Since 0.10
+

+
+ +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type 'a gen = unit -> 'a option 
+ +
+

Calling Commands


+ +
val escape_str : Buffer.t -> string -> unit
+Escape a string so it can be a shell argument.
+
+ +
type call_result = <
+ + + + + + + + + + + + + + + + + + + +
+   +errcode : int;(*
+Extracted from status
+
+
*)
+   +status : Unix.process_status;
+   +stderr : string;
+   +stdout : string;
+> + + + +
val call : ?bufsize:int ->
?stdin:[ `Gen of string gen | `Str of string ] ->
?env:string array ->
('a, Buffer.t, unit, call_result) Pervasives.format4 -> 'a
+call cmd wraps the result of Unix.open_process_full cmd into an + object. It reads the full stdout and stderr of the subprocess before + returning.
+
+
bufsize : buffer size used to read stdout and stderr
+
stdin : if provided, the generator or string is consumed and fed to + the subprocess input channel, which is then closed.
+
env : environment to run the command in
+ +
type line = string 
+ + +
type async_call_result = <
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   +close_all : unit;
+   +close_err : unit;
+   +close_in : unit;
+   +close_out : unit;
+   +stderr : line gen;
+   +stdin : line -> unit;
+   +stdout : line gen;
+   +wait : Unix.process_status;
+   +wait_errcode : int;
+> + +
+A subprocess for interactive usage (read/write channels line by line)
+Since 0.11
+
+ + +
val async_call : ?env:string array ->
('a, Buffer.t, unit, async_call_result) Pervasives.format4 -> 'a
+Spawns a subprocess, like CCUnix.call, but the subprocess's channels are + line generators and line sinks (for stdin). + if p is async_call "cmd", then p#wait waits for the subprocess + to die. Channels can be closed independently.
+Since 0.11
+
+
+

Accessors


+ +
val stdout : < stdout : 'a; .. > -> 'a
+
val stderr : < stderr : 'a; .. > -> 'a
+
val status : < status : 'a; .. > -> 'a
+
val errcode : < errcode : 'a; .. > -> 'a

+

Simple IO


+ +
val with_in : ?mode:int ->
?flags:Unix.open_flag list -> string -> f:(Pervasives.in_channel -> 'a) -> 'a
+Open an input file with the given optional flag list, calls the function + on the input channel. When the function raises or returns, the + channel is closed.
+Since 0.16
+
+
flags : opening flags. Unix.O_RDONLY is used in any cases
+ +
val with_out : ?mode:int ->
?flags:Unix.open_flag list ->
string -> f:(Pervasives.out_channel -> 'a) -> 'a
+Same as CCUnix.with_in but for an output channel
+Since 0.16
+
+
flags : opening flags (default [Unix.O_CREAT; Unix.O_TRUNC]) + Unix.O_WRONLY is used in any cases.
+ +
val with_process_in : string -> f:(Pervasives.in_channel -> 'a) -> 'a
+Open a subprocess and obtain a handle to its stdout
+Since 0.16
+
+ +
val with_process_out : string -> f:(Pervasives.out_channel -> 'a) -> 'a
+Open a subprocess and obtain a handle to its stdin
+Since 0.16
+
+ +
type process_full = <
+ + + + + + + + + + + + + + + + + + + +
+   +close : Unix.process_status;
+   +stderr : Pervasives.in_channel;
+   +stdin : Pervasives.out_channel;
+   +stdout : Pervasives.in_channel;
+> + +
+Handle to a subprocess.
+Since 0.16
+
+ + +
val with_process_full : ?env:string array -> string -> f:(process_full -> 'a) -> 'a
+Open a subprocess and obtain a handle to its channels.
+Since 0.16
+
+
env : environment to pass to the subprocess.
+ +
val with_connection : Unix.sockaddr ->
f:(Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> 'a
+Wrap Unix.open_connection with a handler
+Since 0.16
+
+ +
exception ExitServer
+ +
val establish_server : Unix.sockaddr ->
f:(Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> unit
+Listen on the address and calls the handler in a blocking fashion. + Using Thread is recommended if handlers might take time. + The callback should raise CCUnix.ExitServer to stop the loop.
+Since 0.16
+
+
+

Infix Functions


+ +
module Infix: sig .. end
+
include CCUnix.Infix
+ \ No newline at end of file diff --git a/0.17/CCVector.html b/0.17/CCVector.html new file mode 100644 index 00000000..9b8919de --- /dev/null +++ b/0.17/CCVector.html @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCVector + + + +

Module CCVector

+ +
module CCVector: sig .. end
+

Growable, mutable vector


+
+
+ +
type ro = [ `RO ] 
+ + +
type rw = [ `RW ] 
+ +
+Mutability is rw (read-write) or ro (read-only)
+ +
type ('a, 'mut) t 
+
+The type of a vector of elements of type 'a, with + a mutability flat 'mut
+
+ + +
type 'a vector = ('a, rw) t 
+
+Type synonym: a 'a vector is mutable.
+
+ + +
type 'a ro_vector = ('a, ro) t 
+
+Alias for immutable vectors.
+Since 0.15
+
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val freeze : ('a, 'b) t -> ('a, ro) t
+Make an immutable vector (no copy! Don't use the old version)
+
+ +
val freeze_copy : ('a, 'b) t -> ('a, ro) t
+Copy the vector into an immutable version
+
+ +
val create : unit -> ('a, rw) t
+Create a new, empty vector
+
+ +
val create_with : ?capacity:int -> 'a -> ('a, rw) t
+Create a new vector, using the given value as a filler.
+
+
capacity : the size of the underlying array + caution: the value will likely not be GC'd before the vector is.
+ +
val return : 'a -> ('a, 'mut) t
+Singleton vector
+Since 0.14
+
+ +
val make : int -> 'a -> ('a, 'mut) t
+make n x makes a vector of size n, filled with x
+
+ +
val init : int -> (int -> 'a) -> ('a, 'mut) t
+Init the vector with the given function and size
+
+ +
val clear : ('a, rw) t -> unit
+Clear the content of the vector
+
+ +
val ensure_with : init:'a -> ('a, rw) t -> int -> unit
+Hint to the vector that it should have at least the given capacity.
+Since 0.14
+
+
init : if capacity v = 0, used as a filler + element for the underlying array (see CCVector.create_with)
+ +
val ensure : ('a, rw) t -> int -> unit
+Hint to the vector that it should have at least the given capacity. + Just a hint, will not be enforced if the vector is empty and init + is not provided.
+
+ +
val is_empty : ('a, 'b) t -> bool
+Is the vector empty?
+
+ +
val push : ('a, rw) t -> 'a -> unit
+Add an element at the end of the vector
+
+ +
val append : ('a, rw) t -> ('a, 'b) t -> unit
+append a b adds all elements of b to a
+
+ +
val append_array : ('a, rw) t -> 'a array -> unit
+Same as append, with an array
+
+ +
val append_seq : ('a, rw) t -> 'a sequence -> unit
+Append content of sequence
+
+ +
val append_list : ('a, rw) t -> 'a list -> unit
+Append content of list
+Since 0.14
+
+ +
val equal : 'a equal -> ('a, 'b) t equal
+
val compare : 'a ord -> ('a, 'b) t ord
+Total ordering on vectors. Lexicographic comparison.
+
+ +
exception Empty
+
+Raised on empty stack
+
+ +
val pop : ('a, rw) t -> 'a option
+Remove last element, or None
+
+ +
val pop_exn : ('a, rw) t -> 'a
+Remove last element, or raise a Failure if empty
+Raises Empty on an empty vector
+
+ +
val top : ('a, 'b) t -> 'a option
+Top element, if present
+Since 0.6
+
+ +
val top_exn : ('a, 'b) t -> 'a
+Top element, if present
+Since 0.6
+Raises Empty on an empty vector
+
+ +
val copy : ('a, 'b) t -> ('a, 'mut) t
+Shallow copy (may give an immutable or mutable vector)
+
+ +
val shrink : ('a, rw) t -> int -> unit
+Shrink to the given size (remove elements above this size). + Does nothing if the parameter is bigger than the current size.
+
+ +
val member : ?eq:('a -> 'a -> bool) -> 'a -> ('a, 'b) t -> bool
+Is the element a member of the vector?
+
+ +
val sort : ('a -> 'a -> int) -> ('a, 'b) t -> ('a, 'mut) t
+Sort the vector, returning a copy of it that is sorted + w.r.t the given ordering. The vector itself is unchanged.
+
+ +
val sort' : ('a -> 'a -> int) -> ('a, rw) t -> unit
+Sort the vector in place (modifying it).
+
+ +
val uniq_sort : ('a -> 'a -> int) -> ('a, rw) t -> unit
+Sort the array and remove duplicates, in place (e.g. modifying + the vector itself)
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Iterate on the vector's content
+
+ +
val iteri : (int -> 'a -> unit) -> ('a, 'b) t -> unit
+Iterate on the vector, with indexes
+
+ +
val map : ('a -> 'b) -> ('a, 'c) t -> ('b, 'mut) t
+Map elements of the vector, yielding a new vector
+
+ +
val filter : ('a -> bool) -> ('a, 'b) t -> ('a, 'mut) t
+Filter elements from the vector. filter p v leaves v unchanged but + returns a new vector that only contains elements of v satisfying p.
+
+ +
val filter' : ('a -> bool) -> ('a, rw) t -> unit
+Filter elements in place.
+
+ +
val fold : ('b -> 'a -> 'b) -> 'b -> ('a, 'c) t -> 'b
+Fold on elements of the vector
+
+ +
val exists : ('a -> bool) -> ('a, 'b) t -> bool
+Existential test (is there an element that satisfies the predicate?)
+
+ +
val for_all : ('a -> bool) -> ('a, 'b) t -> bool
+Universal test (do all the elements satisfy the predicate?)
+
+ +
val find : ('a -> bool) -> ('a, 'b) t -> 'a option
+Find an element that satisfies the predicate
+
+ +
val find_exn : ('a -> bool) -> ('a, 'b) t -> 'a
+Find an element that satisfies the predicate, or
+Raises Not_found if no element does
+
+ +
val find_map : ('a -> 'b option) -> ('a, 'c) t -> 'b option
+find_map f v returns the first Some y = f x for x in v, + or None if f x = None for each x in v
+Since 0.14
+
+ +
val filter_map : ('a -> 'b option) -> ('a, 'c) t -> ('b, 'mut) t
+Map elements with a function, possibly filtering some of them out
+
+ +
val flat_map : ('a -> ('b, 'c) t) -> ('a, 'd) t -> ('b, 'mut) t
+Map each element to a sub-vector
+
+ +
val flat_map_seq : ('a -> 'b sequence) -> ('a, 'c) t -> ('b, 'mut) t
+Like CCVector.flat_map, but using CCVector.sequence for + intermediate collections.
+Since 0.14
+
+ +
val flat_map_list : ('a -> 'b list) -> ('a, 'c) t -> ('b, 'mut) t
+Like CCVector.flat_map, but using list for + intermediate collections.
+Since 0.14
+
+ +
val flat_map' : ('a -> 'b sequence) -> ('a, 'c) t -> ('b, 'mut) t
+Deprecated.since 0.14 , use CCVector.flat_map_seq
+Alias to CCVector.flat_map_seq
+
+ +
val (>>=) : ('a, 'c) t -> ('a -> ('b, 'd) t) -> ('b, 'mut) t
+Infix version of CCVector.flat_map
+
+ +
val (>|=) : ('a, 'c) t -> ('a -> 'b) -> ('b, 'mut) t
+Infix version of CCVector.map
+
+ +
val get : ('a, 'b) t -> int -> 'a
+Access element by its index, or
+Raises Invalid_argument if bad index
+
+ +
val set : ('a, rw) t -> int -> 'a -> unit
+Modify element at given index, or
+Raises Invalid_argument if bad index
+
+ +
val remove : ('a, rw) t -> int -> unit
+Remove the n-th element of the vector. Does NOT preserve the order + of the elements (might swap with the last element)
+
+ +
val rev : ('a, 'b) t -> ('a, 'mut) t
+Reverse the vector
+
+ +
val rev_in_place : ('a, rw) t -> unit
+Reverse the vector in place
+Since 0.14
+
+ +
val rev' : ('a, rw) t -> unit
+Deprecated.since 0.14 old name for CCVector.rev_in_place
+
+ +
val rev_iter : ('a -> unit) -> ('a, 'b) t -> unit
+rev_iter f a is the same as iter f (rev a), only more efficient.
+Since 0.14
+
+ +
val size : ('a, 'b) t -> int
+Number of elements in vector
+
+ +
val length : ('a, 'b) t -> int
+Synonym for CCVector.size
+
+ +
val capacity : ('a, 'b) t -> int
+Number of elements the vector can contain without being resized
+
+ +
val unsafe_get_array : ('a, rw) t -> 'a array
+Access the underlying shared array (do not modify!). + unsafe_get_array v is longer than size v, but elements at higher + index than size v are undefined (do not access!).
+
+ +
val (--) : int -> int -> (int, 'mut) t
+Range of integers, either ascending or descending (both included, + therefore the result is never empty). + Example: 1 -- 10 returns the vector [1;2;3;4;5;6;7;8;9;10]
+
+ +
val (--^) : int -> int -> (int, 'mut) t
+Range of integers, either ascending or descending, but excluding right., + Example: 1 --^ 10 returns the vector [1;2;3;4;5;6;7;8;9]
+Since 0.17
+
+ +
val of_array : 'a array -> ('a, 'mut) t
+
val of_list : 'a list -> ('a, 'mut) t
+
val to_array : ('a, 'b) t -> 'a array
+
val to_list : ('a, 'b) t -> 'a list
+
val of_seq : ?init:('a, rw) t ->
'a sequence -> ('a, rw) t
+
val to_seq : ('a, 'b) t -> 'a sequence
+
val to_seq_rev : ('a, 'b) t -> 'a sequence
+to_seq_rev v returns the sequence of elements of v in reverse order, + that is, the last elements of v are iterated on first.
+Since 0.14
+
+ +
val slice : ('a, rw) t -> 'a array * int * int
+Vector as an array slice. By doing it we expose the internal array, so + be careful!
+
+ +
val slice_seq : ('a, 'b) t -> int -> int -> 'a sequence
+slice_seq v start len is the sequence of elements from v.(start) + to v.(start+len-1).
+
+ +
val of_klist : ?init:('a, rw) t ->
'a klist -> ('a, rw) t
+
val to_klist : ('a, 'b) t -> 'a klist
+
val of_gen : ?init:('a, rw) t ->
'a gen -> ('a, rw) t
+
val to_gen : ('a, 'b) t -> 'a gen
+
val pp : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> ('a, 'b) t printer
+
val print : ?start:string ->
?stop:string ->
?sep:string ->
'a formatter -> ('a, 'b) t formatter
\ No newline at end of file diff --git a/0.17/CCWBTree.KEY.html b/0.17/CCWBTree.KEY.html new file mode 100644 index 00000000..63b6722c --- /dev/null +++ b/0.17/CCWBTree.KEY.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.KEY + + + +

Module type CCWBTree.KEY

+ +
module type KEY = sig .. end

+ +
include CCWBTree.ORD
+ +
val weight : t -> int
\ No newline at end of file diff --git a/0.17/CCWBTree.Make.html b/0.17/CCWBTree.Make.html new file mode 100644 index 00000000..a3440743 --- /dev/null +++ b/0.17/CCWBTree.Make.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.Make + + + +

Functor CCWBTree.Make

+ +
module Make (X : ORD) : S  with type key = X.t
+ + + + +
Parameters: + + + + +
+X:ORD +
+
+
+ +
type key 
+ + +
type +'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : key -> 'a -> 'a t
+
val mem : key -> 'a t -> bool
+
val get : key -> 'a t -> 'a option
+
val get_exn : key -> 'a t -> 'a
+Raises Not_found if the key is not present
+
+ +
val nth : int -> 'a t -> (key * 'a) option
+nth i m returns the i-th key, value in the ascending + order. Complexity is O(log (cardinal m))
+
+ +
val nth_exn : int -> 'a t -> key * 'a
+Raises Not_found if the index is invalid
+
+ +
val add : key -> 'a -> 'a t -> 'a t
+
val remove : key -> 'a t -> 'a t
+
val update : key ->
('a option -> 'a option) -> 'a t -> 'a t
+update k f m calls f (Some v) if get k m = Some v, f None + otherwise. Then, if f returns Some v' it binds k to v', + if f returns None it removes k
+
+ +
val cardinal : 'a t -> int
+
val weight : 'a t -> int
+
val fold : f:('b -> key -> 'a -> 'b) -> x:'b -> 'a t -> 'b
+
val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : f:(key -> 'a -> unit) -> 'a t -> unit
+
val split : key ->
'a t -> 'a t * 'a option * 'a t
+split k t returns l, o, r where l is the part of the map + with keys smaller than k, r has keys bigger than k, + and o = Some v if k, v belonged to the map
+
+ +
val merge : f:(key -> 'a option -> 'b option -> 'c option) ->
'a t -> 'b t -> 'c t
+Similar to Map.S.merge
+
+ +
val extract_min : 'a t -> key * 'a * 'a t
+extract_min m returns k, v, m' where k,v is the pair with the + smallest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val extract_max : 'a t -> key * 'a * 'a t
+extract_max m returns k, v, m' where k,v is the pair with the + highest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val choose : 'a t -> (key * 'a) option
+
val choose_exn : 'a t -> key * 'a
+Raises Not_found if the tree is empty
+
+ +
val random_choose : Random.State.t -> 'a t -> key * 'a
+Randomly choose a (key,value) pair within the tree, using weights + as probability weights
+Raises Not_found if the tree is empty
+
+ +
val add_list : 'a t -> (key * 'a) list -> 'a t
+
val of_list : (key * 'a) list -> 'a t
+
val to_list : 'a t -> (key * 'a) list
+
val add_seq : 'a t -> (key * 'a) CCWBTree.sequence -> 'a t
+
val of_seq : (key * 'a) CCWBTree.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCWBTree.sequence
+
val add_gen : 'a t -> (key * 'a) CCWBTree.gen -> 'a t
+
val of_gen : (key * 'a) CCWBTree.gen -> 'a t
+
val to_gen : 'a t -> (key * 'a) CCWBTree.gen
+
val print : key CCWBTree.printer ->
'a CCWBTree.printer -> 'a t CCWBTree.printer
\ No newline at end of file diff --git a/0.17/CCWBTree.MakeFull.html b/0.17/CCWBTree.MakeFull.html new file mode 100644 index 00000000..fc1db23a --- /dev/null +++ b/0.17/CCWBTree.MakeFull.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.MakeFull + + + +

Functor CCWBTree.MakeFull

+ +
module MakeFull (X : KEY) : S  with type key = X.t
+Use the custom X.weight function
+
+ + + + + +
Parameters: + + + + +
+X:KEY +
+
+
+ +
type key 
+ + +
type +'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : key -> 'a -> 'a t
+
val mem : key -> 'a t -> bool
+
val get : key -> 'a t -> 'a option
+
val get_exn : key -> 'a t -> 'a
+Raises Not_found if the key is not present
+
+ +
val nth : int -> 'a t -> (key * 'a) option
+nth i m returns the i-th key, value in the ascending + order. Complexity is O(log (cardinal m))
+
+ +
val nth_exn : int -> 'a t -> key * 'a
+Raises Not_found if the index is invalid
+
+ +
val add : key -> 'a -> 'a t -> 'a t
+
val remove : key -> 'a t -> 'a t
+
val update : key ->
('a option -> 'a option) -> 'a t -> 'a t
+update k f m calls f (Some v) if get k m = Some v, f None + otherwise. Then, if f returns Some v' it binds k to v', + if f returns None it removes k
+
+ +
val cardinal : 'a t -> int
+
val weight : 'a t -> int
+
val fold : f:('b -> key -> 'a -> 'b) -> x:'b -> 'a t -> 'b
+
val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : f:(key -> 'a -> unit) -> 'a t -> unit
+
val split : key ->
'a t -> 'a t * 'a option * 'a t
+split k t returns l, o, r where l is the part of the map + with keys smaller than k, r has keys bigger than k, + and o = Some v if k, v belonged to the map
+
+ +
val merge : f:(key -> 'a option -> 'b option -> 'c option) ->
'a t -> 'b t -> 'c t
+Similar to Map.S.merge
+
+ +
val extract_min : 'a t -> key * 'a * 'a t
+extract_min m returns k, v, m' where k,v is the pair with the + smallest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val extract_max : 'a t -> key * 'a * 'a t
+extract_max m returns k, v, m' where k,v is the pair with the + highest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val choose : 'a t -> (key * 'a) option
+
val choose_exn : 'a t -> key * 'a
+Raises Not_found if the tree is empty
+
+ +
val random_choose : Random.State.t -> 'a t -> key * 'a
+Randomly choose a (key,value) pair within the tree, using weights + as probability weights
+Raises Not_found if the tree is empty
+
+ +
val add_list : 'a t -> (key * 'a) list -> 'a t
+
val of_list : (key * 'a) list -> 'a t
+
val to_list : 'a t -> (key * 'a) list
+
val add_seq : 'a t -> (key * 'a) CCWBTree.sequence -> 'a t
+
val of_seq : (key * 'a) CCWBTree.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCWBTree.sequence
+
val add_gen : 'a t -> (key * 'a) CCWBTree.gen -> 'a t
+
val of_gen : (key * 'a) CCWBTree.gen -> 'a t
+
val to_gen : 'a t -> (key * 'a) CCWBTree.gen
+
val print : key CCWBTree.printer ->
'a CCWBTree.printer -> 'a t CCWBTree.printer
\ No newline at end of file diff --git a/0.17/CCWBTree.ORD.html b/0.17/CCWBTree.ORD.html new file mode 100644 index 00000000..e40d6304 --- /dev/null +++ b/0.17/CCWBTree.ORD.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.ORD + + + +

Module type CCWBTree.ORD

+ +
module type ORD = sig .. end

+ +
type t 
+ + +
val compare : t -> t -> int
\ No newline at end of file diff --git a/0.17/CCWBTree.S.html b/0.17/CCWBTree.S.html new file mode 100644 index 00000000..f6edd399 --- /dev/null +++ b/0.17/CCWBTree.S.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.S + + + +

Module type CCWBTree.S

+ +
module type S = sig .. end

+ +
type key 
+ + +
type +'a t 
+ + +
val empty : 'a t
+
val is_empty : 'a t -> bool
+
val singleton : key -> 'a -> 'a t
+
val mem : key -> 'a t -> bool
+
val get : key -> 'a t -> 'a option
+
val get_exn : key -> 'a t -> 'a
+Raises Not_found if the key is not present
+
+ +
val nth : int -> 'a t -> (key * 'a) option
+nth i m returns the i-th key, value in the ascending + order. Complexity is O(log (cardinal m))
+
+ +
val nth_exn : int -> 'a t -> key * 'a
+Raises Not_found if the index is invalid
+
+ +
val add : key -> 'a -> 'a t -> 'a t
+
val remove : key -> 'a t -> 'a t
+
val update : key ->
('a option -> 'a option) -> 'a t -> 'a t
+update k f m calls f (Some v) if get k m = Some v, f None + otherwise. Then, if f returns Some v' it binds k to v', + if f returns None it removes k
+
+ +
val cardinal : 'a t -> int
+
val weight : 'a t -> int
+
val fold : f:('b -> key -> 'a -> 'b) -> x:'b -> 'a t -> 'b
+
val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
+Map values, giving both key and value. Will use WORD.of_list to rebuild keys.
+Since 0.17
+
+ +
val map : f:('a -> 'b) -> 'a t -> 'b t
+Map values, giving only the value.
+Since 0.17
+
+ +
val iter : f:(key -> 'a -> unit) -> 'a t -> unit
+
val split : key ->
'a t -> 'a t * 'a option * 'a t
+split k t returns l, o, r where l is the part of the map + with keys smaller than k, r has keys bigger than k, + and o = Some v if k, v belonged to the map
+
+ +
val merge : f:(key -> 'a option -> 'b option -> 'c option) ->
'a t -> 'b t -> 'c t
+Similar to Map.S.merge
+
+ +
val extract_min : 'a t -> key * 'a * 'a t
+extract_min m returns k, v, m' where k,v is the pair with the + smallest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val extract_max : 'a t -> key * 'a * 'a t
+extract_max m returns k, v, m' where k,v is the pair with the + highest key in m, and m' does not contain k.
+Raises Not_found if the map is empty
+
+ +
val choose : 'a t -> (key * 'a) option
+
val choose_exn : 'a t -> key * 'a
+Raises Not_found if the tree is empty
+
+ +
val random_choose : Random.State.t -> 'a t -> key * 'a
+Randomly choose a (key,value) pair within the tree, using weights + as probability weights
+Raises Not_found if the tree is empty
+
+ +
val add_list : 'a t -> (key * 'a) list -> 'a t
+
val of_list : (key * 'a) list -> 'a t
+
val to_list : 'a t -> (key * 'a) list
+
val add_seq : 'a t -> (key * 'a) CCWBTree.sequence -> 'a t
+
val of_seq : (key * 'a) CCWBTree.sequence -> 'a t
+
val to_seq : 'a t -> (key * 'a) CCWBTree.sequence
+
val add_gen : 'a t -> (key * 'a) CCWBTree.gen -> 'a t
+
val of_gen : (key * 'a) CCWBTree.gen -> 'a t
+
val to_gen : 'a t -> (key * 'a) CCWBTree.gen
+
val print : key CCWBTree.printer ->
'a CCWBTree.printer -> 'a t CCWBTree.printer
\ No newline at end of file diff --git a/0.17/CCWBTree.html b/0.17/CCWBTree.html new file mode 100644 index 00000000..a2939def --- /dev/null +++ b/0.17/CCWBTree.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree + + + +

Module CCWBTree

+ +
module CCWBTree: sig .. end
+

Weight-Balanced Tree

+

+ + status: experimental
+Since 0.13
+

+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a printer = Format.formatter -> 'a -> unit 
+ + +
module type ORD = sig .. end
+
module type KEY = sig .. end

+

Signature


+ +
module type S = sig .. end

+

Functor


+ +
module Make (X : ORD) : S  with type key = X.t
+
module MakeFull (X : KEY) : S  with type key = X.t
+Use the custom X.weight function +
+ \ No newline at end of file diff --git a/0.17/Containers.Array.html b/0.17/Containers.Array.html new file mode 100644 index 00000000..b7dd6b6e --- /dev/null +++ b/0.17/Containers.Array.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Array + + + +

Module Containers.Array

+ +
module Array: sig .. end

+ +
include Array
+ +
include CCArray
+ \ No newline at end of file diff --git a/0.17/Containers.Bool.html b/0.17/Containers.Bool.html new file mode 100644 index 00000000..e7865daf --- /dev/null +++ b/0.17/Containers.Bool.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Bool + + + +

Module Containers.Bool

+ +
module Bool: CCBool

+ +
type t = bool 
+ + +
val compare : t -> t -> int
+Total ordering on booleans, similar to Pervasives.compare
+
+ +
val equal : t -> t -> bool
+
val negate : t -> t
+Negation on booleans (functional version of not)
+
+ +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val pp : t printer
+Printer for booleans
+
+ +
val print : t formatter
\ No newline at end of file diff --git a/0.17/Containers.Char.html b/0.17/Containers.Char.html new file mode 100644 index 00000000..4c90a2d4 --- /dev/null +++ b/0.17/Containers.Char.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Char + + + +

Module Containers.Char

+ +
module Char: sig .. end

+ +
include Char
+ +
include CCChar
+ \ No newline at end of file diff --git a/0.17/Containers.Error.html b/0.17/Containers.Error.html new file mode 100644 index 00000000..015cd495 --- /dev/null +++ b/0.17/Containers.Error.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Error + + + +

Module Containers.Error

+ +
module Error: CCError

+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type ('good, 'bad) t = [ `Error of 'bad | `Ok of 'good ] 
+ + +
val return : 'a -> ('a, 'err) t
+Successfully return a value
+
+ +
val fail : 'err -> ('a, 'err) t
+Fail with an error
+
+ +
val of_exn : exn -> ('a, string) t
+of_exn e uses Printexc to print the exception as a string
+
+ +
val of_exn_trace : exn -> ('a, string) t
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +

+ + Remember to call Printexc.record_backtrace true and compile with the + debug flag for this to work.
+Since 0.14
+

+ +
val fail_printf : ('a, Buffer.t, unit, ('a, string) t) Pervasives.format4 -> 'a
+fail_printf format uses format to obtain an error message + and then returns `Error msg
+Since 0.3.3
+
+ +
val map : ('a -> 'b) -> ('a, 'err) t -> ('b, 'err) t
+Map on success
+
+ +
val map_err : ('err1 -> 'err2) -> ('a, 'err1) t -> ('a, 'err2) t
+Map on error.
+Since 0.5
+
+ +
val map2 : ('a -> 'b) ->
('err1 -> 'err2) -> ('a, 'err1) t -> ('b, 'err2) t
+Same as CCError.map, but also with a function that can transform + the error message in case of failure
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Apply the function only in case of `Ok
+
+ +
val get_exn : ('a, 'b) t -> 'a
+Extract the value x from `Ok x, fails otherwise. + You should be careful with this function, and favor other combinators + whenever possible.
+Raises Invalid_argument if the value is an error.
+
+ +
val catch : ('a, 'err) t -> ok:('a -> 'b) -> err:('err -> 'b) -> 'b
+catch e ~ok ~err calls either ok or err depending on + the value of e. + This is useful for code that does not want to depend on the exact + definition of ('a, 'b) t used, for instance once OCaml gets a + standard Result.t type.
+Since 0.12
+
+ +
val flat_map : ('a -> ('b, 'err) t) -> ('a, 'err) t -> ('b, 'err) t
+
val (>|=) : ('a, 'err) t -> ('a -> 'b) -> ('b, 'err) t
+
val (>>=) : ('a, 'err) t -> ('a -> ('b, 'err) t) -> ('b, 'err) t
+
val equal : ?err:'err equal ->
'a equal -> ('a, 'err) t equal
+
val compare : ?err:'err ord -> 'a ord -> ('a, 'err) t ord
+
val fold : success:('a -> 'b) -> failure:('err -> 'b) -> ('a, 'err) t -> 'b
+fold ~success ~failure e opens e and, if e = `Ok x, returns + success x, otherwise e = `Error s and it returns failure s.
+
+
+

Wrappers

+

+ +The functions CCError.guard, CCError.wrap1, CCError.wrap2 and CCError.wrap3 now return +exceptions in case of failure,
+ +

val guard : (unit -> 'a) -> ('a, exn) t
+guard f runs f () and returns its result wrapped in `Ok. If + f () raises some exception e, then it fails with `Error e
+
+ +
val guard_str : (unit -> 'a) -> ('a, string) t
+Same as CCError.guard but uses CCError.of_exn to print the exception. + See CCError.register_printer
+
+ +
val guard_str_trace : (unit -> 'a) -> ('a, string) t
+Same as CCError.guard_str but uses CCError.of_exn_trace instead of CCError.of_exn so + that the stack trace is printed.
+Since 0.14
+
+ +
val wrap1 : ('a -> 'b) -> 'a -> ('b, exn) t
+Same as CCError.guard but gives the function one argument.
+
+ +
val wrap2 : ('a -> 'b -> 'c) -> 'a -> 'b -> ('c, exn) t
+Same as CCError.guard but gives the function two arguments.
+
+ +
val wrap3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> ('d, exn) t
+Same as CCError.guard but gives the function three arguments.
+
+
+

Applicative


+ +
val pure : 'a -> ('a, 'err) t
+Synonym of CCError.return
+
+ +
val (<*>) : ('a -> 'b, 'err) t -> ('a, 'err) t -> ('b, 'err) t
+a <*> b evaluates a and b, and, in case of success, returns + `Ok (a b). Otherwise, it fails, and the error of a is chosen + over the error of b if both fail.
+
+ +
val join : (('a, 'err) t, 'err) t -> ('a, 'err) t
+join t, in case of success, returns `Ok o from `Ok (`Ok o). Otherwise, + it fails with `Error e where e is the unwrapped error of t.
+Since 0.15
+
+ +
val both : ('a, 'err) t -> ('b, 'err) t -> ('a * 'b, 'err) t
+both a b, in case of success, returns `Ok (o, o') with the ok values + of a and b. Otherwise, it fails, and the error of a is chosen over the + error of b if both fail.
+Since 0.15
+
+
+

Infix


+ +
module Infix: sig .. end

+

Collections


+ +
val map_l : ('a -> ('b, 'err) t) -> 'a list -> ('b list, 'err) t
+
val fold_l : ('b -> 'a -> ('b, 'err) t) -> 'b -> 'a list -> ('b, 'err) t
+
val fold_seq : ('b -> 'a -> ('b, 'err) t) ->
'b -> 'a sequence -> ('b, 'err) t

+

Misc


+ +
val choose : ('a, 'err) t list -> ('a, 'err list) t
+choose l selects a member of l that is a `Ok _ value, + or returns `Error l otherwise, where l is the list of errors.
+
+ +
val retry : int -> (unit -> ('a, 'err) t) -> ('a, 'err list) t
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. If f fails n times, retry n f fails + with the list of successive errors.
+
+ +
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
val to_opt : ('a, 'b) t -> 'a option
+
val of_opt : 'a option -> ('a, string) t
+
val to_seq : ('a, 'b) t -> 'a sequence

+

IO


+ +
val pp : 'a printer -> ('a, string) t printer
+
val print : 'a formatter -> ('a, string) t formatter

+

Global Exception Printers

+

+ +One can register exception printers here, so they will be used by CCError.guard, +CCError.wrap1, etc. The printers should succeed (print) on exceptions they +can deal with, and re-raise the exception otherwise. For instance +if I register a printer for Not_found, it could look like: +

+ +

CCError.register_printer
+    (fun buf exn -> match exn with
+      | Not_found -> Buffer.add_string buf "Not_found"
+      | _ -> raise exn
+    );;
+
+This way a printer that doesn't know how to deal with an exception will +let other printers do it.
+ +
val register_printer : exn printer -> unit
\ No newline at end of file diff --git a/0.17/Containers.Float.html b/0.17/Containers.Float.html new file mode 100644 index 00000000..865a8870 --- /dev/null +++ b/0.17/Containers.Float.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Float + + + +

Module Containers.Float

+ +
module Float: CCFloat

+ +
type t = float 
+ + +
type fpclass = Pervasives.fpclass = 
+ + + + + + + + + + + + + + + + + + + + + + + + +
+| +FP_normal
+| +FP_subnormal
+| +FP_zero
+| +FP_infinite
+| +FP_nan
+ + + +
val nan : t
+
val max_value : t
+
val min_value : t
+
val max_finite_value : t
+
val epsilon : float
+
val is_nan : t -> bool
+
val add : t -> t -> t
+
val sub : t -> t -> t
+
val neg : t -> t
+
val abs : t -> t
+
val scale : t -> t -> t
+
val min : t -> t -> t
+
val max : t -> t -> t
+
val equal : t -> t -> bool
+
val compare : float -> float -> int
+
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val pp : t printer
+
val print : t formatter
+
val hash : t -> int
+
val random : t -> t random_gen
+
val random_small : t random_gen
+
val random_range : t -> t -> t random_gen
+
val fsign : t -> float
+fsign x is one of -1., -0., +0., +1., or nan if x is NaN.
+Since 0.7
+
+ +
exception TrapNaN of string
+ +
val sign_exn : t -> int
+sign_exn x will return the sign of x as 1, 0 or -1, or raise an + exception TrapNaN if x is a NaN. + Note that infinities have defined signs in OCaml.
+Since 0.7
+
+ +
val to_int : t -> int
+
val of_int : int -> t
+
val to_string : t -> string
+
val of_string : string -> t
+
val equal_precision : epsilon:t -> t -> t -> bool
+Equality with allowed error up to a non negative epsilon value
+
+ +
val classify : float -> fpclass
+
module Infix: sig .. end
+Infix Operators +
+ +
include CCFloat.Infix
+ \ No newline at end of file diff --git a/0.17/Containers.Format.html b/0.17/Containers.Format.html new file mode 100644 index 00000000..ad75aeb2 --- /dev/null +++ b/0.17/Containers.Format.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Format + + + +

Module Containers.Format

+ +
module Format: sig .. end

+ +
include Format
+ +
include CCFormat
+ \ No newline at end of file diff --git a/0.17/Containers.Fun.html b/0.17/Containers.Fun.html new file mode 100644 index 00000000..0f0c6062 --- /dev/null +++ b/0.17/Containers.Fun.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Fun + + + +

Module Containers.Fun

+ +
module Fun: CCFun

+ +
val (|>) : 'a -> ('a -> 'b) -> 'b
+Pipeline. x |> f is the same as f x.
+
+ +
val compose : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
+Composition
+
+ +
val compose_binop : ('a -> 'b) -> ('b -> 'b -> 'c) -> 'a -> 'a -> 'c
+compose_binop f g is fun x y -> g (f x) (f y) + Example (partial order): + List.sort (compose_binop fst CCInt.compare) [1, true; 2, false; 1, false]
+Since 0.6
+
+ +
val (%>) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c
+Alias to compose
+
+ +
val (@@) : ('a -> 'b) -> 'a -> 'b
+f @@ x is the same as f x, but right-associative.
+Since 0.5
+
+ +
val id : 'a -> 'a
+Identity function
+
+ +
val const : 'a -> 'b -> 'a
+const x y = x for any y
+
+ +
val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
+Flip arguments
+
+ +
val curry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
+
val uncurry : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+
val tap : ('a -> 'b) -> 'a -> 'a
+tap f x evaluates f x, discards it, then returns x. Useful + in a pipeline, for instance: +
CCArray.(1 -- 10)
+      |> tap CCArray.shuffle
+      |> tap CCArray.sort Pervasives.compare
+    

+
+ +
val (%) : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
+Mathematical composition
+
+ +
val lexicographic : ('a -> 'a -> int) -> ('a -> 'a -> int) -> 'a -> 'a -> int
+Lexicographic combination of comparison functions
+
+ +
val finally : h:(unit -> 'b) -> f:(unit -> 'a) -> 'a
+finally h f calls f () and returns its result. If it raises, the + same exception is raised; in any case, h () is called after + f () terminates.
+
+ +
val finally1 : h:(unit -> 'c) -> ('a -> 'b) -> 'a -> 'b
+finally1 ~h f x is the same as f x, but after the computation, + h () is called whether f x rose an exception or not.
+Since 0.16
+
+ +
val finally2 : h:(unit -> 'd) -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
+finally2 ~h f x y is the same as f x y, but after the computation, + h () is called whether f x y rose an exception or not.
+Since 0.16
+
+
+

Monad

+

+ +Functions with a fixed domain are monads in their codomain
+ +

module Monad (X : sig
+
type t 
+ +
end) : sig .. end
\ No newline at end of file diff --git a/0.17/Containers.Hash.html b/0.17/Containers.Hash.html new file mode 100644 index 00000000..9094f85b --- /dev/null +++ b/0.17/Containers.Hash.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hash + + + +

Module Containers.Hash

+ +
module Hash: CCHash

+
+

Definitions


+ +
type t = int 
+
+A hash value is a positive integer
+
+ + +
type state 
+
+State required by the hash function.
+Since 0.16 the state is abstract, for more flexibility
+
+ + +
type 'a hash_fun = 'a -> state -> state 
+
+Hash function for values of type 'a, merging a fingerprint of the + value into the state of type t
+
+ +
+

Applying Hash


+ +
val init : state
+Initial value
+
+ +
val finish : state -> int
+Extract a usable hash value
+
+ +
val apply : 'a hash_fun -> 'a -> int
+Apply a hash function to a value. + apply f x is the same as finish (f x init)
+
+
+

Basic Combinators

+

+ + Those combinators have been renamed in 0.13, so as to + remove the trailing "_". + They are now defined by the application of CCHash.Make
+ +

val bool_ : bool hash_fun
+Deprecated.use bool
+
+ +
val char_ : char hash_fun
+Deprecated.use char
+
+ +
val int_ : int hash_fun
+Deprecated.use int
+
+ +
val string_ : string hash_fun
+Deprecated.use string
+
+ +
val int32_ : int32 hash_fun
+Deprecated.use int32
+
+ +
val int64_ : int64 hash_fun
+Deprecated.use int64
+
+ +
val nativeint_ : nativeint hash_fun
+Deprecated.use nativeint
+
+ +
val list_ : 'a hash_fun -> 'a list hash_fun
+Deprecated.use list
+Hash a list. Each element is hashed using f.
+
+ +
val array_ : 'a hash_fun -> 'a array hash_fun
+Deprecated.use array
+
+ +
val opt : 'a hash_fun -> 'a option hash_fun
+
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+
val triple : 'a hash_fun ->
'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
+
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+Decide which hash function to use depending on the boolean
+
+
+

Iterators


+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
val seq : 'a hash_fun -> 'a sequence hash_fun
+
val gen : 'a hash_fun -> 'a gen hash_fun
+
val klist : 'a hash_fun -> 'a klist hash_fun

+

Generic Hashing

+

+ + Parametrize over the state, and some primitives to hash basic types. + This can for instance be used for cryptographic hashing or + checksums such as MD5.
+ +

module type HASH = sig .. end
+
module type S = sig .. end
+
module Make (H : HASH) : S  with type state = H.state
+
include CCHash.S
+ \ No newline at end of file diff --git a/0.17/Containers.Hashtbl.Counter.html b/0.17/Containers.Hashtbl.Counter.html new file mode 100644 index 00000000..19e260fd --- /dev/null +++ b/0.17/Containers.Hashtbl.Counter.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.Counter + + + +

Functor Containers.Hashtbl.Counter

+ +
module Counter: CCHashtbl.MakeCounter
+ + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
type elt 
+
+Elements that are to be counted
+
+ + +
type t 
+ + +
val create : int -> t
+A counter maps elements to natural numbers (the number of times this + element occurred)
+
+ +
val incr : t -> elt -> unit
+Increment the counter for the given element
+
+ +
val incr_by : t -> int -> elt -> unit
+Add or remove several occurrences at once. incr_by c x n + will add n occurrences of x if n>0, + and remove abs n occurrences if n<0.
+
+ +
val get : t -> elt -> int
+Number of occurrences for this element
+
+ +
val decr : t -> elt -> unit
+Remove one occurrence of the element
+Since 0.14
+
+ +
val length : t -> int
+Number of distinct elements
+Since 0.14
+
+ +
val add_seq : t -> elt CCHashtbl.sequence -> unit
+Increment each element of the sequence
+
+ +
val of_seq : elt CCHashtbl.sequence -> t
+of_seq s is the same as add_seq (create ())
+
+ +
val to_seq : t -> (elt * int) CCHashtbl.sequence
+to_seq tbl returns elements of tbl along with their multiplicity
+Since 0.14
+
+ +
val add_list : t -> (elt * int) list -> unit
+Similar to CCHashtbl.COUNTER.add_seq
+Since 0.14
+
+ +
val of_list : (elt * int) list -> t
+Similar to CCHashtbl.COUNTER.of_seq
+Since 0.14
+
+ +
val to_list : t -> (elt * int) list
+Since 0.14
+
+ \ No newline at end of file diff --git a/0.17/Containers.Hashtbl.Make'.html b/0.17/Containers.Hashtbl.Make'.html new file mode 100644 index 00000000..5a98b7b8 --- /dev/null +++ b/0.17/Containers.Hashtbl.Make'.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.Make' + + + +

Functor Containers.Hashtbl.Make'

+ +
module Make': CCHashtbl.Make
+ + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
include Hashtbl.S
+ +
val get : 'a t -> key -> 'a option
+Safe version of Hashtbl.find
+
+ +
val get_or : 'a t -> key -> or_:'a -> 'a
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl)
+Since 0.16
+
+ +
val add_list : 'a list t -> key -> 'a -> unit
+add_list tbl x y adds y to the list x is bound to. If x is + not bound, it becomes bound to [y].
+Since 0.16
+
+ +
val incr : ?by:int -> int t -> key -> unit
+incr ?by tbl x increments or initializes the counter associated with x. + If get tbl x = None, then after update, get tbl x = Some 1; + otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
+Since 0.16
+
+
by : if specified, the int value is incremented by by rather than 1
+ +
val decr : ?by:int -> int t -> key -> unit
+Same as CCHashtbl.S.incr but substract 1 (or the value of by). + If the value reaches 0, the key is removed from the table. + This does nothing if the key is not already present in the table.
+Since 0.16
+
+ +
val keys : 'a t -> key CCHashtbl.sequence
+Iterate on keys (similar order as Hashtbl.iter)
+
+ +
val values : 'a t -> 'a CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val keys_list : 'a t -> key list
+keys t is the list of keys in t.
+Since 0.8
+
+ +
val values_list : 'a t -> 'a list
+values t is the list of values in t.
+Since 0.8
+
+ +
val map_list : (key -> 'a -> 'b) -> 'a t -> 'b list
+Map on a hashtable's items, collect into a list
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+From the given bindings, added in order
+
+ +
val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+Add the corresponding pairs to the table, using Hashtbl.add.
+Since 0.16
+
+ +
val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.S.incr. This is useful for counting how many times each + element of seq occurs.
+Since 0.16
+
+ +
val of_seq_count : key CCHashtbl.sequence -> int t
+Similar to CCHashtbl.S.add_seq_count, but allocates a new table and returns it
+Since 0.16
+
+ +
val to_list : 'a t -> (key * 'a) list
+List of bindings (order unspecified)
+
+ +
val of_list : (key * 'a) list -> 'a t
+From the given list of bindings, added in order
+
+ +
val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace
+Since 0.14
+
+ +
val print : key CCHashtbl.printer -> 'a CCHashtbl.printer -> 'a t CCHashtbl.printer
+Printer for tables
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/Containers.Hashtbl.MakeDefault.html b/0.17/Containers.Hashtbl.MakeDefault.html new file mode 100644 index 00000000..de50a997 --- /dev/null +++ b/0.17/Containers.Hashtbl.MakeDefault.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.MakeDefault + + + +

Functor Containers.Hashtbl.MakeDefault

+ +
module MakeDefault: CCHashtbl.MakeDefault
+ + + + +
Parameters: + + + + +
+X:Hashtbl.HashedType +
+
+
+ +
type key 
+ + +
type 'a t 
+
+A hashtable for keys of type key and values of type 'a
+
+ + +
val create : ?size:int -> 'a -> 'a t
+create d makes a new table that maps every key to d by default.
+
+
size : optional size of the initial table
+ +
val create_with : ?size:int -> (key -> 'a) -> 'a t
+Similar to create d but here d is a function called to obtain a + new default value for each distinct key. Useful if the default + value is stateful.
+
+ +
val get : 'a t -> key -> 'a
+Unfailing retrieval (possibly returns the default value). This will + modify the table if the key wasn't present.
+
+ +
val set : 'a t -> key -> 'a -> unit
+Replace the current binding for this key
+
+ +
val remove : 'a t -> key -> unit
+Remove the binding for this key. If get tbl k is called later, the + default value for the table will be returned
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Pairs of (elem, value) for all elements on which get was called
+
+ \ No newline at end of file diff --git a/0.17/Containers.Hashtbl.S'.html b/0.17/Containers.Hashtbl.S'.html new file mode 100644 index 00000000..346db844 --- /dev/null +++ b/0.17/Containers.Hashtbl.S'.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.S' + + + +

Module type Containers.Hashtbl.S'

+ +
module type S' = CCHashtbl.S

+ +
include Hashtbl.S
+ +
val get : 'a t -> key -> 'a option
+Safe version of Hashtbl.find
+
+ +
val get_or : 'a t -> key -> or_:'a -> 'a
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl)
+Since 0.16
+
+ +
val add_list : 'a list t -> key -> 'a -> unit
+add_list tbl x y adds y to the list x is bound to. If x is + not bound, it becomes bound to [y].
+Since 0.16
+
+ +
val incr : ?by:int -> int t -> key -> unit
+incr ?by tbl x increments or initializes the counter associated with x. + If get tbl x = None, then after update, get tbl x = Some 1; + otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).
+Since 0.16
+
+
by : if specified, the int value is incremented by by rather than 1
+ +
val decr : ?by:int -> int t -> key -> unit
+Same as CCHashtbl.S.incr but substract 1 (or the value of by). + If the value reaches 0, the key is removed from the table. + This does nothing if the key is not already present in the table.
+Since 0.16
+
+ +
val keys : 'a t -> key CCHashtbl.sequence
+Iterate on keys (similar order as Hashtbl.iter)
+
+ +
val values : 'a t -> 'a CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val keys_list : 'a t -> key list
+keys t is the list of keys in t.
+Since 0.8
+
+ +
val values_list : 'a t -> 'a list
+values t is the list of values in t.
+Since 0.8
+
+ +
val map_list : (key -> 'a -> 'b) -> 'a t -> 'b list
+Map on a hashtable's items, collect into a list
+
+ +
val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+Iterate on values in the table
+
+ +
val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+From the given bindings, added in order
+
+ +
val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+Add the corresponding pairs to the table, using Hashtbl.add.
+Since 0.16
+
+ +
val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.S.incr. This is useful for counting how many times each + element of seq occurs.
+Since 0.16
+
+ +
val of_seq_count : key CCHashtbl.sequence -> int t
+Similar to CCHashtbl.S.add_seq_count, but allocates a new table and returns it
+Since 0.16
+
+ +
val to_list : 'a t -> (key * 'a) list
+List of bindings (order unspecified)
+
+ +
val of_list : (key * 'a) list -> 'a t
+From the given list of bindings, added in order
+
+ +
val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace
+Since 0.14
+
+ +
val print : key CCHashtbl.printer -> 'a CCHashtbl.printer -> 'a t CCHashtbl.printer
+Printer for tables
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/Containers.Hashtbl.html b/0.17/Containers.Hashtbl.html new file mode 100644 index 00000000..5a6ef526 --- /dev/null +++ b/0.17/Containers.Hashtbl.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl + + + +

Module Containers.Hashtbl

+ +
module Hashtbl: sig .. end
+Since 0.14
+
+
+ +
include Hashtbl
+ +
module type S' = CCHashtbl.S
+
module Make': CCHashtbl.Make
+
module Counter: CCHashtbl.MakeCounter
+
module MakeDefault: CCHashtbl.MakeDefault
\ No newline at end of file diff --git a/0.17/Containers.Int.html b/0.17/Containers.Int.html new file mode 100644 index 00000000..a0747207 --- /dev/null +++ b/0.17/Containers.Int.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Int + + + +

Module Containers.Int

+ +
module Int: CCInt

+ +
type t = int 
+ + +
val compare : t -> t -> int
+
val equal : t -> t -> bool
+
val hash : t -> int
+
val sign : t -> int
+sign i is one of -1, 0, 1
+
+ +
val neg : t -> t
+neg i = - i
+Since 0.5
+
+ +
val pow : t -> t -> t
+pow a b = a^b for positive integers a and b. + Raises Invalid_argument if a = b = 0 or b < 0.
+Since 0.11
+
+ +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val random : int -> t random_gen
+
val random_small : t random_gen
+
val random_range : int -> int -> t random_gen
+
val pp : t printer
+
val print : t formatter
+
val to_string : t -> string
+Since 0.13
+
+ +
val of_string : string -> t option
+Since 0.13
+
+ +
val min : t -> t -> t
+Since 0.17
+
+ +
val max : t -> t -> t
+Since 0.17
+
+ +
module Infix: sig .. end
+Infix Operators +
+ +
include CCInt.Infix
+ \ No newline at end of file diff --git a/0.17/Containers.Int64.html b/0.17/Containers.Int64.html new file mode 100644 index 00000000..0acc8d2c --- /dev/null +++ b/0.17/Containers.Int64.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Int64 + + + +

Module Containers.Int64

+ +
module Int64: CCInt64

+ +
type t = int64 
+ + +
val (+) : t -> t -> t
+
val (-) : t -> t -> t
+
val (~-) : t -> t
+
val ( * ) : t -> t -> t
+
val (/) : t -> t -> t
+
val (mod) : t -> t -> t
+
val abs : t -> t
+
val max_int : t
+
val min_int : t
+
val (land) : t -> t -> t
+
val (lor) : t -> t -> t
+
val (lxor) : t -> t -> t
+
val lnot : t -> t
+
val (lsl) : t -> int -> t
+
val (lsr) : t -> int -> t
+
val (asr) : t -> int -> t
+
val equal : t -> t -> bool
+
val compare : t -> t -> int
+
val hash : t -> int

+

Conversion


+ +
val to_int : t -> int
+
val of_int : int -> t option
+
val of_int_exn : int -> t
+
val to_int32 : t -> int32
+
val of_int32 : int32 -> t option
+
val of_int32_exn : int32 -> t
+
val to_nativeint : t -> nativeint
+
val of_nativeint : nativeint -> t option
+
val of_nativeint_exn : nativeint -> t
+
val to_float : t -> float
+
val of_float : float -> t option
+
val of_float_exn : float -> t
+
val to_string : t -> string
+
val of_string : string -> t option
+
val of_string_exn : string -> t
\ No newline at end of file diff --git a/0.17/Containers.List.html b/0.17/Containers.List.html new file mode 100644 index 00000000..ebbf8c3f --- /dev/null +++ b/0.17/Containers.List.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.List + + + +

Module Containers.List

+ +
module List: sig .. end

+ +
include List
+ +
include CCList
+ \ No newline at end of file diff --git a/0.17/Containers.Map.OrderedType.html b/0.17/Containers.Map.OrderedType.html new file mode 100644 index 00000000..c14db657 --- /dev/null +++ b/0.17/Containers.Map.OrderedType.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Map.OrderedType + + + +

Module type Containers.Map.OrderedType

+ +
module type OrderedType = Map.OrderedType

+ \ No newline at end of file diff --git a/0.17/Containers.Map.html b/0.17/Containers.Map.html new file mode 100644 index 00000000..52890e8d --- /dev/null +++ b/0.17/Containers.Map.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Map + + + +

Module Containers.Map

+ +
module Map: sig .. end

+ +
module type OrderedType = Map.OrderedType
+
include CCMap
+ \ No newline at end of file diff --git a/0.17/Containers.Option.html b/0.17/Containers.Option.html new file mode 100644 index 00000000..a857b852 --- /dev/null +++ b/0.17/Containers.Option.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Option + + + +

Module Containers.Option

+ +
module Option: CCOpt

+ +
type 'a t = 'a option 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
+Transform the element inside, if any
+
+ +
val maybe : ('a -> 'b) -> 'b -> 'a t -> 'b
+Deprecated., use CCOpt.map_or
+maybe f x o is x if o is None, + otherwise it's f y if o = Some y
+
+ +
val map_or : default:'b -> ('a -> 'b) -> 'a t -> 'b
+map_or ~default f o is f x if o = Some x, default otherwise
+Since 0.16
+
+ +
val is_some : 'a t -> bool
+
val is_none : 'a t -> bool
+Since 0.11
+
+ +
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
+
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
+
val return : 'a -> 'a t
+Monadic return
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix version of CCOpt.map
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Monadic bind
+
+ +
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
+Flip version of >>=
+
+ +
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+
val iter : ('a -> unit) -> 'a t -> unit
+Iterate on 0 or 1 element
+
+ +
val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
+Fold on 0 or 1 element
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+Filter on 0 or 1 element
+Since 0.5
+
+ +
val if_ : ('a -> bool) -> 'a -> 'a option
+if_ f x is Some x if f x, None otherwise
+Since 0.17
+
+ +
val exists : ('a -> bool) -> 'a t -> bool
+Since 0.17
+
+ +
val for_all : ('a -> bool) -> 'a t -> bool
+Since 0.17
+
+ +
val get : 'a -> 'a t -> 'a
+get default x unwraps x, but if x = None it returns default instead.
+Since 0.4.1
+
+ +
val get_exn : 'a t -> 'a
+Open the option, possibly failing if it is None
+Raises Invalid_argument if the option is None
+
+ +
val get_lazy : (unit -> 'a) -> 'a t -> 'a
+get_lazy default_fn x unwraps x, but if x = None it returns default_fn () instead.
+Since 0.6.1
+
+ +
val sequence_l : 'a t list -> 'a list t
+sequence_l [x1; x2; ...; xn] returns Some [y1;y2;...;yn] if + every xi is Some yi. Otherwise, if the list contains at least + one None, the result is None.
+
+ +
val wrap : ?handler:(exn -> bool) -> ('a -> 'b) -> 'a -> 'b option
+wrap f x calls f x and returns Some y if f x = y. If f x raises + any exception, the result is None. This can be useful to wrap functions + such as Map.S.find.
+
+
handler : the exception handler, which returns true if the + exception is to be caught.
+ +
val wrap2 : ?handler:(exn -> bool) -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c option
+wrap2 f x y is similar to wrap1 but for binary functions.
+
+
+

Applicative


+ +
val pure : 'a -> 'a t
+Alias to CCOpt.return
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val (<$>) : ('a -> 'b) -> 'a t -> 'b t

+

Alternatives


+ +
val (<+>) : 'a t -> 'a t -> 'a t
+a <+> b is a if a is Some _, b otherwise
+
+ +
val choice : 'a t list -> 'a t
+choice returns the first non-None element of the list, or None
+
+
+

Infix Operators


+ +
module Infix: sig .. end

+

Conversion and IO


+ +
val to_list : 'a t -> 'a list
+
val of_list : 'a list -> 'a t
+Head of list, or None
+
+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a fmt = Format.formatter -> 'a -> unit 
+ + +
type 'a random_gen = Random.State.t -> 'a 
+ + +
val random : 'a random_gen -> 'a t random_gen
+
val choice_seq : 'a t sequence -> 'a t
+choice_seq s is similar to CCOpt.choice, but works on sequences. + It returns the first Some x occurring in s, or None otherwise.
+Since 0.13
+
+ +
val to_gen : 'a t -> 'a gen
+
val to_seq : 'a t -> 'a sequence
+
val pp : 'a printer -> 'a t printer
+
val print : 'a fmt -> 'a t fmt
+Since 0.13
+
+ \ No newline at end of file diff --git a/0.17/Containers.Pair.html b/0.17/Containers.Pair.html new file mode 100644 index 00000000..6d3f7378 --- /dev/null +++ b/0.17/Containers.Pair.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Pair + + + +

Module Containers.Pair

+ +
module Pair: CCPair

+ +
type ('a, 'b) t = 'a * 'b 
+ + +
val make : 'a -> 'b -> ('a, 'b) t
+Make a tuple from its components
+Since 0.16
+
+ +
val map1 : ('a -> 'b) -> 'a * 'c -> 'b * 'c
+
val map2 : ('a -> 'b) -> 'c * 'a -> 'c * 'b
+
val map : ('a -> 'c) -> ('b -> 'd) -> 'a * 'b -> 'c * 'd
+
val map_same : ('a -> 'b) -> 'a * 'a -> 'b * 'b
+
val map_fst : ('a -> 'b) -> 'a * 'c -> 'b
+Compose the given function with fst.
+Since 0.3.3
+
+ +
val map_snd : ('a -> 'b) -> 'c * 'a -> 'b
+Compose the given function with snd.
+Since 0.3.3
+
+ +
val iter : ('a -> 'b -> unit) -> 'a * 'b -> unit
+
val swap : 'a * 'b -> 'b * 'a
+Swap the components of the tuple
+
+ +
val (<<<) : ('a -> 'b) -> 'a * 'c -> 'b * 'c
+Map on the left side of the tuple
+
+ +
val (>>>) : ('a -> 'b) -> 'c * 'a -> 'c * 'b
+Map on the right side of the tuple
+
+ +
val ( *** ) : ('a -> 'c) -> ('b -> 'd) -> 'a * 'b -> 'c * 'd
+Map on both sides of a tuple
+
+ +
val (&&&) : ('a -> 'b) -> ('a -> 'c) -> 'a -> 'b * 'c
+f &&& g is fun x -> f x, g x. It splits the computations into + two parts
+
+ +
val merge : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+Uncurrying (merges the two components of a tuple)
+
+ +
val fold : ('a -> 'b -> 'c) -> 'a * 'b -> 'c
+Synonym to CCPair.merge
+Since 0.3.3
+
+ +
val dup : 'a -> 'a * 'a
+dup x = (x,x) (duplicate the value)
+Since 0.3.3
+
+ +
val dup_map : ('a -> 'b) -> 'a -> 'a * 'b
+dup_map f x = (x, f x). Duplicates the value and applies the function + to the second copy.
+Since 0.3.3
+
+ +
val equal : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> 'a * 'b -> 'a * 'b -> bool
+
val compare : ('a -> 'a -> int) -> ('b -> 'b -> int) -> 'a * 'b -> 'a * 'b -> int
+
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val pp : 'a printer -> 'b printer -> ('a * 'b) printer
+
val print : 'a formatter -> 'b formatter -> ('a * 'b) formatter
\ No newline at end of file diff --git a/0.17/Containers.Random.html b/0.17/Containers.Random.html new file mode 100644 index 00000000..9d1d887e --- /dev/null +++ b/0.17/Containers.Random.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Random + + + +

Module Containers.Random

+ +
module Random: sig .. end

+ +
include Random
+ +
include CCRandom
+ \ No newline at end of file diff --git a/0.17/Containers.Ref.html b/0.17/Containers.Ref.html new file mode 100644 index 00000000..8c06cd8f --- /dev/null +++ b/0.17/Containers.Ref.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Ref + + + +

Module Containers.Ref

+ +
module Ref: CCRef

+ +
type 'a print = Format.formatter -> 'a -> unit 
+ + +
type 'a pp = Buffer.t -> 'a -> unit 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a eq = 'a -> 'a -> bool 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a t = 'a Pervasives.ref 
+ + +
val map : ('a -> 'b) -> 'a t -> 'b t
+Transform the value
+
+ +
val create : 'a -> 'a t
+Alias to ref
+
+ +
val iter : ('a -> unit) -> 'a t -> unit
+Call the function on the content of the reference
+
+ +
val update : ('a -> 'a) -> 'a t -> unit
+Update the reference's content with the given function
+
+ +
val incr_then_get : int t -> int
+incr_then_get r increments r and returns its new value, think ++ r
+Since 0.17
+
+ +
val get_then_incr : int t -> int
+get_then_incr r increments r and returns its old value, think r++
+Since 0.17
+
+ +
val compare : 'a ord -> 'a t ord
+
val equal : 'a eq -> 'a t eq
+
val to_list : 'a t -> 'a list
+
val to_seq : 'a t -> 'a sequence
+
val print : 'a print -> 'a t print
+
val pp : 'a pp -> 'a t pp
\ No newline at end of file diff --git a/0.17/Containers.Result.html b/0.17/Containers.Result.html new file mode 100644 index 00000000..6886b7f4 --- /dev/null +++ b/0.17/Containers.Result.html @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Result + + + +

Module Containers.Result

+ +
module Result: CCResult

+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ +
+

Basics


+ +
type ('good, 'bad) t = ('good, 'bad) Result.result = 
+ + + + + + + + + +
+| +Ok of 'good
+| +Error of 'bad
+ + + +
val return : 'a -> ('a, 'err) t
+Successfully return a value
+
+ +
val fail : 'err -> ('a, 'err) t
+Fail with an error
+
+ +
val of_exn : exn -> ('a, string) t
+of_exn e uses Printexc to print the exception as a string
+
+ +
val of_exn_trace : exn -> ('a, string) t
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +

+ + Remember to call Printexc.record_backtrace true and compile with the + debug flag for this to work.
+

+ +
val fail_printf : ('a, Buffer.t, unit, ('a, string) t) Pervasives.format4 -> 'a
+fail_printf format uses format to obtain an error message + and then returns Error msg
+
+ +
val fail_fprintf : ('a, Format.formatter, unit, ('a, string) t) Pervasives.format4 ->
'a
+fail_printf format uses format to obtain an error message + and then returns Error msg
+
+ +
val map : ('a -> 'b) -> ('a, 'err) t -> ('b, 'err) t
+Map on success
+
+ +
val map_err : ('err1 -> 'err2) -> ('a, 'err1) t -> ('a, 'err2) t
+Map on the error variant
+
+ +
val map2 : ('a -> 'b) ->
('err1 -> 'err2) -> ('a, 'err1) t -> ('b, 'err2) t
+Same as CCResult.map, but also with a function that can transform + the error message in case of failure
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Apply the function only in case of Ok
+
+ +
exception Get_error
+ +
val get_exn : ('a, 'b) t -> 'a
+Extract the value x from Ok x, fails otherwise. + You should be careful with this function, and favor other combinators + whenever possible.
+Raises Get_error if the value is an error.
+
+ +
val get_or : ('a, 'b) t -> default:'a -> 'a
+get_or e ~default returns x if e = Ok x, default otherwise
+
+ +
val map_or : ('a -> 'b) -> ('a, 'b) t -> default:'b -> 'b
+map_or f e ~default returns f x if e = Ok x, default otherwise
+
+ +
val catch : ('a, 'err) t -> ok:('a -> 'b) -> err:('err -> 'b) -> 'b
+catch e ~ok ~err calls either ok or err depending on + the value of e.
+
+ +
val flat_map : ('a -> ('b, 'err) t) ->
('a, 'err) t -> ('b, 'err) t
+
val (>|=) : ('a, 'err) t -> ('a -> 'b) -> ('b, 'err) t
+
val (>>=) : ('a, 'err) t ->
('a -> ('b, 'err) t) -> ('b, 'err) t
+
val equal : ?err:'err equal ->
'a equal -> ('a, 'err) t equal
+
val compare : ?err:'err ord ->
'a ord -> ('a, 'err) t ord
+
val fold : ok:('a -> 'b) -> error:('err -> 'b) -> ('a, 'err) t -> 'b
+fold ~ok ~error e opens e and, if e = Ok x, returns + ok x, otherwise e = Error s and it returns error s.
+
+
+

Wrappers


+ +
val guard : (unit -> 'a) -> ('a, exn) t
+guard f runs f () and returns its result wrapped in Ok. If + f () raises some exception e, then it fails with Error e
+
+ +
val guard_str : (unit -> 'a) -> ('a, string) t
+Same as CCResult.guard but uses CCResult.of_exn to print the exception.
+
+ +
val guard_str_trace : (unit -> 'a) -> ('a, string) t
+Same as CCResult.guard_str but uses CCResult.of_exn_trace instead of CCResult.of_exn so + that the stack trace is printed.
+
+ +
val wrap1 : ('a -> 'b) -> 'a -> ('b, exn) t
+Same as CCResult.guard but gives the function one argument.
+
+ +
val wrap2 : ('a -> 'b -> 'c) -> 'a -> 'b -> ('c, exn) t
+Same as CCResult.guard but gives the function two arguments.
+
+ +
val wrap3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> ('d, exn) t
+Same as CCResult.guard but gives the function three arguments.
+
+
+

Applicative


+ +
val pure : 'a -> ('a, 'err) t
+Synonym of CCResult.return
+
+ +
val (<*>) : ('a -> 'b, 'err) t -> ('a, 'err) t -> ('b, 'err) t
+a <*> b evaluates a and b, and, in case of success, returns + Ok (a b). Otherwise, it fails, and the error of a is chosen + over the error of b if both fail.
+
+ +
val join : (('a, 'err) t, 'err) t -> ('a, 'err) t
+join t, in case of success, returns Ok o from Ok (Ok o). Otherwise, + it fails with Error e where e is the unwrapped error of t.
+
+ +
val both : ('a, 'err) t -> ('b, 'err) t -> ('a * 'b, 'err) t
+both a b, in case of success, returns Ok (o, o') with the ok values + of a and b. Otherwise, it fails, and the error of a is chosen over the + error of b if both fail.
+
+
+

Infix


+ +
module Infix: sig .. end

+

Collections


+ +
val map_l : ('a -> ('b, 'err) t) -> 'a list -> ('b list, 'err) t
+
val fold_l : ('b -> 'a -> ('b, 'err) t) -> 'b -> 'a list -> ('b, 'err) t
+
val fold_seq : ('b -> 'a -> ('b, 'err) t) ->
'b -> 'a sequence -> ('b, 'err) t

+

Misc


+ +
val choose : ('a, 'err) t list -> ('a, 'err list) t
+choose l selects a member of l that is a Ok _ value, + or returns Error l otherwise, where l is the list of errors.
+
+ +
val retry : int -> (unit -> ('a, 'err) t) -> ('a, 'err list) t
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. If f fails n times, retry n f fails + with the list of successive errors.
+
+ +
module type MONAD = sig .. end
+Monadic Operations +
+ +
module Traverse (M : MONAD) : sig .. end

+

Conversions


+ +
val to_opt : ('a, 'b) t -> 'a option
+
val of_opt : 'a option -> ('a, string) t
+
val to_seq : ('a, 'b) t -> 'a sequence
+
type ('a, 'b) error = [ `Error of 'b | `Ok of 'a ] 
+ + +
val of_err : ('a, 'b) error -> ('a, 'b) t
+Since 0.17
+
+ +
val to_err : ('a, 'b) t -> ('a, 'b) error
+Since 0.17
+
+
+

IO


+ +
val pp : 'a printer -> ('a, string) t printer
+
val print : 'a formatter -> ('a, string) t formatter
\ No newline at end of file diff --git a/0.17/Containers.Set.OrderedType.html b/0.17/Containers.Set.OrderedType.html new file mode 100644 index 00000000..e3aa68ea --- /dev/null +++ b/0.17/Containers.Set.OrderedType.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Set.OrderedType + + + +

Module type Containers.Set.OrderedType

+ +
module type OrderedType = Set.OrderedType

+ \ No newline at end of file diff --git a/0.17/Containers.Set.html b/0.17/Containers.Set.html new file mode 100644 index 00000000..2130757a --- /dev/null +++ b/0.17/Containers.Set.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Set + + + +

Module Containers.Set

+ +
module Set: sig .. end

+ +
module type OrderedType = Set.OrderedType
+
include CCSet
+ \ No newline at end of file diff --git a/0.17/Containers.String.html b/0.17/Containers.String.html new file mode 100644 index 00000000..f20ff6f2 --- /dev/null +++ b/0.17/Containers.String.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.String + + + +

Module Containers.String

+ +
module String: sig .. end

+ +
include String
+ +
include CCString
+ \ No newline at end of file diff --git a/0.17/Containers.Vector.html b/0.17/Containers.Vector.html new file mode 100644 index 00000000..91575f03 --- /dev/null +++ b/0.17/Containers.Vector.html @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Vector + + + +

Module Containers.Vector

+ +
module Vector: CCVector

+ +
type ro = [ `RO ] 
+ + +
type rw = [ `RW ] 
+ +
+Mutability is rw (read-write) or ro (read-only)
+ +
type ('a, 'mut) t 
+
+The type of a vector of elements of type 'a, with + a mutability flat 'mut
+
+ + +
type 'a vector = ('a, rw) t 
+
+Type synonym: a 'a vector is mutable.
+
+ + +
type 'a ro_vector = ('a, ro) t 
+
+Alias for immutable vectors.
+Since 0.15
+
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
type 'a gen = unit -> 'a option 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a printer = Buffer.t -> 'a -> unit 
+ + +
type 'a formatter = Format.formatter -> 'a -> unit 
+ + +
val freeze : ('a, 'b) t -> ('a, ro) t
+Make an immutable vector (no copy! Don't use the old version)
+
+ +
val freeze_copy : ('a, 'b) t -> ('a, ro) t
+Copy the vector into an immutable version
+
+ +
val create : unit -> ('a, rw) t
+Create a new, empty vector
+
+ +
val create_with : ?capacity:int -> 'a -> ('a, rw) t
+Create a new vector, using the given value as a filler.
+
+
capacity : the size of the underlying array + caution: the value will likely not be GC'd before the vector is.
+ +
val return : 'a -> ('a, 'mut) t
+Singleton vector
+Since 0.14
+
+ +
val make : int -> 'a -> ('a, 'mut) t
+make n x makes a vector of size n, filled with x
+
+ +
val init : int -> (int -> 'a) -> ('a, 'mut) t
+Init the vector with the given function and size
+
+ +
val clear : ('a, rw) t -> unit
+Clear the content of the vector
+
+ +
val ensure_with : init:'a -> ('a, rw) t -> int -> unit
+Hint to the vector that it should have at least the given capacity.
+Since 0.14
+
+
init : if capacity v = 0, used as a filler + element for the underlying array (see CCVector.create_with)
+ +
val ensure : ('a, rw) t -> int -> unit
+Hint to the vector that it should have at least the given capacity. + Just a hint, will not be enforced if the vector is empty and init + is not provided.
+
+ +
val is_empty : ('a, 'b) t -> bool
+Is the vector empty?
+
+ +
val push : ('a, rw) t -> 'a -> unit
+Add an element at the end of the vector
+
+ +
val append : ('a, rw) t -> ('a, 'b) t -> unit
+append a b adds all elements of b to a
+
+ +
val append_array : ('a, rw) t -> 'a array -> unit
+Same as append, with an array
+
+ +
val append_seq : ('a, rw) t -> 'a sequence -> unit
+Append content of sequence
+
+ +
val append_list : ('a, rw) t -> 'a list -> unit
+Append content of list
+Since 0.14
+
+ +
val equal : 'a equal -> ('a, 'b) t equal
+
val compare : 'a ord -> ('a, 'b) t ord
+Total ordering on vectors. Lexicographic comparison.
+
+ +
exception Empty
+
+Raised on empty stack
+
+ +
val pop : ('a, rw) t -> 'a option
+Remove last element, or None
+
+ +
val pop_exn : ('a, rw) t -> 'a
+Remove last element, or raise a Failure if empty
+Raises Empty on an empty vector
+
+ +
val top : ('a, 'b) t -> 'a option
+Top element, if present
+Since 0.6
+
+ +
val top_exn : ('a, 'b) t -> 'a
+Top element, if present
+Since 0.6
+Raises Empty on an empty vector
+
+ +
val copy : ('a, 'b) t -> ('a, 'mut) t
+Shallow copy (may give an immutable or mutable vector)
+
+ +
val shrink : ('a, rw) t -> int -> unit
+Shrink to the given size (remove elements above this size). + Does nothing if the parameter is bigger than the current size.
+
+ +
val member : ?eq:('a -> 'a -> bool) -> 'a -> ('a, 'b) t -> bool
+Is the element a member of the vector?
+
+ +
val sort : ('a -> 'a -> int) -> ('a, 'b) t -> ('a, 'mut) t
+Sort the vector, returning a copy of it that is sorted + w.r.t the given ordering. The vector itself is unchanged.
+
+ +
val sort' : ('a -> 'a -> int) -> ('a, rw) t -> unit
+Sort the vector in place (modifying it).
+
+ +
val uniq_sort : ('a -> 'a -> int) -> ('a, rw) t -> unit
+Sort the array and remove duplicates, in place (e.g. modifying + the vector itself)
+
+ +
val iter : ('a -> unit) -> ('a, 'b) t -> unit
+Iterate on the vector's content
+
+ +
val iteri : (int -> 'a -> unit) -> ('a, 'b) t -> unit
+Iterate on the vector, with indexes
+
+ +
val map : ('a -> 'b) -> ('a, 'c) t -> ('b, 'mut) t
+Map elements of the vector, yielding a new vector
+
+ +
val filter : ('a -> bool) -> ('a, 'b) t -> ('a, 'mut) t
+Filter elements from the vector. filter p v leaves v unchanged but + returns a new vector that only contains elements of v satisfying p.
+
+ +
val filter' : ('a -> bool) -> ('a, rw) t -> unit
+Filter elements in place.
+
+ +
val fold : ('b -> 'a -> 'b) -> 'b -> ('a, 'c) t -> 'b
+Fold on elements of the vector
+
+ +
val exists : ('a -> bool) -> ('a, 'b) t -> bool
+Existential test (is there an element that satisfies the predicate?)
+
+ +
val for_all : ('a -> bool) -> ('a, 'b) t -> bool
+Universal test (do all the elements satisfy the predicate?)
+
+ +
val find : ('a -> bool) -> ('a, 'b) t -> 'a option
+Find an element that satisfies the predicate
+
+ +
val find_exn : ('a -> bool) -> ('a, 'b) t -> 'a
+Find an element that satisfies the predicate, or
+Raises Not_found if no element does
+
+ +
val find_map : ('a -> 'b option) -> ('a, 'c) t -> 'b option
+find_map f v returns the first Some y = f x for x in v, + or None if f x = None for each x in v
+Since 0.14
+
+ +
val filter_map : ('a -> 'b option) -> ('a, 'c) t -> ('b, 'mut) t
+Map elements with a function, possibly filtering some of them out
+
+ +
val flat_map : ('a -> ('b, 'c) t) -> ('a, 'd) t -> ('b, 'mut) t
+Map each element to a sub-vector
+
+ +
val flat_map_seq : ('a -> 'b sequence) -> ('a, 'c) t -> ('b, 'mut) t
+Like CCVector.flat_map, but using CCVector.sequence for + intermediate collections.
+Since 0.14
+
+ +
val flat_map_list : ('a -> 'b list) -> ('a, 'c) t -> ('b, 'mut) t
+Like CCVector.flat_map, but using list for + intermediate collections.
+Since 0.14
+
+ +
val flat_map' : ('a -> 'b sequence) -> ('a, 'c) t -> ('b, 'mut) t
+Deprecated.since 0.14 , use CCVector.flat_map_seq
+Alias to CCVector.flat_map_seq
+
+ +
val (>>=) : ('a, 'c) t -> ('a -> ('b, 'd) t) -> ('b, 'mut) t
+Infix version of CCVector.flat_map
+
+ +
val (>|=) : ('a, 'c) t -> ('a -> 'b) -> ('b, 'mut) t
+Infix version of CCVector.map
+
+ +
val get : ('a, 'b) t -> int -> 'a
+Access element by its index, or
+Raises Invalid_argument if bad index
+
+ +
val set : ('a, rw) t -> int -> 'a -> unit
+Modify element at given index, or
+Raises Invalid_argument if bad index
+
+ +
val remove : ('a, rw) t -> int -> unit
+Remove the n-th element of the vector. Does NOT preserve the order + of the elements (might swap with the last element)
+
+ +
val rev : ('a, 'b) t -> ('a, 'mut) t
+Reverse the vector
+
+ +
val rev_in_place : ('a, rw) t -> unit
+Reverse the vector in place
+Since 0.14
+
+ +
val rev' : ('a, rw) t -> unit
+Deprecated.since 0.14 old name for CCVector.rev_in_place
+
+ +
val rev_iter : ('a -> unit) -> ('a, 'b) t -> unit
+rev_iter f a is the same as iter f (rev a), only more efficient.
+Since 0.14
+
+ +
val size : ('a, 'b) t -> int
+Number of elements in vector
+
+ +
val length : ('a, 'b) t -> int
+Synonym for CCVector.size
+
+ +
val capacity : ('a, 'b) t -> int
+Number of elements the vector can contain without being resized
+
+ +
val unsafe_get_array : ('a, rw) t -> 'a array
+Access the underlying shared array (do not modify!). + unsafe_get_array v is longer than size v, but elements at higher + index than size v are undefined (do not access!).
+
+ +
val (--) : int -> int -> (int, 'mut) t
+Range of integers, either ascending or descending (both included, + therefore the result is never empty). + Example: 1 -- 10 returns the vector [1;2;3;4;5;6;7;8;9;10]
+
+ +
val (--^) : int -> int -> (int, 'mut) t
+Range of integers, either ascending or descending, but excluding right., + Example: 1 --^ 10 returns the vector [1;2;3;4;5;6;7;8;9]
+Since 0.17
+
+ +
val of_array : 'a array -> ('a, 'mut) t
+
val of_list : 'a list -> ('a, 'mut) t
+
val to_array : ('a, 'b) t -> 'a array
+
val to_list : ('a, 'b) t -> 'a list
+
val of_seq : ?init:('a, rw) t ->
'a sequence -> ('a, rw) t
+
val to_seq : ('a, 'b) t -> 'a sequence
+
val to_seq_rev : ('a, 'b) t -> 'a sequence
+to_seq_rev v returns the sequence of elements of v in reverse order, + that is, the last elements of v are iterated on first.
+Since 0.14
+
+ +
val slice : ('a, rw) t -> 'a array * int * int
+Vector as an array slice. By doing it we expose the internal array, so + be careful!
+
+ +
val slice_seq : ('a, 'b) t -> int -> int -> 'a sequence
+slice_seq v start len is the sequence of elements from v.(start) + to v.(start+len-1).
+
+ +
val of_klist : ?init:('a, rw) t ->
'a klist -> ('a, rw) t
+
val to_klist : ('a, 'b) t -> 'a klist
+
val of_gen : ?init:('a, rw) t ->
'a gen -> ('a, rw) t
+
val to_gen : ('a, 'b) t -> 'a gen
+
val pp : ?start:string ->
?stop:string ->
?sep:string -> 'a printer -> ('a, 'b) t printer
+
val print : ?start:string ->
?stop:string ->
?sep:string ->
'a formatter -> ('a, 'b) t formatter
\ No newline at end of file diff --git a/0.17/Containers.html b/0.17/Containers.html new file mode 100644 index 00000000..99b69fb8 --- /dev/null +++ b/0.17/Containers.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers + + + +

Module Containers

+ +
module Containers: sig .. end
+

Drop-In replacement to Stdlib

+

+ +This module is meant to be opened if one doesn't want to use both, say, +List and CCList. Instead, List is now an alias to +

struct
+    include List
+    include CCList
+  end
+

+Since 0.10
+
+
+ +
module Array: sig .. end
+
module Bool: CCBool
+
module Error: CCError
+
module Float: CCFloat
+
module Format: sig .. end
+
module Fun: CCFun
+
module Hash: CCHash
+
module Int: CCInt
+
module Hashtbl: sig .. end
+
+ +
module List: sig .. end
+
module Map: sig .. end
+
module Option: CCOpt
+
module Pair: CCPair
+
module Random: sig .. end
+
module Ref: CCRef
+
module Set: sig .. end
+
module String: sig .. end
+
module Vector: CCVector
+
module Int64: CCInt64
+
module Char: sig .. end
+
module Result: CCResult
\ No newline at end of file diff --git a/0.17/Containers_advanced.Batch.html b/0.17/Containers_advanced.Batch.html new file mode 100644 index 00000000..ac700ce2 --- /dev/null +++ b/0.17/Containers_advanced.Batch.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Batch + + + +

Module Containers_advanced.Batch

+ +
module Batch: CCBatch

+ +
module type COLLECTION = sig .. end
+Definition of a Collection +
+ +
module type S = sig .. end
+Definition of a Batch operations +
+ +
module Make (C : COLLECTION) : S  with type 'a t = 'a C.t
+Functor +
+ \ No newline at end of file diff --git a/0.17/Containers_advanced.Cat.html b/0.17/Containers_advanced.Cat.html new file mode 100644 index 00000000..e5c2c1fc --- /dev/null +++ b/0.17/Containers_advanced.Cat.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Cat + + + +

Module Containers_advanced.Cat

+ +
module Cat: CCCat

+
+

Signatures


+ +
module type MONOID = sig .. end
+
module type FUNCTOR = sig .. end
+
module type APPLICATIVE = sig .. end
+
module type MONAD_BARE = sig .. end
+
module type MONAD = sig .. end
+
module type MONAD_TRANSFORMER = sig .. end
+
type 'a sequence = ('a -> unit) -> unit 
+
+Cheating: use an equivalent of "to List" with a sequence
+
+ + +
module type FOLDABLE = sig .. end
+
module type TRAVERSE = (M : MONAD) sig .. end
+
module type FREE_MONAD = sig .. end
+The free monad is built by nesting applications of a functor F. +
+
+

Some Implementations


+ +
module WrapMonad (M : MONAD_BARE) : MONAD  with type 'a t = 'a M.t
+Implement the applicative and functor modules from only return and bind +
+ +
module MakeFree (F : FUNCTOR) : FREE_MONAD  with module F = F
+
module MakeFreeFold (FM : FREE_MONAD)  (Fold : FOLDABLE  with type 'a t = 'a FM.F.t) : FOLDABLE  with type 'a t = 'a FM.t
\ No newline at end of file diff --git a/0.17/Containers_advanced.Linq.html b/0.17/Containers_advanced.Linq.html new file mode 100644 index 00000000..9017817a --- /dev/null +++ b/0.17/Containers_advanced.Linq.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Linq + + + +

Module Containers_advanced.Linq

+ +
module Linq: CCLinq

+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a equal = 'a -> 'a -> bool 
+ + +
type 'a ord = 'a -> 'a -> int 
+ + +
type 'a hash = 'a -> int 
+ + +
type 'a with_err = [ `Error of string | `Ok of 'a ] 
+ + +
module PMap: sig .. end
+Polymorphic Maps +
+
+

Query operators


+ +
type 'a t 
+
+Type of a query that returns zero, one or more values of type 'a
+
+ +
+
Initial values

+ +
val empty : 'a t
+Empty collection
+
+ +
val start : 'a -> 'a t
+Deprecated.since 0.13, use CCLinq.return instead
+Start with a single value
+
+ +
val return : 'a -> 'a t
+Return one value
+
+ +
val of_list : 'a list -> 'a t
+Query that just returns the elements of the list
+
+ +
val of_array : 'a array -> 'a t
+
val of_array_i : 'a array -> (int * 'a) t
+
val range : int -> int -> int t
+range i j goes from i up to j included
+
+ +
val (--) : int -> int -> int t
+Synonym to CCLinq.range
+
+ +
val of_hashtbl : ('a, 'b) Hashtbl.t -> ('a * 'b) t
+
val of_seq : 'a sequence -> 'a t
+Query that returns the elements of the given sequence.
+
+ +
val of_queue : 'a Queue.t -> 'a t
+
val of_stack : 'a Stack.t -> 'a t
+
val of_string : string -> char t
+Traverse the characters of the string
+
+
+
Execution

+ +
val run : ?limit:int -> 'a t -> 'a sequence
+Execute the query, possibly returning an error if things go wrong
+
+
limit : max number of values to return
+ +
val run1 : 'a t -> 'a
+Run the query and return the first value
+Raises Not_found if the query succeeds with 0 element
+
+ +
val run_no_optim : ?limit:int -> 'a t -> 'a sequence
+Run without any optimization
+
+
+
Basics

+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map each value
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Infix synonym of CCLinq.map
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+Filter out values that do not satisfy predicate
+
+ +
val size : 'a t -> int t
+size t returns one value, the number of items returned by t
+
+ +
val choose : 'a t -> 'a t
+Choose one element (if any, otherwise empty) in the collection. + This is like a "cut" in prolog.
+
+ +
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
+Filter and map elements at once
+
+ +
val flat_map : ('a -> 'b sequence) -> 'a t -> 'b t
+Same as CCLinq.flat_map but using sequences
+
+ +
val flat_map_l : ('a -> 'b list) -> 'a t -> 'b t
+map each element to a collection and flatten the result
+
+ +
val flatten : 'a list t -> 'a t
+
val flatten_seq : 'a sequence t -> 'a t
+
val take : int -> 'a t -> 'a t
+Take at most n elements
+
+ +
val take_while : ('a -> bool) -> 'a t -> 'a t
+Take elements while they satisfy a predicate
+
+ +
val sort : ?cmp:'a ord -> unit -> 'a t -> 'a t
+Sort items by the given comparison function
+
+ +
val distinct : ?cmp:'a ord -> unit -> 'a t -> 'a t
+Remove duplicate elements from the input collection. + All elements in the result are distinct.
+
+
+
Aggregation

+ +
val group_by : ?cmp:'b ord ->
?eq:'b equal ->
?hash:'b hash ->
('a -> 'b) -> 'a t -> ('b, 'a list) PMap.t t
+group_by f takes a collection c as input, and returns + a multimap m such that for each x in c, + x occurs in m under the key f x. In other words, f is used + to obtain a key from x, and x is added to the multimap using this key.
+
+ +
val group_by' : ?cmp:'b ord ->
?eq:'b equal ->
?hash:'b hash -> ('a -> 'b) -> 'a t -> ('b * 'a list) t
+
val count : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash ->
unit -> 'a t -> ('a, int) PMap.t t
+count c returns a map from elements of c to the number + of time those elements occur.
+
+ +
val count' : ?cmp:'a ord -> unit -> 'a t -> ('a * int) t
+
val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b t
+Fold over the collection
+
+ +
val reduce : ('a -> 'b) -> ('a -> 'b -> 'b) -> ('b -> 'c) -> 'a t -> 'c t
+reduce start mix stop q uses start on the first element of q, + and combine the result with following elements using mix. The final + value is transformed using stop.
+
+ +
val is_empty : 'a t -> bool t
+
val sum : int t -> int t
+
val contains : ?eq:'a equal -> 'a -> 'a t -> bool t
+
val average : int t -> int t
+
val max : int t -> int t
+
val min : int t -> int t
+
val for_all : ('a -> bool) -> 'a t -> bool t
+
val exists : ('a -> bool) -> 'a t -> bool t
+
val find : ('a -> bool) -> 'a t -> 'a option t
+
val find_map : ('a -> 'b option) -> 'a t -> 'b option t

+
Binary Operators

+ +
val join : ?cmp:'key ord ->
?eq:'key equal ->
?hash:'key hash ->
('a -> 'key) ->
('b -> 'key) ->
merge:('key -> 'a -> 'b -> 'c option) ->
'a t -> 'b t -> 'c t
+join key1 key2 ~merge is a binary operation + that takes two collections a and b, projects their + elements resp. with key1 and key2, and combine + values (x,y) from (a,b) with the same key + using merge. If merge returns None, the combination + of values is discarded.
+
+ +
val group_join : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash ->
('b -> 'a) ->
'a t -> 'b t -> ('a, 'b list) PMap.t t
+group_join key2 associates to every element x of + the first collection, all the elements y of the second + collection such that eq x (key y)
+
+ +
val product : 'a t -> 'b t -> ('a * 'b) t
+Cartesian product
+
+ +
val append : 'a t -> 'a t -> 'a t
+Append two collections together
+
+ +
val inter : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Intersection of two collections. Each element will occur at most once + in the result
+
+ +
val union : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Union of two collections. Each element will occur at most once + in the result
+
+ +
val diff : ?cmp:'a ord ->
?eq:'a equal ->
?hash:'a hash -> unit -> 'a t -> 'a t -> 'a t
+Set difference
+
+
+
Tuple and Options

+
+
Tuple and Options

+
+Specialized projection operators
+ +
val fst : ('a * 'b) t -> 'a t
+
val snd : ('a * 'b) t -> 'b t
+
val map1 : ('a -> 'b) -> ('a * 'c) t -> ('b * 'c) t
+
val map2 : ('a -> 'b) -> ('c * 'a) t -> ('c * 'b) t
+
val flatten_opt : 'a option t -> 'a t
+Flatten the collection by removing options
+
+
+
Applicative

+ +
val pure : 'a -> 'a t
+Synonym to CCLinq.return
+
+ +
val app : ('a -> 'b) t -> 'a t -> 'b t
+Apply each function to each value
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+Infix synonym to CCLinq.app
+
+
+
Monad
+

+ +Careful, those operators do not allow any optimization before running the +query, they might therefore be pretty slow.
+ +

val bind : ('a -> 'b t) -> 'a t -> 'b t
+Use the result of a query to build another query and immediately run it.
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Infix version of CCLinq.bind
+
+
+
Misc

+ +
val lazy_ : 'a lazy_t t -> 'a t
+
val opt_unwrap : 'a option t -> 'a t
+
val reflect : 'a t -> 'a sequence t
+reflect q evaluates all values in q and returns a sequence + of all those values. Also blocks optimizations
+
+
+
Infix

+ +
module Infix: sig .. end

+
Adapters

+ +
val to_seq : 'a t -> 'a sequence t
+Build a (re-usable) sequence of elements, which can then be + converted into other structures
+
+ +
val to_hashtbl : ('a * 'b) t -> ('a, 'b) Hashtbl.t t
+Build a hashtable from the collection
+
+ +
val to_queue : 'a t -> 'a Queue.t t
+
val to_stack : 'a t -> 'a Stack.t t
+
module List: sig .. end
+
module Array: sig .. end
+
module AdaptSet (S : Set.S) : sig .. end
+
module AdaptMap (M : Map.S) : sig .. end
+
module IO: sig .. end
\ No newline at end of file diff --git a/0.17/Containers_advanced.MonadIO.html b/0.17/Containers_advanced.MonadIO.html new file mode 100644 index 00000000..0b76793f --- /dev/null +++ b/0.17/Containers_advanced.MonadIO.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.MonadIO + + + +

Module Containers_advanced.MonadIO

+ +
module MonadIO: CCMonadIO

+
+Examples: +

+

+ +
let l = CCIO.((with_in "/tmp/some_file" >>>= read_lines) |> run_exn);;
+
+

+

+ +
# let a = CCIO.(
+  with_in "input" >>>= fun ic ->
+  with_out ~flags:[Open_creat"output" >>>= fun oc ->
+  Seq.chunks 512 ic
+  |> Seq.output oc
+) ;;
+
+# run a;;
+

+ +
type 'a t 
+ + +
type 'a io = 'a t 
+ + +
type 'a with_finalizer 
+
+A value of type 'a with_finalizer is similar to a value 'a t but + also contains a finalizer that must be run to cleanup. + See CCMonadIO.(>>>=) to get rid of it.
+
+ + +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Wait for the result of an action, then use a function to build a + new action and execute it
+
+ +
val return : 'a -> 'a t
+Just return a value
+
+ +
val repeat : int -> 'a t -> 'a list t
+Repeat an IO action as many times as required
+
+ +
val repeat' : int -> 'a t -> unit t
+Same as CCMonadIO.repeat, but ignores the result
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map values
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+
val bind : ?finalize:unit t ->
('a -> 'b t) -> 'a t -> 'b t
+bind f a runs the action a and applies f to its result + to obtain a new action. It then behaves exactly like this new + action.
+
+
finalize : an optional action that is always run after evaluating + the whole action
+ +
val pure : 'a -> 'a t
+
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+
val lift : ('a -> 'b) -> 'a t -> 'b t
+Synonym to CCMonadIO.map
+
+ +
val lift2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
+
val lift3 : ('a -> 'b -> 'c -> 'd) ->
'a t -> 'b t -> 'c t -> 'd t
+
val sequence : 'a t list -> 'a list t
+Runs operations one by one and gather their results
+
+ +
val sequence_map : ('a -> 'b t) -> 'a list -> 'b list t
+Generalization of CCMonadIO.sequence
+
+ +
val fail : string -> 'a t
+fail msg fails with the given message. Running the IO value will + return an `Error variant
+
+
+

Finalizers


+ +
val (>>>=) : 'a with_finalizer -> ('a -> 'b t) -> 'b t
+Same as CCMonadIO.(>>=), but taking the finalizer into account. Once this + IO value is done executing, the finalizer is executed and the resource, + fred.
+
+
+

Running


+ +
val run : 'a t -> 'a or_error
+Run an IO action.
+Returns either `Ok x when x is the successful result of the + computation, or some `Error "message"
+
+ +
exception IO_error of string
+ +
val run_exn : 'a t -> 'a
+Unsafe version of CCMonadIO.run. It assumes non-failure.
+Raises IO_error if the execution didn't go well
+
+ +
val register_printer : (exn -> string option) -> unit
+register_printer p register p as a possible failure printer. + If run a raises an exception e, p e is evaluated. If p e = Some msg + then the error message will be msg, otherwise other printers will + be tried
+
+
+

Standard Wrappers


+
+

Standard Wrappers


+
+
Input

+ +
val with_in : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.in_channel with_finalizer
+Open an input file with the given optional flag list. + It yields a in_channel with a finalizer attached. See CCMonadIO.(>>>=) to + use it.
+
+ +
val read : Pervasives.in_channel -> Bytes.t -> int -> int -> int t
+Read a chunk into the given string
+
+ +
val read_line : Pervasives.in_channel -> string option t
+Read a line from the channel. Returns None if the input is terminated.
+
+ +
val read_lines : Pervasives.in_channel -> string list t
+Read all lines eagerly
+
+ +
val read_all : Pervasives.in_channel -> string t
+Read the whole channel into a buffer, then converted into a string
+
+
+
Output

+ +
val with_out : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.out_channel with_finalizer
+Same as CCMonadIO.with_in but for an output channel
+
+ +
val with_out_a : ?mode:int ->
?flags:Pervasives.open_flag list ->
string -> Pervasives.out_channel with_finalizer
+Similar to CCMonadIO.with_out but with the Open_append and Open_creat + flags activated
+
+ +
val write : Pervasives.out_channel -> string -> int -> int -> unit t
+
val write_str : Pervasives.out_channel -> string -> unit t
+
val write_buf : Pervasives.out_channel -> Buffer.t -> unit t
+
val write_line : Pervasives.out_channel -> string -> unit t
+
val flush : Pervasives.out_channel -> unit t

+

Streams

+

+ +Iterators on chunks of bytes, or lines, or any other value using combinators. +Those iterators are usable only once, because their source might +be usable only once (think of a socket)
+ +

module Seq: sig .. end

+
File and file names
+

+ +How to list recursively files in a directory: +

  CCIO.(
+    File.read_dir ~recurse:true (File.make "/tmp")
+    >>= Seq.output ~sep:"\n" stdout
+  ) |> CCIO.run_exn ;;
+
+  
+

+ +See CCMonadIO.File.walk if you also need to list directories.
+ +

module File: sig .. end
+
module Raw: sig .. end
+Low level access +
+ \ No newline at end of file diff --git a/0.17/Containers_advanced.html b/0.17/Containers_advanced.html new file mode 100644 index 00000000..ee4e7388 --- /dev/null +++ b/0.17/Containers_advanced.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced + + + +

Module Containers_advanced

+ +
module Containers_advanced: sig .. end

+ +
module Batch: CCBatch
+
module Cat: CCCat
+
module Linq: CCLinq
+
module MonadIO: CCMonadIO
\ No newline at end of file diff --git a/0.17/Containers_io_is_deprecated.html b/0.17/Containers_io_is_deprecated.html new file mode 100644 index 00000000..b76bbfd5 --- /dev/null +++ b/0.17/Containers_io_is_deprecated.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_io_is_deprecated + + + +

Module Containers_io_is_deprecated

+ +
module Containers_io_is_deprecated: sig .. end
+CCIO has moved into Containers, the main library. +

+ + The reason is that it has no additional dependency and is arguably a + useful completement to parts of Pervasives (the channel management) +

+ + As a result, linking "containers" rather than "containers.io" should be + enough if one needs CCIO.
+

+
+ \ No newline at end of file diff --git a/0.17/Containers_string.App_parse.html b/0.17/Containers_string.App_parse.html new file mode 100644 index 00000000..e78f8fb7 --- /dev/null +++ b/0.17/Containers_string.App_parse.html @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.App_parse + + + +

Module Containers_string.App_parse

+ +
module App_parse: CCApp_parse

+ +
type ('a, 'b) result = [ `Error of 'b | `Ok of 'a ] 
+ + +
type 'a t 
+
+Parser that yields an error or a value of type 'a
+
+ +
+
Combinators

+ +
val return : 'a -> 'a t
+Parser that succeeds with the given value
+
+ +
val pure : 'a -> 'a t
+Synonym to CCApp_parse.return
+
+ +
val junk : unit t
+Skip next char
+
+ +
val fail : string -> 'a t
+fail msg fails with the given error message
+
+ +
val failf : ('a, unit, string, 'b t) Pervasives.format4 -> 'a
+
val app : ('a -> 'b) t -> 'a t -> 'b t
+Applicative
+
+ +
val map : ('a -> 'b) -> 'a t -> 'b t
+Map the parsed value
+
+ +
val int : int t
+Parse an integer
+
+ +
val float : float t
+Parse a floating point number
+
+ +
val bool : bool t
+Parse "true" or "false"
+
+ +
val char : char -> char t
+char c parses c and c only
+
+ +
val any_of : string -> char t
+Parse any of the chars present in the given string
+
+ +
val alpha_lower : char t
+
val alpha_upper : char t
+
val alpha : char t
+
val symbols : char t
+Symbols, such as "!-=_"...
+
+ +
val num : char t
+
val alpha_num : char t
+
val word : string t
+word parses any identifier not starting with an integer and + not containing any whitespace nor delimiter + TODO: specify
+
+ +
val quoted : string t
+Quoted string, following OCaml conventions
+
+ +
val str_of_l : char list -> string
+Helper to build strings from lists of chars
+
+ +
val spaces : unit t
+Parse a sequence of '\t' and ' '
+
+ +
val spaces1 : unit t
+Same as CCApp_parse.spaces but requires at least one space
+
+ +
val white : unit t
+Parse a sequence of '\t', '\n' and ' '
+
+ +
val white1 : unit t
+
val eof : unit t
+Matches the end of input, fails otherwise
+
+ +
val many : ?sep:unit t -> 'a t -> 'a list t
+0 or more parsed elements of the given type.
+
+
sep : separator between elements of the list (for instance, space)
+ +
val many1 : ?sep:unit t -> 'a t -> 'a list t
+Same as CCApp_parse.many, but needs at least one element
+
+ +
val skip : 'a t -> unit t
+Skip 0 or more instances of the given parser
+
+ +
val skip1 : 'a t -> unit t
+
val opt : 'a t -> 'a option t
+opt x tries to parse x, and returns None otherwise
+
+ +
val filter : ('a -> bool) -> 'a t -> 'a t
+filter f p parses the same as p, but fails if the returned value + does not satisfy f
+
+ +
val switch_c : ?default:'a t ->
(char * 'a t) list -> 'a t
+switch_c l matches the next char and uses the corresponding parser. + Fails if the next char is not in the list, unless default is defined.
+Raises Invalid_argument if some char occurs several times in l
+
+
default : parser to use if no char matches
+ +
val switch_s : (string * 'a t) list -> 'a t
+switch_s l attempts to match matches any of the strings in l. + If one of those strings matches, the corresponding parser + is used from now on.
+Raises Invalid_argument if some string is a prefix of another string, + or is empty, or if the list is empty
+
+ +
val choice : 'a t list -> 'a t
+choice l chooses between the parsers, unambiguously
+Raises Invalid_argument if the list is empty, or if some parsers + overlap, making the choice ambiguous
+
+ +
val fix : ('a t -> 'a t) -> 'a t
+fix f makes a fixpoint
+
+ +
module Infix: sig .. end
+
include CCApp_parse.Infix
+
+

Signatures


+
+

Signatures


+
+
Parsing

+ +
type error = {
+ + + + + + + + + + + + + + +
+   +line : int;
+   +col : int;
+   +msg : string;
+} + + + +
val string_of_error : error -> string
+
exception Error of error
+ +
module type S = sig .. end

+

Parse


+ +
module type INPUT = sig .. end
+
module Make (I : INPUT) : S  with type source = I.t

+

Low-level interface


+ +
val print : Format.formatter -> 'a t -> unit
+Print a parser structure, for debug purpose
+
+ +
type token = 
+ + + + + + + + + +
+| +Yield of char
+| +EOF
+ + + +
module type READER = sig .. end
+
module MakeFromReader (R : READER) : S  with type source = R.source

+

Defaults


+ +
module Str: S  with type source = string
+
module Chan: S  with type source = in_channel
\ No newline at end of file diff --git a/0.17/Containers_string.KMP.html b/0.17/Containers_string.KMP.html new file mode 100644 index 00000000..3557d017 --- /dev/null +++ b/0.17/Containers_string.KMP.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.KMP + + + +

Module Containers_string.KMP

+ +
module KMP: CCKMP

+ +
module type STRING = sig .. end
+
type 'a gen = unit -> 'a option 
+ + +
type 'a sequence = ('a -> unit) -> unit 
+ + +
module type S = sig .. end
+
module Make (Str : STRING) : S  with type string = Str.t
+
include CCKMP.S
+ \ No newline at end of file diff --git a/0.17/Containers_string.Levenshtein.html b/0.17/Containers_string.Levenshtein.html new file mode 100644 index 00000000..ad6103ac --- /dev/null +++ b/0.17/Containers_string.Levenshtein.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.Levenshtein + + + +

Module Containers_string.Levenshtein

+ +
module Levenshtein: CCLevenshtein

+ +
type 'a sequence = ('a -> unit) -> unit 
+ + +
type 'a gen = unit -> 'a option 
+ +
+

Abstraction over Strings

+Due to the existence of several encodings and string representations we +abstract over the type of strings. A string is a finite array of characters +(8-bits char, unicode runes, etc.) which provides a length operation +and a function to access the n-th character.
+ +
module type STRING = sig .. end

+

Continuation list

+

+ +This data structure is used to represent a list of result that is +evaluated only as far as the user wants. If the user only wants a few elements, +she doesn't pay for the remaining ones. +

+ +In particular, when matching a string against a (big) set of indexed +strings, we return a continuation list so that, even if there are many results, +only those actually asked for are evaluated.
+ +

type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ] 
+ + +
val klist_to_list : 'a klist -> 'a list
+Helper for short lists.
+
+
+

Signature

+

+ +The signature for a given string representation provides 3 main things: +

+

+ +A possible use of the index could be: +
let words = CCIO.with_in "/usr/share/dict/words"
+  (fun i -> CCIO.read_all i |> CCString.Split.list_cpy ~by:"\n");;
+
+let words = List.map (fun s->s,s) words;;
+let idx = CCLevenshtein.Index.of_list words;;
+
+CCLevenshtein.Index.retrieve ~limit:1 idx "hell" |> CCLevenshtein.klist_to_list;;
+

+ +
module type S = sig .. end

+

Functor


+ +
module Make (Str : STRING) : S 
+  with type string_ = Str.t
+  and type char_ = Str.char_

+

Default instance: string


+ +
include CCLevenshtein.S
+ +
val debug_print : Pervasives.out_channel -> automaton -> unit
\ No newline at end of file diff --git a/0.17/Containers_string.Parse.html b/0.17/Containers_string.Parse.html new file mode 100644 index 00000000..8edddefc --- /dev/null +++ b/0.17/Containers_string.Parse.html @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.Parse + + + +

Module Containers_string.Parse

+ +
module Parse: CCParse

+ +
type 'a or_error = [ `Error of string | `Ok of 'a ] 
+ + +
type line_num = int 
+
+Since 0.13
+
+ + +
type col_num = int 
+
+Since 0.13
+
+ + +
exception ParseError of line_num * col_num * (unit -> string)
+
+position * message +

+ + This type changed at 0.13
+

+
+

Input


+ +
module MemoTbl: sig .. end
+
+ +
type input = {
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+   +is_done : unit -> bool;(*
+End of input?
+
+
*)
+   +cur : unit -> char;(*
+Current char
+
+
*)
+   +next : unit -> char;(*
+Returns current char; + if not is_done, move to next char, + otherwise throw ParseError
+
+
*)
+   +pos : unit -> int;(*
+Current pos
+
+
*)
+   +lnum : unit -> line_num;(*
+Line number
+Since 0.13
+
+
*)
+   +cnum : unit -> col_num;(*
+Column number
+Since 0.13
+
+
*)
+   +memo : MemoTbl.t;(*
+Memoization table, if any
+
+
*)
+   +backtrack : int -> unit;(*
+Restore to previous pos
+
+
*)
+   +sub : int -> int -> string;(*
+sub pos len extracts slice from pos with len
+
+
*)
+} + +
+The type of input, which must allow for backtracking somehow. + This type is unstable and its details might change.
+
+ + +
val input_of_string : string -> input
+Parse the string
+
+ +
val input_of_chan : ?size:int -> Pervasives.in_channel -> input
+input_of_chan ic reads lazily the content of ic as parsing goes. + All content that is read is saved to an internal buffer for backtracking.
+Since 0.13
+
+
size : number of bytes read at once from ic
+
+

Combinators


+ +
type 'a t = input -> ok:('a -> unit) -> err:(exn -> unit) -> unit 
+
+Takes the input and two continuations: + + + The type definition changed since 0.14 to avoid stack overflows
+Raises ParseError in case of failure
+
+ + +
val return : 'a -> 'a t
+Always succeeds, without consuming its input
+
+ +
val pure : 'a -> 'a t
+Synonym to CCParse.return
+
+ +
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
+Map
+
+ +
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
+Monadic bind
+
+ +
val (<*>) : ('a -> 'b) t -> 'a t -> 'b t
+Applicative
+
+ +
val ( <* ) : 'a t -> 'b t -> 'a t
+a <* b parses a into x, parses b and ignores its result, + and returns x
+
+ +
val ( *> ) : 'b t -> 'a t -> 'a t
+a *> b parses a, then parses b into x, and returns x. The + results of a is ignored.
+
+ +
val fail : string -> 'a t
+fail msg fails with the given message. It can trigger a backtrack
+
+ +
val eoi : unit t
+Expect the end of input, fails otherwise
+
+ +
val nop : unit t
+Succeed with ()
+
+ +
val char : char -> char t
+char c parses the char c and nothing else
+
+ +
val char_if : (char -> bool) -> char t
+char_if f parses a character c if f c = true
+
+ +
val chars_if : (char -> bool) -> string t
+chars_if f parses a string of chars that satisfy f
+
+ +
val chars1_if : (char -> bool) -> string t
+Same as CCParse.chars_if, but only non-empty strings
+
+ +
val endline : char t
+Parses '\n'
+
+ +
val space : char t
+Tab or space
+
+ +
val white : char t
+Tab or space or newline
+
+ +
val skip_chars : (char -> bool) -> unit t
+Skip 0 or more chars satisfying the predicate
+
+ +
val skip_space : unit t
+Skip ' ' and '\t'
+
+ +
val skip_white : unit t
+Skip ' ' and '\t' and '\n'
+
+ +
val is_alpha : char -> bool
+Is the char a letter?
+
+ +
val is_num : char -> bool
+Is the char a digit?
+
+ +
val is_alpha_num : char -> bool
+
val is_space : char -> bool
+True on ' ' and '\t'
+
+ +
val is_white : char -> bool
+True on ' ' and '\t' and '\n'
+Since 0.13
+
+ +
val (~~~) : (char -> bool) -> char -> bool
+Negation on predicates
+
+ +
val (|||) : (char -> bool) -> (char -> bool) -> char -> bool
+Disjunction on predicates
+
+ +
val (&&&) : (char -> bool) -> (char -> bool) -> char -> bool
+Conjunction on predicates
+
+ +
val (<|>) : 'a t -> 'a t -> 'a t
+a <|> b tries to parse a, and if a fails, backtracks and tries + to parse b. Therefore, it succeeds if either succeeds
+
+ +
val string : string -> string t
+string s parses exactly the string s, and nothing else
+
+ +
val many : 'a t -> 'a list t
+many p parses a list of p, eagerly (as long as possible)
+
+ +
val many1 : 'a t -> 'a list t
+parses a non empty list
+
+ +
val skip : 'a t -> unit t
+skip p parses p and ignores its result
+
+ +
val sep : by:'b t -> 'a t -> 'a list t
+sep ~by p parses a list of p separated by by
+
+ +
val sep1 : by:'b t -> 'a t -> 'a list t
+sep1 ~by p parses a non empty list of p, separated by by
+
+ +
val fix : ('a t -> 'a t) -> 'a t
+Fixpoint combinator
+
+ +
val memo : 'a t -> 'a t
+Memoize the parser. memo p will behave like p, but when called + in a state (read: position in input) it has already processed, memo p + returns a result directly. The implementation uses an underlying + hashtable. + This can be costly in memory, but improve the run time a lot if there + is a lot of backtracking involving p. +

+ + This function is not thread-safe.
+Since 0.13
+

+ +
val fix_memo : ('a t -> 'a t) -> 'a t
+Same as CCParse.fix, but the fixpoint is memoized.
+Since 0.13
+
+
+

Parse

+

+ + Those functions have a label ~p on the parser, since 0.14.
+ +

val parse : input:input -> p:'a t -> 'a or_error
+parse ~input p applies p on the input, and returns `Ok x if + p succeeds with x, or `Error s otherwise
+
+ +
val parse_exn : input:input -> p:'a t -> 'a
+Raises ParseError if it fails
+
+ +
val parse_string : string -> p:'a t -> 'a or_error
+Specialization of CCParse.parse for string inputs
+
+ +
val parse_string_exn : string -> p:'a t -> 'a
+Raises ParseError if it fails
+
+ +
val parse_file : ?size:int -> file:string -> p:'a t -> 'a or_error
+parse_file ~file p parses file with p by opening the file + and using CCParse.input_of_chan.
+Since 0.13
+
+
size : size of chunks read from file
+ +
val parse_file_exn : ?size:int -> file:string -> p:'a t -> 'a
+Unsafe version of CCParse.parse_file
+Since 0.13
+
+
+

Utils


+ +
module U: sig .. end
\ No newline at end of file diff --git a/0.17/Containers_string.html b/0.17/Containers_string.html new file mode 100644 index 00000000..9814847a --- /dev/null +++ b/0.17/Containers_string.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string + + + +

Module Containers_string

+ +
module Containers_string: sig .. end

+ +
module App_parse: CCApp_parse
+
module Parse: CCParse
+
module KMP: CCKMP
+
module Levenshtein: CCLevenshtein
\ No newline at end of file diff --git a/0.17/html.stamp b/0.17/html.stamp new file mode 100644 index 00000000..7f56787a --- /dev/null +++ b/0.17/html.stamp @@ -0,0 +1 @@ +f952c3ea7a7c85ace90f46d494bbafec \ No newline at end of file diff --git a/0.17/index.html b/0.17/index.html new file mode 100644 index 00000000..31e68148 --- /dev/null +++ b/0.17/index.html @@ -0,0 +1,559 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc + + +

Containers doc

+

Containers

+

+ +

Change Log

+

+ +See this file +

+ +

License

+

+ +This code is free, under the BSD license. +

+ +The logo (media/logo.png) is +CC-SA3 wikimedia +

+ +

Contents

+

+ +The design is mostly centered around polymorphism rather than functors. Such +structures comprise (some modules in misc/, some other in core/): +

+ +the core library, containers, now depends on +cppo and base-bytes (provided +by ocamlfind). +

+ +

Core Modules (extension of the standard library)

+

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
CCArray
+Array utils +
+
CCBool
+Basic Bool functions +
+
CCChar
+Utils around char +
+
CCError
+Error Monad +
+
CCFloat
+Basic Float functions +
+
CCFun
+Basic Functions +
+
CCFormat
+Helpers for Format +
+
CCHash
+Hash combinators +
+
CCHashtbl
+Extension to the standard Hashtbl +
+
CCHeap
+Leftist Heaps following Okasaki +
+
CCInt
+Basic Int functions +
+
CCInt64
+Int64 +
+
CCIO
+IO Utils +
+
CCList
+complements to list +
+
CCMap
+Extensions of Standard Map +
+
CCOpt
+Options +
+
CCOrd
+Comparisons +
+
CCPair
+Tuple Functions +
+
CCPrint
+Printer Combinators +
+
CCRandom
+Random Generators +
+
CCRef
+References +
+
CCResult
+Error Monad +
+
CCSet
+Wrapper around Set +
+
CCString
+Basic String Utils +
+
CCVector
+Growable, mutable vector +
+
Containers
+Drop-In replacement to Stdlib +
+
+ +

+ +The module Containers contains aliases to most other modules defined +in containers core, and mixins +such as: +

+ +

 module List = struct
+    include List
+    include CCList
+  end
+
+

+ +

Containers.data

+

+ +Various data structures. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CCAllocCache
+Simple Cache for Allocations +
+
CCBitField
+Bit Field +
+
CCBloom
+Bloom Filter +
+
CCBV
+Imperative Bitvectors +
+
CCCache
+Caches +
+
CCDeque
+Imperative deque +
+
CCFQueue
+Functional queues +
+
CCFlatHashtbl
+Open-Addressing Hash-table +
+
CCGraph
+Simple Graph Interface +
+
CCHashSet
+Mutable Set +
+
CCHashTrie
+Hash Tries +
+
CCImmutArray
+Immutable Arrays +
+
CCIntMap
+Map specialized for Int keys +
+
CCMixmap
+Maps with Heterogeneous Values +
+
CCMixset
+Set of Heterogeneous Values +
+
CCMixtbl
+Hash Table with Heterogeneous Keys +
+
CCMultiMap
+Multimap +
+
CCMultiSet
+Multiset +
+
CCPersistentArray
+Persistent Arrays +
+
CCPersistentHashtbl
+Persistent hash-table on top of OCaml's hashtables +
+
CCRAL
+Random-Access Lists +
+
CCRingBuffer
+Circular Buffer (Deque) +
+
CCTrie
+Prefix Tree +
+
CCWBTree
+Weight-Balanced Tree +
+
+ +

+ +

Containers.io

+

+ +deprecated use CCIO directly from the set of core modules. +

+ +

Containers.unix

+

+ +Helpers that depend on Unix, e.g. to spawn sub-processes. +

+ +
+ + +
CCUnix
+High-level Functions on top of Unix +
+
+ +

+ +

Containers.sexp

+

+ +A small S-expression library. The interface is relatively unstable, but +the main type (CCSexp.t) isn't. +

+ +
+ + + +
CCSexp
+Handling S-expressions +
+
CCSexpM
+Simple and efficient S-expression parsing/printing +
+
+ +

+ +

Containers.iter

+

+ +Iterators: +

+ +
+ + + + +
CCKList
+Continuation List +
+
CCKTree
+Lazy Tree Structure +This structure can be used to represent trees and directed +graphs (as infinite trees) in a lazy fashion. +
+
CCLazy_list
+Lazy List +
+
+ +

+ +

String

+

+ +
+ + + + + +
CCApp_parse
+Applicative Parser Combinators +
+
CCKMP
+Knuth-Morris-Pratt +
+
CCLevenshtein
+Levenshtein distance +
+
CCParse
+Very Simple Parser Combinators +
+
+ +

+ +

Bigarrays

+

+ +deprecated (use package bigstring instead) +Use bigarrays to hold large strings and map files directly into memory. +

+ +
+ + + +
CCBigstring
+Interface to 1-dimension Bigarrays of bytes (char) +
+
CCArray1
+Bigarrays of dimension 1 +
+
+ +

+ +

Advanced

+

+ +This module is qualified with Containers_advanced. It +requires Sequence. +

+ +
+ + + + +
CCLinq
+LINQ-like operations on collections +
+
CCCat
+Categorical Constructs +
+
CCBatch
+Batch Operations on Collections +Define and combine operations on a collection of elements, then +run the composition of those operations on some collection. +
+
+ +

+ +

Misc

+

+ +Moved to its own repository. +

+ +

Lwt

+

+ +Moved to its own repository +

+ +

Others

+

+ +
+ + + + + + + +
CCBlockingQueue
+Blocking Queue +
+
CCLock
+Utils around Mutex +
+
CCPool
+Thread Pool, and Futures +
+
CCSemaphore
+Semaphores +
+
CCThread
+Threads +
+
CCTimer
+Event timer +
+
+ +

+ +

Index

+

+ +

+
+ + \ No newline at end of file diff --git a/0.17/index_attributes.html b/0.17/index_attributes.html new file mode 100644 index 00000000..8a6277fc --- /dev/null +++ b/0.17/index_attributes.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of class attributes + + + +

Index of class attributes

+ +
+ + \ No newline at end of file diff --git a/0.17/index_class_types.html b/0.17/index_class_types.html new file mode 100644 index 00000000..f966e693 --- /dev/null +++ b/0.17/index_class_types.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of class types + + + +

Index of class types

+ + + + +

P
pset [CCKTree]
+Abstract Set structure +
+
+ + \ No newline at end of file diff --git a/0.17/index_classes.html b/0.17/index_classes.html new file mode 100644 index 00000000..75985c4c --- /dev/null +++ b/0.17/index_classes.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of classes + + + +

Index of classes

+ +
+ + \ No newline at end of file diff --git a/0.17/index_exceptions.html b/0.17/index_exceptions.html new file mode 100644 index 00000000..65342b23 --- /dev/null +++ b/0.17/index_exceptions.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of exceptions + + + +

Index of exceptions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

E
Empty [CCRingBuffer.S]
+Raised in querying functions when the buffer is empty +
+
Empty [CCFQueue]
Empty [CCDeque]
Empty [CCHeap.S]
Empty [CCVector]
+Raised on empty stack +
+
Error [CCApp_parse]
ExitEvery [CCTimer]
ExitServer [CCUnix]

F
Frozen [CCHashTrie.Transient]
+Raised when a frozen ID is used +
+
Frozen [CCBitField]
+Raised when a frozen bitfield is modified +
+

G
Get_error [CCResult]

H
Has_cycle [CCGraph]

I
IO_error [CCMonadIO]

P
ParseError [CCParse]
+position * message +
+
Pick_from_empty [CCRandom]
+
+

S
Sequence_once [CCGraph]
+Raised when a sequence meant to be used once is used several times +
+
Stopped [CCTimer]
Stopped [CCPool]

T
TooManyFields [CCBitField]
+Raised when too many fields are packed into one bitfield +
+
TrapNaN [CCFloat]

W
WrongDimension [CCArray1]
+Raised when arrays do not have expected length +
+
+ + \ No newline at end of file diff --git a/0.17/index_extensions.html b/0.17/index_extensions.html new file mode 100644 index 00000000..4dcd90af --- /dev/null +++ b/0.17/index_extensions.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of extensions + + + +

Index of extensions

+ +
+ + \ No newline at end of file diff --git a/0.17/index_methods.html b/0.17/index_methods.html new file mode 100644 index 00000000..bc687191 --- /dev/null +++ b/0.17/index_methods.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of class methods + + + +

Index of class methods

+ + + + + + + +

A
add [CCKTree.pset]

M
mem [CCKTree.pset]
+ + \ No newline at end of file diff --git a/0.17/index_module_types.html b/0.17/index_module_types.html new file mode 100644 index 00000000..27f11437 --- /dev/null +++ b/0.17/index_module_types.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of module types + + + +

Index of module types

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

A
APPLICATIVE [CCCat]

B
BIDIR [CCMultiMap]

C
COLLECTION [CCBatch]
+Definition of a Collection +
+
COUNTER [CCHashtbl]

D
DEFAULT [CCHashtbl]

E
ELEMENT [CCHashSet]
ELT [CCHashconsedSet]
EMPTY [CCBitField]
+Used for generativity on versions of OCaml older than 4.02 +
+

F
FIELD [CCBitField.S]
+Field of type value, with a given width and position within the + bitfield type +
+
FOLDABLE [CCCat]
FREE_MONAD [CCCat]
+The free monad is built by nesting applications of a functor F. +
+
FUNCTOR [CCCat]

H
HASH [CCHash]
HASHABLE [CCFlatHashtbl]
HashedType [CCPersistentHashtbl]

I
INPUT [CCApp_parse]

K
KEY [CCWBTree]
KEY [CCHashTrie]
+Type for keys +
+

M
MAP [CCGraph]
MONAD [CCSexpM]
MONAD [CCCat]
MONAD [CCKList]
+Monadic Operations +
+
MONAD [CCResult]
+Monadic Operations +
+
MONAD [CCList]
+Monadic Operations +
+
MONAD [CCError]
+Monadic Operations +
+
MONAD_BARE [CCCat]
MONAD_IO [CCPrint]
MONAD_TRANSFORMER [CCCat]
MONOID [CCCat]
MONO_ARRAY [CCArray]

O
ORD [CCWBTree]
ORD [CCMixmap]
ORDERED [CCTrie]
OrderedType [CCMultiMap]
OrderedType [Containers.Set]
OrderedType [Containers.Map]

P
PARAM [CCPool]
PARTIAL_ORD [CCHeap]

R
READER [CCApp_parse]

S
S [CCBatch]
+Definition of a Batch operations +
+
S [CCArray1]
S [CCArray1.View]
S [CCLevenshtein]
S [CCKMP]
S [CCApp_parse]
S [CCWBTree]
S [CCHashTrie]
+Signature +
+
S [CCBitField]
+Bitfield Signature +
+
S [CCHashSet]
S [CCHashconsedSet]
S [CCRingBuffer]
+Ring Buffer +
+
S [CCRingBuffer.Array]
S [CCMixmap]
S [CCPersistentHashtbl]
S [CCFlatHashtbl]
S [CCTrie]
S [CCMultiSet]
S [CCMultiMap]
S [CCMap]
S [CCHashtbl]
S [CCString]
S [CCSet]
S [CCArray]
S [CCHash]
S [CCHeap]
S' [Containers.Hashtbl]
STRING [CCLevenshtein]
STRING [CCKMP]

T
TRAVERSE [CCCat]

W
WORD [CCTrie]
+ + \ No newline at end of file diff --git a/0.17/index_modules.html b/0.17/index_modules.html new file mode 100644 index 00000000..e44efe69 --- /dev/null +++ b/0.17/index_modules.html @@ -0,0 +1,883 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of modules + + + +

Index of modules

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

A
AdaptMap [CCLinq]
AdaptSet [CCLinq]
App_parse [Containers_string]
Arr [CCThread]
+Array of threads +
+
Arr [CCAllocCache]
Array [CCLinq]
Array [CCRingBuffer.S]
+The module type of Array for this ring buffer +
+
Array [CCRingBuffer]
+The abstract type for arrays +
+
Array [Containers]
Assoc [CCList]

B
Barrier [CCThread]
Batch [Containers_advanced]
Bool [CCArray1]
Bool [Containers]
Byte [CCRingBuffer]
+An efficient byte based ring buffer +
+
Byte [CCRingBuffer.Array]
+Efficient array version for the char type +
+

C
CCAllocCache
+Simple Cache for Allocations +
+
CCApp_parse
+Applicative Parser Combinators +
+
CCArray
+Array utils +
+
CCArray1
+Bigarrays of dimension 1 +
+
CCBV
+Imperative Bitvectors +
+
CCBatch
+Batch Operations on Collections +Define and combine operations on a collection of elements, then +run the composition of those operations on some collection. +
+
CCBigstring
+Interface to 1-dimension Bigarrays of bytes (char) +
+
CCBitField
+Bit Field +
+
CCBlockingQueue
+Blocking Queue +
+
CCBloom
+Bloom Filter +
+
CCBool
+Basic Bool functions +
+
CCCache
+Caches +
+
CCCat
+Categorical Constructs +
+
CCChar
+Utils around char +
+
CCDeque
+Imperative deque +
+
CCError
+Error Monad +
+
CCFQueue
+Functional queues +
+
CCFlatHashtbl
+Open-Addressing Hash-table +
+
CCFloat
+Basic Float functions +
+
CCFormat
+Helpers for Format +
+
CCFun
+Basic Functions +
+
CCGraph
+Simple Graph Interface +
+
CCHash
+Hash combinators +
+
CCHashSet
+Mutable Set +
+
CCHashTrie
+Hash Tries +
+
CCHashconsedSet
+Hashconsed Sets +
+
CCHashtbl
+Extension to the standard Hashtbl +
+
CCHeap
+Leftist Heaps following Okasaki +
+
CCHet
+Associative containers with Heterogenerous Values +
+
CCIO
+IO Utils +
+
CCImmutArray
+Immutable Arrays +
+
CCInt
+Basic Int functions +
+
CCInt64
+Int64 +
+
CCIntMap
+Map specialized for Int keys +
+
CCKList
+Continuation List +
+
CCKMP
+Knuth-Morris-Pratt +
+
CCKTree
+Lazy Tree Structure +This structure can be used to represent trees and directed +graphs (as infinite trees) in a lazy fashion. +
+
CCLazy_list
+Lazy List +
+
CCLevenshtein
+Levenshtein distance +
+
CCLinq
+LINQ-like operations on collections +
+
CCList
+complements to list +
+
CCLock
+Utils around Mutex +
+
CCMap
+Extensions of Standard Map +
+
CCMixmap
+Maps with Heterogeneous Values +
+
CCMixset
+Set of Heterogeneous Values +
+
CCMixtbl
+Hash Table with Heterogeneous Keys +
+
CCMonadIO
+IO Monad +
+
CCMultiMap
+Multimap +
+
CCMultiSet
+Multiset +
+
CCOpt
+Options +
+
CCOrd
+Comparisons +
+
CCPair
+Tuple Functions +
+
CCParse
+Very Simple Parser Combinators +
+
CCPersistentArray
+Persistent Arrays +
+
CCPersistentHashtbl
+Persistent hash-table on top of OCaml's hashtables +
+
CCPool
+Thread Pool, and Futures +
+
CCPrint
+Printer Combinators +
+
CCRAL
+Random-Access Lists +
+
CCRandom
+Random Generators +
+
CCRef
+References +
+
CCResult
+Error Monad +
+
CCRingBuffer
+Circular Buffer (Deque) +
+
CCSemaphore
+Semaphores +
+
CCSet
+Wrapper around Set +
+
CCSexp
+Handling S-expressions +
+
CCSexpM
+Simple and efficient S-expression parsing/printing +
+
CCString
+Basic String Utils +
+
CCThread
+Threads +
+
CCTimer
+Event timer +
+
CCTrie
+Prefix Tree +
+
CCUnix
+High-level Functions on top of Unix +
+
CCVector
+Growable, mutable vector +
+
CCWBTree
+Weight-Balanced Tree +
+
Cat [Containers_advanced]
Chan [CCApp_parse]
Char [Containers]
Containers
+Drop-In replacement to Stdlib +
+
Containers_advanced
Containers_io_is_deprecated
+CCIO has moved into Containers, the main library. +
+
Containers_string
Counter [Containers.Hashtbl]

D
D [CCSexpM]
+Decoder that just blocks when input is not available +
+
Dot [CCGraph]
Dot [CCKTree]

E
Error [Containers]
Event [CCGraph.Traverse]
+More detailed interface +
+

F
F [CCCat.FREE_MONAD]
File [CCMonadIO]
File [CCIO]
Float [CCArray1.View]
Float [CCArray1]
Float [Containers]
Format [Containers]
Fun [Containers]
Fut [CCPool.Make]
+Futures +
+

H
Hash [Containers]
Hashtbl [Containers]
+
+

I
ID_MONAD [CCSexpM]
+The monad that just uses blocking calls as bind +
+
IO [CCLinq]
Idx [CCList]
Index [CCLevenshtein.S]
Infix [CCUnix]
Infix [CCLinq]
Infix [CCPool.Make.Fut]
Infix [CCArray1.S]
Infix [CCApp_parse]
Infix [CCRAL]
Infix [CCLazy_list]
Infix [CCKList]
Infix [CCResult]
Infix [CCFloat]
+Infix Operators +
+
Infix [CCInt]
+Infix Operators +
+
Infix [CCOpt]
Infix [CCList]
Infix [CCError]
Int [CCArray1.View]
Int [CCArray1]
Int [Containers]
Int64 [Containers]

K
KMP [Containers_string]
Key [CCHet]

L
LazyTree [CCGraph]
Levenshtein [Containers_string]
Linq [Containers_advanced]
List [CCLinq]
List [Containers]
LockRef [CCLock]
+Type allowing to manipulate the lock as a reference +
+

M
M [CCCat.MONAD_TRANSFORMER]
Make [CCBatch]
+Functor +
+
Make [CCPool]
+Create a new Pool +
+
Make [CCLevenshtein]
Make [CCKMP]
Make [CCApp_parse]
Make [CCWBTree]
Make [CCHashTrie]
+Functors +
+
Make [CCBitField]
+Create a new bitfield type +
+
Make [CCHashSet]
Make [CCHashconsedSet]
Make [CCRingBuffer]
+Buffer using regular arrays +
+
Make [CCRingBuffer.Array]
+Makes an array given an arbitrary element type +
+
Make [CCMixmap]
Make [CCPersistentHashtbl]
Make [CCFlatHashtbl]
Make [CCTrie]
Make [CCMultiSet]
Make [CCMultiMap]
Make [CCMap]
Make [CCHashtbl]
Make [CCSet]
Make [CCHash]
Make [CCHeap]
Make' [Containers.Hashtbl]
MakeArray [CCTrie]
MakeBidir [CCMultiMap]
MakeCounter [CCHashtbl]
+Create a new counter type + The type t is exposed +
+
MakeDecode [CCSexpM]
MakeDefault [Containers.Hashtbl]
MakeDefault [CCHashtbl]
MakeFree [CCCat]
MakeFreeFold [CCCat]
MakeFromArray [CCRingBuffer]
+Makes a ring buffer module with the given array type. +
+
MakeFromReader [CCApp_parse]
MakeFull [CCWBTree]
+Use the custom X.weight function +
+
MakeIO [CCPrint]
+Example: +
 module PrintLwt = CCPrint.MakeIO(struct
+    include Lwt
+    type output = Lwt_io.output_channel
+    let write = Lwt_io.write
+  end);;
+
+  PrintLwt.printl Lwt_io.stdout (CCList.pp CCInt.pp) [1;2;3;4];;
+  - : unit Lwt.t
+
+
+
MakeList [CCTrie]
Map [CCHet]
+Immutable map +
+
Map [CCGraph]
Map [Containers]
MemoTbl [CCParse]
+
+
Monad [CCFun]
MonadIO [Containers_advanced]

O
Option [Containers]

P
PMap [CCLinq]
+Polymorphic Maps +
+
Pair [Containers]
Parse [Containers_string]

R
Random [Containers]
Raw [CCMonadIO]
+Low level access +
+
Ref [Containers]
Ref [CCList]
Result [Containers]

S
Seq [CCMonadIO]
Seq [CCGraph]
Set [Containers]
Set [CCList]
Split [CCString]
Str [CCApp_parse]
String [CCTrie]
String [Containers]
Sub [CCString]
Sub [CCArray]

T
Tbl [CCHet]
+Imperative table indexed by CCHet.Key +
+
Transient [CCHashTrie]
+Transient Identifiers +
+
Traverse [CCSexp]
Traverse [CCGraph]
Traverse [CCKList]
Traverse [CCResult]
Traverse [CCList]
Traverse [CCError]

U
U [CCParse]

V
Vector [Containers]
View [CCArray1]

W
WrapMonad [CCCat]
+Implement the applicative and functor modules from only return and bind +
+

Z
Zipper [CCList]
+ + \ No newline at end of file diff --git a/0.17/index_types.html b/0.17/index_types.html new file mode 100644 index 00000000..05590ec6 --- /dev/null +++ b/0.17/index_types.html @@ -0,0 +1,1142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of types + + + +

Index of types

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

A
any_field [CCBitField.S]
array_ [CCArray1]
async_call_result [CCUnix]
+A subprocess for interactive usage (read/write channels line by line) +
+
attribute [CCGraph.Dot]
+Dot attribute +
+
attribute [CCKTree.Dot]
+Dot attributes for nodes +
+
automaton [CCLevenshtein.S]
+Levenshtein automaton +
+

B
bag [CCGraph]
+Bag of elements of type 'a +
+

C
call_result [CCUnix]
char [CCKMP.STRING]
char_ [CCLevenshtein.STRING]
char_ [CCLevenshtein.S]
char_ [CCTrie.WORD]
char_ [CCTrie.S]
col_num [CCParse]
+
+
conv [CCSexp.Traverse]
+A converter from S-expressions to 'a is a function sexp -> 'a option. +
+

E
edge_kind [CCGraph.Traverse.Event]
elt [CCArray1.View.S]
elt [CCArray1.S]
elt [CCHashSet.S]
elt [CCHashconsedSet.S]
elt [CCRingBuffer.Array.S]
+The element type +
+
elt [CCMultiSet.S]
elt [CCHashtbl.COUNTER]
+Elements that are to be counted +
+
elt [CCArray.MONO_ARRAY]
elt [CCHeap.S]
eq [CCHashtbl]
eq [CCRef]
equal [CCLinq]
equal [CCFQueue]
equal [CCPersistentHashtbl]
equal [CCCache]
equal [CCKList]
equal [CCResult]
equal [CCArray]
equal [CCError]
equal [CCVector]
error [CCApp_parse]
error [CCResult]

F
field [CCBitField.S]
field_kind [CCBitField.S]
fmt [CCOpt]
formatter [CCPersistentHashtbl]
formatter [CCKList]
formatter [CCKTree]
formatter [CCResult]
formatter [CCMap]
formatter [CCSet]
formatter [CCFloat]
formatter [CCBool]
formatter [CCInt]
formatter [CCPair]
formatter [CCList]
formatter [CCError]
formatter [CCVector]
fpclass [CCFloat]
future [CCPool.Make.Fut]

G
gen [CCSexpM]
gen [CCUnix]
gen [CCMonadIO.Seq]
gen [CCBigstring]
gen [CCLevenshtein]
gen [CCKMP]
gen [CCHet]
gen [CCImmutArray]
gen [CCRAL]
gen [CCWBTree]
gen [CCBloom]
gen [CCHashTrie]
gen [CCHashconsedSet.S]
gen [CCPersistentArray]
gen [CCIntMap]
gen [CCDeque]
gen [CCLazy_list]
gen [CCKList]
gen [CCKTree]
gen [CCIO]
+See Gen in the gen library +
+
gen [CCString]
gen [CCArray]
gen [CCHash]
gen [CCOpt]
gen [CCList]
gen [CCHeap]
gen [CCVector]
graph [CCGraph]
graph [CCKTree.Dot]
+A dot graph is a name, plus a list of trees labelled with attributes +
+

H
hash [CCLinq]
hash [CCCache]
hash [CCHashtbl]
hash_fun [CCHash.S]
hash_fun [CCHash]
+Hash function for values of type 'a, merging a fingerprint of the + value into the state of type t +
+
hash_funs [CCBloom]
+An array of k hash functions on values of type 'a. +
+

I
injection [CCMixmap]
+An accessor for values of type 'a in any map. +
+
injection [CCMixtbl]
+An accessor for values of type 'b in any table. +
+
input [CCParse]
+The type of input, which must allow for backtracking somehow. +
+
io [CCMonadIO]

J
json [CCArray1]

K
key [CCWBTree.S]
key [CCHashTrie.S]
key [CCMixset]
+A unique "key" to access a value of type 'a in a set +
+
key [CCMixmap.S]
key [CCPersistentHashtbl.S]
key [CCFlatHashtbl.S]
key [CCTrie.S]
key [CCMultiMap.S]
key [CCHashtbl.DEFAULT]
klist [CCLevenshtein]
klist [CCIntMap]
klist [CCFQueue]
klist [CCKTree]
klist [CCString]
klist [CCArray]
klist [CCHash]
klist [CCList]
klist [CCHeap]
klist [CCVector]
ktree [CCHashTrie]
ktree [CCTrie]
ktree [CCHeap]

L
left [CCMultiMap.BIDIR]
line [CCUnix]
line_num [CCParse]
+
+

M
mut_graph [CCGraph]

N
node [CCLazy_list]

O
of_json [CCArray1]
op [CCBatch.S]
+Operation that converts a 'a t into a 'b t +
+
or_error [CCSexpM]
or_error [CCUnix]
or_error [CCMonadIO]
or_error [CCArray1]
or_error [CCParse]
or_error [CCIO.File]
ord [CCLinq]
ord [CCKList]
ord [CCResult]
ord [CCRef]
ord [CCArray]
ord [CCError]
ord [CCVector]
output [CCPrint.MONAD_IO]
+Output channels +
+

P
pair [CCHet]
parse_result [CCSexpM]
+A parser of 'a can return `Ok x when it parsed a value, + or `Error e when a parse error was encountered, or + `End if the input was empty +
+
path [CCGraph.Traverse]
pattern [CCKMP.S]
+Compiled pattern (needle: string to search in another string) +
+
pp [CCRef]
print [CCRef]
printer [CCArray1]
printer [CCBigstring]
printer [CCImmutArray]
printer [CCRAL]
printer [CCWBTree]
printer [CCHashTrie]
printer [CCHashSet]
printer [CCPersistentArray]
printer [CCIntMap]
printer [CCFQueue]
printer [CCDeque]
printer [CCPersistentHashtbl]
printer [CCKList]
printer [CCKTree]
printer [CCResult]
printer [CCFormat]
printer [CCMap]
printer [CCHashtbl]
printer [CCSet]
printer [CCFloat]
printer [CCBool]
printer [CCInt]
printer [CCPair]
printer [CCOpt]
printer [CCList]
printer [CCHeap]
printer [CCError]
printer [CCVector]
process_full [CCUnix]
+Handle to a subprocess. +
+

R
random [CCArray1]
random_gen [CCRandom]
random_gen [CCArray]
random_gen [CCFloat]
random_gen [CCInt]
random_gen [CCOpt]
random_gen [CCList]
result [CCApp_parse]
right [CCMultiMap.BIDIR]
ro [CCVector]
ro_vector [CCVector]
+Alias for immutable vectors. +
+
rw [CCVector]

S
scc_state [CCGraph]
+Hidden state for CCGraph.scc +
+
sequence [CCSexpM]
sequence [CCLinq]
sequence [CCCat]
+Cheating: use an equivalent of "to List" with a sequence +
+
sequence [CCArray1]
sequence [CCBigstring]
sequence [CCLevenshtein]
sequence [CCKMP]
sequence [CCHet]
sequence [CCImmutArray]
sequence [CCRAL]
sequence [CCWBTree]
sequence [CCBloom]
sequence [CCHashTrie]
sequence [CCHashSet]
sequence [CCGraph]
+A sequence of items of type 'a, possibly infinite +
+
sequence [CCHashconsedSet.S]
sequence [CCPersistentArray]
sequence [CCIntMap]
sequence [CCMixmap.S]
sequence [CCMixtbl]
sequence [CCBV]
sequence [CCFQueue]
sequence [CCDeque]
sequence [CCPersistentHashtbl]
sequence [CCFlatHashtbl]
sequence [CCTrie]
sequence [CCMultiSet]
sequence [CCMultiMap]
sequence [CCKList]
sequence [CCKTree]
sequence [CCResult]
sequence [CCFormat]
sequence [CCMap]
sequence [CCHashtbl]
sequence [CCString]
sequence [CCSet]
sequence [CCRef]
sequence [CCArray]
sequence [CCHash]
sequence [CCOpt]
sequence [CCList]
sequence [CCHeap]
sequence [CCError]
sequence [CCPrint]
sequence [CCVector]
sequence_once [CCGraph]
+Sequence that should be used only once +
+
set [CCGraph]
+Mutable set +
+
sexp [CCSexpM]
source [CCApp_parse.READER]
source [CCApp_parse.S]
+Source of characters +
+
state [CCPool]
state [CCRandom]
state [CCHash.HASH]
state [CCHash]
+State required by the hash function. +
+
step_result [CCMonadIO.Seq]
string [CCKMP.S]
string_ [CCLevenshtein.S]

T
t [CCSexpM.MONAD]
t [CCSexpM.MakeDecode]
+Decoder +
+
t [CCSexpM]
t [CCSexp]
t [CCMonadIO.File]
+A file is always represented by its absolute path +
+
t [CCMonadIO.Seq]
+An IO stream of values of type 'a, consumable (iterable only once) +
+
t [CCMonadIO]
t [CCLinq.PMap]
t [CCLinq]
+Type of a query that returns zero, one or more values of type 'a +
+
t [CCCat.TRAVERSE]
t [CCCat.MONAD_BARE]
t [CCCat.APPLICATIVE]
t [CCCat.MONOID]
t [CCCat.FOLDABLE]
t [CCCat.FUNCTOR]
t [CCCat.FREE_MONAD]
t [CCBatch.COLLECTION]
t [CCBatch.S]
t [CCTimer]
+A scheduler for events. +
+
t [CCBlockingQueue]
+Safe-thread queue for values of type 'a +
+
t [CCThread.Barrier]
+Barrier, used to synchronize threads +
+
t [CCThread]
t [CCSemaphore]
+A semaphore +
+
t [CCLock.LockRef]
t [CCLock]
+A value surrounded with a lock +
+
t [CCPool.Make.Fut]
+A future value of type 'a +
+
t [CCArray1.View]
+A view on an array or part of an array +
+
t [CCArray1.S]
t [CCArray1.Bool]
+A simple bitvector based on some integral type 'b +
+
t [CCArray1]
+Array of OCaml values of type 'a with C representation of type b' + with permissions 'perm +
+
t [CCBigstring]
t [CCLevenshtein.STRING]
t [CCLevenshtein.S.Index]
+Index that maps strings to values of type 'b. +
+
t [CCKMP.STRING]
t [CCParse.MemoTbl]
t [CCParse]
+Takes the input and two continuations: + ok to call with the result when it's done, err to call when the parser met an error + The type definition changed since 0.14 to avoid stack overflows +
+
t [CCApp_parse.READER]
t [CCApp_parse.INPUT]
t [CCApp_parse]
+Parser that yields an error or a value of type 'a +
+
t [CCHet.Map]
t [CCHet.Tbl]
t [CCHet.Key]
t [CCImmutArray]
+Array of values of type 'a. +
+
t [CCAllocCache.Arr]
+Cache for 'a arrays +
+
t [CCRAL]
+List containing elements of type 'a +
+
t [CCWBTree.ORD]
t [CCWBTree.S]
t [CCBloom]
+Bloom filter containing values of type 'a +
+
t [CCHashTrie.KEY]
t [CCHashTrie.S]
t [CCHashTrie.Transient]
+Identifiers for transient modifications. +
+
t [CCBitField.S]
+Generative type of bitfields. +
+
t [CCHashSet.ELEMENT]
t [CCHashSet.S]
t [CCGraph.MAP]
t [CCGraph.LazyTree]
t [CCGraph.Traverse.Event]
+A traversal is a sequence of such events +
+
t [CCGraph.Seq]
t [CCGraph]
+Directed graph with vertices of type 'v and edges of type e' +
+
t [CCHashconsedSet.ELT]
t [CCHashconsedSet.S]
+Set of elements +
+
t [CCMixset]
+A set of values of heterogeneous types +
+
t [CCPersistentArray]
+The type of persistent arrays +
+
t [CCIntMap]
t [CCRingBuffer.S]
+Defines the ring buffer type, with both bounded and + unbounded flavors +
+
t [CCRingBuffer.Array.S]
+The type of an array instance +
+
t [CCMixmap.ORD]
t [CCMixmap.S]
+A map containing values of different types, indexed by CCMixmap.S.key. +
+
t [CCMixtbl]
+A hash table containing values of different types. +
+
t [CCBV]
+A resizable bitvector +
+
t [CCFQueue]
+Queue containing elements of type 'a +
+
t [CCDeque]
+Contains 'a elements, queue in both ways +
+
t [CCPersistentHashtbl.HashedType]
t [CCPersistentHashtbl.S]
t [CCCache]
t [CCFlatHashtbl.HASHABLE]
t [CCFlatHashtbl.S]
t [CCTrie.ORDERED]
t [CCTrie.WORD]
t [CCTrie.S]
t [CCMultiSet.S]
t [CCMultiMap.OrderedType]
t [CCMultiMap.BIDIR]
t [CCMultiMap.S]
t [CCLazy_list]
t [CCKList.MONAD]
t [CCKList]
t [CCKTree]
t [CCResult.MONAD]
t [CCResult]
t [CCChar]
t [CCInt64]
t [CCIO.File]
+A file should be represented by its absolute path, but currently + this is not enforced. +
+
t [CCFormat]
t [CCHashtbl.COUNTER]
t [CCHashtbl.DEFAULT]
+A hashtable for keys of type key and values of type 'a +
+
t [CCString.S]
t [CCString.Sub]
+A string, an offset, and the length of the slice +
+
t [CCRandom]
+Random generator for values of type 'a +
+
t [CCOrd]
+Comparison (total ordering) between two elements, that returns an int +
+
t [CCRef]
t [CCArray.MONO_ARRAY]
t [CCArray.S]
+Array, or sub-array, containing elements of type 'a +
+
t [CCArray.Sub]
+A slice is an array, an offset, and a length +
+
t [CCArray]
t [CCFloat]
t [CCBool]
t [CCInt]
t [CCHash]
+A hash value is a positive integer +
+
t [CCFun.Monad]
t [CCPair]
t [CCOpt]
t [CCList.MONAD]
t [CCList.Ref]
t [CCList.Zipper]
+The pair l, r represents the list List.rev_append l r, but + with the focus on r. +
+
t [CCList.Assoc]
t [CCList]
t [CCHeap.PARTIAL_ORD]
t [CCHeap.S]
t [CCError.MONAD]
t [CCError]
t [CCPrint.MONAD_IO]
+the IO monad +
+
t [CCPrint]
+A printer for the type 'a +
+
t [CCVector]
+The type of a vector of elements of type 'a, with + a mutability flat 'mut +
+
table [CCGraph]
+Mutable table with keys 'k and values 'a +
+
tag_set [CCGraph]
+Mutable tags from values of type 'v to tags of type bool +
+
to_json [CCArray1]
token [CCApp_parse]
tree [CCIntMap]

V
value [CCBitField.S.FIELD]
+Values contained in the field +
+
value [CCMixmap.S]
value [CCMixtbl]
value [CCMultiMap.S]
vector [CCVector]
+Type synonym: a 'a vector is mutable. +
+
vertex [CCGraph.MAP]
vertex_state [CCGraph.Dot]
+Hidden state associated to a vertex +
+

W
walk_item [CCIO.File]
with_err [CCLinq]
with_finalizer [CCMonadIO]
+A value of type 'a with_finalizer is similar to a value 'a t but + also contains a finalizer that must be run to cleanup. +
+
+ + \ No newline at end of file diff --git a/0.17/index_values.html b/0.17/index_values.html new file mode 100644 index 00000000..8505a1e7 --- /dev/null +++ b/0.17/index_values.html @@ -0,0 +1,9450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Index of values + + + +

Index of values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

( * ) [CCArray1.S.Infix]
+Alias to CCArray1.S.mult +
+
( * ) [CCInt64]
( *! ) [CCArray1.S.Infix] +
( *** ) [CCPair]
+Map on both sides of a tuple +
+
( *> ) [CCParse]
+a *> b parses a, then parses b into x, and returns x. +
+
( <* ) [CCParse]
+a <* b parses a into x, parses b and ignores its result, + and returns x +
+
(%) [CCFun]
+Mathematical composition +
+
(%>) [CCFun]
+Alias to compose +
+
(&&&) [CCParse]
+Conjunction on predicates +
+
(&&&) [CCPair]
+f &&& g is fun x -> f x, g x. +
+
(+!) [CCArray1.S.Infix] +
(+) [CCArray1.S.Infix]
+Alias to CCArray1.S.add +
+
(+) [CCInt64]
(-) [CCInt64]
(--) [CCLinq.Infix]
(--) [CCLinq]
+Synonym to CCLinq.range +
+
(--) [CCRAL.Infix]
+Alias to CCRAL.range +
+
(--) [CCFQueue]
+a -- b is the integer range from a to b, both included. +
+
(--) [CCKList.Infix]
(--) [CCKList]
+a -- b is the range of integers containing + a and b (therefore, never empty) +
+
(--) [CCArray]
+Range array +
+
(--) [CCList.Infix]
(--) [CCList]
+Infix alias for range +
+
(--) [CCVector]
+Range of integers, either ascending or descending (both included, + therefore the result is never empty). +
+
(--^) [CCRAL.Infix]
+a -- b is the integer range from a to b, where b is excluded. +
+
(--^) [CCFQueue]
+a -- b is the integer range from a to b, where b is excluded. +
+
(--^) [CCKList.Infix]
(--^) [CCKList]
+a -- b is the integer range from a to b, where b is excluded. +
+
(--^) [CCArray]
+Range array, excluding right bound +
+
(--^) [CCList.Infix]
+
+
(--^) [CCList]
+Infix alias for range' +
+
(--^) [CCVector]
+Range of integers, either ascending or descending, but excluding right., + Example: 1 --^ 10 returns the vector [1;2;3;4;5;6;7;8;9] +
+
(/) [CCInt64]
(<$>) [CCOpt.Infix]
(<$>) [CCOpt]
(<$>) [CCList.Infix]
(<$>) [CCList]
(<) [CCFloat.Infix]
+
+
(<) [CCInt.Infix]
+
+
(<*>) [CCMonadIO]
(<*>) [CCLinq.Infix]
(<*>) [CCLinq]
+Infix synonym to CCLinq.app +
+
(<*>) [CCCat.APPLICATIVE]
(<*>) [CCPool.Make.Fut.Infix]
(<*>) [CCPool.Make.Fut]
+Alias to CCPool.Make.Fut.app +
+
(<*>) [CCParse]
+Applicative +
+
(<*>) [CCApp_parse.Infix]
+Synonym to CCApp_parse.app +
+
(<*>) [CCRAL.Infix]
+Alias to CCRAL.app +
+
(<*>) [CCKList.Infix]
(<*>) [CCKList]
(<*>) [CCResult.Infix]
(<*>) [CCResult]
+a <*> b evaluates a and b, and, in case of success, returns + Ok (a b). +
+
(<*>) [CCRandom]
(<*>) [CCOpt.Infix]
(<*>) [CCOpt]
(<*>) [CCList.Infix]
(<*>) [CCList]
(<*>) [CCError.Infix]
(<*>) [CCError]
+a <*> b evaluates a and b, and, in case of success, returns + `Ok (a b). +
+
(<+>) [CCApp_parse.Infix]
+a <+> b is choice [a;b], a binary choice +
+
(<+>) [CCOpt.Infix]
(<+>) [CCOpt]
+a <+> b is a if a is Some _, b otherwise +
+
(<.>) [CCKList.Infix]
(<.>) [CCKList]
+Infix version of CCKList.fair_app +
+
(<::>) [CCApp_parse.Infix]
+a <::> b is app (fun x l -> x::l) a b +
+
(<<) [CCApp_parse.Infix]
+a << b parses a, then b, and discards b to return a +
+
(<<<) [CCPair]
+Map on the left side of the tuple +
+
(<=) [CCFloat.Infix]
+
+
(<=) [CCInt.Infix]
+
+
(<>) [CCFloat.Infix]
+
+
(<>) [CCInt.Infix]
+
+
(<?>) [CCRandom]
+a <?> b is a choice operator. +
+
(<?>) [CCOrd]
+c1 @@? (ord, x, y) returns the same as c1 if c1 is not 0; + otherwise it uses ord to compare the two values x and y, + of type 'a. +
+
(<|>) [CCParse]
+a <|> b tries to parse a, and if a fails, backtracks and tries + to parse b. +
+
(=) [CCFloat.Infix]
+
+
(=) [CCInt.Infix]
+
+
(>) [CCFloat.Infix]
+
+
(>) [CCInt.Infix]
+
+
(>=) [CCFloat.Infix]
+
+
(>=) [CCInt.Infix]
+
+
(>>) [CCPool.Make.Fut.Infix]
(>>) [CCPool.Make.Fut]
(>>) [CCApp_parse.Infix]
+a >> b parses a, ignores its result, then parses b +
+
(>>-) [CCKList.Infix]
(>>-) [CCKList]
+Infix version of CCKList.fair_flat_map +
+
(>>=) [CCSexpM.MONAD]
(>>=) [CCSexp.Traverse]
(>>=) [CCMonadIO]
+Wait for the result of an action, then use a function to build a + new action and execute it +
+
(>>=) [CCLinq.Infix]
(>>=) [CCLinq]
+Infix version of CCLinq.bind +
+
(>>=) [CCCat.MONAD_BARE]
(>>=) [CCPool.Make.Fut.Infix]
(>>=) [CCPool.Make.Fut]
(>>=) [CCParse]
+Monadic bind +
+
(>>=) [CCRAL.Infix]
+Alias to CCRAL.flat_map +
+
(>>=) [CCGraph.Seq]
(>>=) [CCLazy_list.Infix]
(>>=) [CCKList.MONAD]
(>>=) [CCKList.Infix]
(>>=) [CCKList]
(>>=) [CCResult.MONAD]
(>>=) [CCResult.Infix]
(>>=) [CCResult]
(>>=) [CCRandom]
(>>=) [CCArray]
+Infix version of CCArray.flat_map +
+
(>>=) [CCFun.Monad]
(>>=) [CCOpt.Infix]
(>>=) [CCOpt]
+Monadic bind +
+
(>>=) [CCList.MONAD]
(>>=) [CCList.Infix]
(>>=) [CCList]
(>>=) [CCError.MONAD]
(>>=) [CCError.Infix]
(>>=) [CCError]
(>>=) [CCPrint.MONAD_IO]
(>>=) [CCVector]
+Infix version of CCVector.flat_map +
+
(>>>) [CCBatch.S]
(>>>) [CCPair]
+Map on the right side of the tuple +
+
(>>>=) [CCMonadIO]
+Same as CCMonadIO.(>>=), but taking the finalizer into account. +
+
(>>|) [CCArray]
+Infix version of CCArray.map +
+
(>|=) [CCSexp.Traverse]
(>|=) [CCMonadIO]
(>|=) [CCLinq.Infix]
(>|=) [CCLinq]
+Infix synonym of CCLinq.map +
+
(>|=) [CCPool.Make.Fut.Infix]
(>|=) [CCPool.Make.Fut]
+Alias to CCPool.Make.Fut.map +
+
(>|=) [CCParse]
+Map +
+
(>|=) [CCApp_parse.Infix]
+Infix version of CCApp_parse.map +
+
(>|=) [CCRAL.Infix]
+Alias to CCRAL.map +
+
(>|=) [CCFQueue]
+Synonym to CCFQueue.map +
+
(>|=) [CCLazy_list.Infix]
(>|=) [CCKList.Infix]
(>|=) [CCKList]
(>|=) [CCKTree]
(>|=) [CCResult.Infix]
(>|=) [CCResult]
(>|=) [CCRandom]
(>|=) [CCArray]
+Infix version of CCArray.map +
+
(>|=) [CCFun.Monad]
(>|=) [CCOpt.Infix]
(>|=) [CCOpt]
+Infix version of CCOpt.map +
+
(>|=) [CCList.Infix]
(>|=) [CCList]
+Infix version of map with reversed arguments +
+
(>|=) [CCError.Infix]
(>|=) [CCError]
(>|=) [CCVector]
+Infix version of CCVector.map +
+
(@) [CCList.Infix]
(@) [CCList]
(@+) [CCRAL.Infix]
+Cons (alias to CCRAL.cons) +
+
(@@) [CCFun]
+f @@ x is the same as f x, but right-associative. +
+
(asr) [CCInt64]
(land) [CCInt64]
(lor) [CCInt64]
(lsl) [CCInt64]
(lsr) [CCInt64]
(lxor) [CCInt64]
(mod) [CCInt64]
(|>) [CCFun]
+Pipeline. +
+
(|||) [CCParse]
+Disjunction on predicates +
+
(~-) [CCInt64]
(~~~) [CCParse]
+Negation on predicates +
+
?| [CCUnix.Infix]
+Infix version of CCUnix.call +
+
?|& [CCUnix.Infix]
+Infix version of CCUnix.async_call +
+

A
above [CCTrie.S]
+All bindings whose key is bigger or equal to the given key, in + ascending order +
+
abs [CCInt64]
abs [CCFloat]
acquire [CCSemaphore]
+acquire n s blocks until get s >= n, then atomically + sets s := !s - n +
+
activate [CCThread.Barrier]
+activate b unblocks all threads that were waiting on b +
+
activated [CCThread.Barrier]
+activated b returns true iff activate b was called, and reset b + was not called since. +
+
active [CCTimer]
+Returns true until stop t has been called. +
+
active [CCPool.Make]
+active () is true as long as stop() has not been called yet +
+
active [CCHashTrie.Transient]
+active i is not (frozen i) +
+
add [CCArray1.View.S]
add [CCArray1.S]
+Elementwise sum +
+
add [CCLevenshtein.S.Index]
+Add a pair string/value to the index. +
+
add [CCHet.Map]
add [CCHet.Tbl]
add [CCWBTree.S]
add [CCBloom]
+add f x adds x into f +
+
add [CCHashTrie.S]
add [CCGraph.MAP]
+Add a vertex, possibly with no outgoing edge +
+
add [CCHashconsedSet.S]
add [CCIntMap]
add [CCMixmap.S]
+Bind the key to the value, using inj +
+
add [CCPersistentHashtbl.S]
+Add the binding to the table, returning a new table. +
+
add [CCFlatHashtbl.S]
+add tbl k v adds k -> v to tbl, possibly replacing the old + value associated with k. +
+
add [CCTrie.S]
+Add a binding to the trie (possibly erasing the previous one) +
+
add [CCMultiSet.S]
add [CCMultiMap.BIDIR]
+Add a binding (left,right) +
+
add [CCMultiMap.S]
+Add a key/value binding +
+
add [CCFloat]
add [CCList.Set]
+add x set adds x to set if it was not already present. +
+
add [CCHeap.S]
+Synonym to CCHeap.S.insert +
+
add_array [CCRAL]
add_edge [CCGraph.MAP]
add_gen [CCLevenshtein.S.Index]
+
+
add_gen [CCRAL]
add_gen [CCWBTree.S]
add_gen [CCBloom]
add_gen [CCHashTrie.S]
add_gen [CCIntMap]
+
+
add_gen [CCHeap.S]
+
+
add_gen_mut [CCHashTrie.S]
+
+
add_klist [CCIntMap]
+
+
add_klist [CCHeap.S]
+
+
add_list [CCHet.Map]
add_list [CCHet.Tbl]
add_list [CCRAL]
add_list [CCWBTree.S]
add_list [CCBloom]
add_list [CCHashTrie.S]
add_list [CCGraph.MAP]
add_list [CCHashconsedSet.S]
add_list [CCIntMap]
add_list [CCPersistentHashtbl.S]
add_list [CCMap.S]
+
+
add_list [CCHashtbl.COUNTER] +
add_list [CCHashtbl.S]
+add_list tbl x y adds y to the list x is bound to. +
+
add_list [CCHashtbl]
+add_list tbl x y adds y to the list x is bound to. +
+
add_list [CCSet.S]
+
+
add_list [CCHeap.S]
+
+
add_list_mut [CCHashTrie.S]
+
+
add_mult [CCMultiSet.S]
+add_mult set x n adds n occurrences of x to set +
+
add_mut [CCHashTrie.S]
+add_mut ~id k v m behaves like add k v m, except it will mutate + in place whenever possible. +
+
add_pairs [CCMultiMap.BIDIR]
+Add pairs +
+
add_scalar [CCArray1.View.S]
add_seq [CCLevenshtein.S.Index]
+
+
add_seq [CCHet.Map]
add_seq [CCHet.Tbl]
add_seq [CCRAL]
add_seq [CCWBTree.S]
add_seq [CCBloom]
add_seq [CCHashTrie.S]
add_seq [CCHashSet.S]
add_seq [CCGraph.MAP]
add_seq [CCHashconsedSet.S]
add_seq [CCIntMap]
add_seq [CCPersistentHashtbl.S]
add_seq [CCMap.S]
+
+
add_seq [CCHashtbl.COUNTER]
+Increment each element of the sequence +
+
add_seq [CCHashtbl.S]
+Add the corresponding pairs to the table, using Hashtbl.add. +
+
add_seq [CCHashtbl]
+Add the corresponding pairs to the table, using Hashtbl.add. +
+
add_seq [CCSet.S]
+
+
add_seq [CCHeap.S]
+
+
add_seq_back [CCFQueue]
add_seq_back [CCDeque]
+add_seq_back q seq adds elements of seq into the back of q, + in order. +
+
add_seq_count [CCHashtbl.S]
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.S.incr. +
+
add_seq_count [CCHashtbl]
+add_seq_count tbl seq increments the count of each element of seq + by calling CCHashtbl.incr. +
+
add_seq_front [CCFQueue]
add_seq_front [CCDeque]
+add_seq_front q seq adds elements of seq into the front of q, + in reverse order. +
+
add_seq_mut [CCHashTrie.S]
+
+
after [CCTimer]
+Call the callback f after the given number of seconds. +
+
alpha [CCApp_parse]
alpha_lower [CCApp_parse]
alpha_num [CCApp_parse]
alpha_upper [CCApp_parse]
and_ [CCArray1.Bool]
+Boolean conjunction. +
+
and_then [CCPool.Make.Fut]
+Wait for the first future to succeed, then launch the second +
+
any_of [CCApp_parse]
+Parse any of the chars present in the given string +
+
app [CCLinq]
+Apply each function to each value +
+
app [CCPool.Make.Fut]
+app f x applies the result of f to the result of x +
+
app [CCApp_parse]
+Applicative +
+
app [CCRAL]
app_async [CCPool.Make.Fut]
+app f x applies the result of f to the result of x, in + a separated job scheduled in the pool +
+
append [CCLinq]
+Append two collections together +
+
append [CCCat.MONOID]
append [CCArray1]
+append a b ~into assumes length a + length b = length into and + copies a and b side by side in into +
+
append [CCImmutArray]
append [CCRAL]
append [CCPersistentArray]
+Append the two arrays +
+
append [CCRingBuffer.S]
+append b ~into copies all data from b and adds it at the + end of into +
+
append [CCFQueue]
+Append two queues. +
+
append [CCLazy_list]
+Lazy concatenation +
+
append [CCKList]
append [CCIO.File]
+Append the given string into the given file +
+
append [CCList]
+Safe version of append +
+
append [CCVector]
+append a b adds all elements of b to a +
+
append_array [CCVector]
+Same as append, with an array +
+
append_back [CCDeque]
+append_back ~into q adds all elements of q at the back of into. +
+
append_exn [CCIO.File]
+Append the given string into the given file, possibly raising +
+
append_front [CCDeque]
+append_front ~into q adds all elements of q at the front + of into + O(length q) in time +
+
append_list [CCVector]
+Append content of list +
+
append_seq [CCVector]
+Append content of sequence +
+
apply [CCBatch.S]
+Apply the operation to the collection. +
+
apply [CCHash]
+Apply a hash function to a value. +
+
apply' [CCBatch.S]
+Flip of CCBatch.S.apply +
+
apply_fold [CCBatch.S]
+Apply the operation plus a fold to the collection. +
+
array [CCFormat]
array [CCHash.S]
array [CCPrint]
array_ [CCOrd]
array_ [CCHash]
+
+
arrayi [CCFormat]
arrayi [CCPrint]
as_graph [CCGraph.MAP]
+Graph view of the map +
+
as_tree [CCHashTrie.S]
+For debugging purpose: explore the structure of the tree, + with `L (h,l) being a leaf (with shared hash h) + and `N an inner node +
+
as_tree [CCIntMap]
async_call [CCUnix]
+Spawns a subprocess, like CCUnix.call, but the subprocess's channels are + line generators and line sinks (for stdin). +
+
at [CCTimer]
+Create a future that evaluates to () at the given Unix timestamp +
+
atom [CCSexp]
+Build an atom directly from a string +
+
average [CCLinq]

B
below [CCTrie.S]
+All bindings whose key is smaller or equal to the given key, + in decreasing order +
+
bfs [CCGraph.Traverse]
bfs [CCKTree]
+Breadth-first traversal of the tree +
+
bfs_tag [CCGraph.Traverse]
bind [CCMonadIO]
+bind f a runs the action a and applies f to its result + to obtain a new action. +
+
bind [CCLinq]
+Use the result of a query to build another query and immediately run it. +
+
bindings [CCMixmap.S]
+Iterate on all bindings +
+
bindings [CCMixtbl]
+Iterate on all bindings +
+
bindings_of [CCMixmap.S]
+All the bindings that come from the corresponding injection +
+
bindings_of [CCMixtbl]
+All the bindings that come from the corresponding injection +
+
blit [CCArray1]
+blit the first array to the second +
+
blit [CCBigstring]
+Blit a slice of the bigstring into another +
+
blit [CCRingBuffer.Array.S]
+blit t s arr i len copies len elements from arr starting at i + to position s from t +
+
blit [CCString.S]
+Similar to String.blit. +
+
blit [CCArray.S]
+blit from i into j len copies len elements from the first array + to the second. +
+
blit_from [CCRingBuffer.S]
+blit_from buf from_buf o len copies the slice o, ... o + len - 1 from + a input buffer from_buf to the end of the buffer. +
+
blit_into [CCRingBuffer.S]
+blit_into buf to_buf o len copies at most len elements from buf + into to_buf starting at offset o in s. +
+
blit_of_bytes [CCBigstring]
blit_of_string [CCBigstring]
blit_to_bytes [CCBigstring]
bool [CCApp_parse]
+Parse "true" or "false" +
+
bool [CCBitField.S]
+New field of type bool +
+
bool [CCFormat]
bool [CCHash.HASH]
bool [CCPrint]
bool_ [CCOrd]
bool_ [CCHash]
+
+
both [CCResult]
+both a b, in case of success, returns Ok (o, o') with the ok values + of a and b. +
+
both [CCError]
+both a b, in case of success, returns `Ok (o, o') with the ok values + of a and b. +
+
bsearch [CCArray.S]
+bsearch ?cmp x arr finds the index of the object x in the array arr, + provided arr is sorted using cmp. +
+

C
call [CCUnix]
+call cmd wraps the result of Unix.open_process_full cmd into an + object. +
+
capacity [CCBlockingQueue]
+Number of values the queue can hold +
+
capacity [CCRingBuffer.S]
+Length of the inner buffer. +
+
capacity [CCVector]
+Number of elements the vector can contain without being resized +
+
cardinal [CCArray1.Bool]
+Number of ones +
+
cardinal [CCLevenshtein.S.Index]
+Number of bindings +
+
cardinal [CCHet.Map]
cardinal [CCWBTree.S]
cardinal [CCHashTrie.S]
cardinal [CCHashSet.S]
+cardinal s returns the number of elements in s +
+
cardinal [CCHashconsedSet.S]
cardinal [CCMixset]
+Number of mappings +
+
cardinal [CCIntMap]
+Number of bindings in the map. +
+
cardinal [CCMixmap.S]
+Number of bindings +
+
cardinal [CCBV]
+Number of bits set +
+
cardinal [CCMultiSet.S]
+Number of distinct elements +
+
cardinal_left [CCMultiMap.BIDIR]
+Number of distinct left keys +
+
cardinal_right [CCMultiMap.BIDIR]
+Number of distinct right keys +
+
catch [CCResult]
+catch e ~ok ~err calls either ok or err depending on + the value of e. +
+
catch [CCError]
+catch e ~ok ~err calls either ok or err depending on + the value of e. +
+
char [CCParse]
+char c parses the char c and nothing else +
+
char [CCApp_parse]
+char c parses c and c only +
+
char [CCFormat]
+
+
char [CCHash.HASH]
char [CCPrint]
+
+
char_ [CCHash]
+
+
char_equal [CCKMP.STRING]
char_if [CCParse]
+char_if f parses a character c if f c = true +
+
chars1_if [CCParse]
+Same as CCParse.chars_if, but only non-empty strings +
+
chars_if [CCParse]
+chars_if f parses a string of chars that satisfy f +
+
choice [CCApp_parse]
+choice l chooses between the parsers, unambiguously +
+
choice [CCOpt]
+choice returns the first non-None element of the list, or None +
+
choice_seq [CCOpt]
+choice_seq s is similar to CCOpt.choice, but works on sequences. +
+
choose [CCLinq]
+Choose one element (if any, otherwise empty) in the collection. +
+
choose [CCWBTree.S]
choose [CCHashTrie.S]
choose [CCHashconsedSet.S]
choose [CCIntMap]
choose [CCResult]
+choose l selects a member of l that is a Ok _ value, + or returns Error l otherwise, where l is the list of errors. +
+
choose [CCRandom]
+Choose a generator within the list. +
+
choose [CCError]
+choose l selects a member of l that is a `Ok _ value, + or returns `Error l otherwise, where l is the list of errors. +
+
choose_a [CCPool.Make.Fut]
+Choose among those futures (the first to terminate). +
+
choose_array [CCRandom]
choose_exn [CCWBTree.S]
+
+
choose_exn [CCHashTrie.S]
+
+
choose_exn [CCHashconsedSet.S]
choose_exn [CCIntMap]
+
+
choose_exn [CCRandom]
+Same as CCRandom.choose but without option. +
+
choose_l [CCPool.Make.Fut]
+Choose among those futures (the first to terminate). +
+
choose_return [CCRandom]
+Choose among the list +
+
chop_prefix [CCString]
+chop_pref ~pre s removes pre from s if pre really is a prefix + of s, returns None otherwise +
+
chop_suffix [CCString]
+chop_suffix ~suf s removes suf from s if suf really is a suffix + of s, returns None otherwise +
+
chunks [CCMonadIO.Seq]
+Read the channel's content into chunks of size size +
+
classify [CCFloat]
clear [CCHashSet.S]
+clear s removes all elements from s +
+
clear [CCRingBuffer.S]
+Clear the content of the buffer. +
+
clear [CCMixtbl]
+Clear content of the hashtable +
+
clear [CCBV]
+Set every bit to 0 +
+
clear [CCDeque]
+Remove all elements +
+
clear [CCCache]
+Clear the content of the cache +
+
clear [CCList.Ref]
+Remove all elements +
+
clear [CCVector]
+Clear the content of the vector +
+
col [CCApp_parse.READER]
compare [CCSexp]
compare [CCBigstring]
+Lexicographic order +
+
compare [CCRAL]
+Lexicographic comparison +
+
compare [CCWBTree.ORD]
compare [CCHashconsedSet.ELT]
+Total order +
+
compare [CCHashconsedSet.S]
+Fast (arbitrary) comparison test O(1) +
+
compare [CCIntMap]
+Total order between maps; the precise order is unspecified . +
+
compare [CCMixmap.ORD]
compare [CCDeque]
+compare a b compares lexicographically a and b +
+
compare [CCTrie.ORDERED]
compare [CCTrie.WORD]
compare [CCMultiSet.S]
compare [CCMultiMap.OrderedType]
compare [CCMultiMap.S]
+Total order on multimaps +
+
compare [CCKList]
+Lexicographic comparison. +
+
compare [CCResult]
compare [CCChar]
compare [CCInt64]
compare [CCString]
compare [CCOrd]
+Polymorphic "magic" comparison +
+
compare [CCRef]
compare [CCArray.S]
compare [CCFloat]
compare [CCBool]
+Total ordering on booleans, similar to Pervasives.compare +
+
compare [CCInt]
compare [CCPair]
compare [CCOpt]
compare [CCList]
compare [CCError]
compare [CCVector]
+Total ordering on vectors. +
+
compare_char [CCLevenshtein.STRING]
compare_versions [CCString]
+compare_versions a b compares version strings a and b, + considering that numbers are above text. +
+
compile [CCKMP.S]
+Compile a string into a pattern +
+
compose [CCBatch.S]
compose [CCFun]
+Composition +
+
compose_binop [CCFun]
+compose_binop f g is fun x y -> g (f x) (f y) + Example (partial order): + List.sort (compose_binop fst CCInt.compare) [1, true; 2, false; 1, false] +
+
concat_gen [CCString]
+concat_gen ~sep g concatenates all strings of g, separated with sep. +
+
cons [CCMonadIO.Seq]
cons [CCRAL]
+Add an element at the front of the list +
+
cons [CCFQueue]
+Push element at the front of the queue +
+
cons [CCLazy_list]
cons [CCKList]
cons [CCList]
+cons x l is x::l +
+
cons_maybe [CCList]
+cons_maybe (Some x) l is x :: l + cons_maybe None l is l +
+
const [CCFun]
+const x y = x for any y +
+
contains [CCLinq]
contains [CCMultiSet.S]
+contains a x = (count m x > 0) +
+
convolution [CCArray1.Bool]
+convolution a ~by:b ~into assumes length into = length a >= length b + and computes the boolean convolution of a by b +
+
copy [CCArray1]
+Fresh copy +
+
copy [CCBigstring]
+Copy of the string +
+
copy [CCBloom]
+Copy of the filter +
+
copy [CCHashSet.S]
+Fresh copy +
+
copy [CCPersistentArray]
+copy a returns a fresh copy of a. +
+
copy [CCRingBuffer.S]
+Make a fresh copy of the buffer. +
+
copy [CCRingBuffer.Array.S]
+copy t makes a fresh copy of the array t +
+
copy [CCMixtbl]
+Copy of the table +
+
copy [CCBV]
+Copy of bitvector +
+
copy [CCDeque]
+Fresh copy, O(n) in time +
+
copy [CCPersistentHashtbl.S]
+Fresh copy of the table; the underlying structure is not shared + anymore, so using both tables alternatively will be efficient +
+
copy [CCString.Sub]
+Make a copy of the substring +
+
copy [CCArray.Sub]
+Copy into a new array +
+
copy [CCVector]
+Shallow copy (may give an immutable or mutable vector) +
+
copy_into [CCHashSet.S]
+copy_into ~into s copies all elements of s into into +
+
count [CCLinq]
+count c returns a map from elements of c to the number + of time those elements occur. +
+
count [CCMultiSet.S]
count [CCMultiMap.S]
+Number of bindings for this key +
+
count' [CCLinq]
create [CCTimer]
+A new timer. +
+
create [CCBlockingQueue]
+Create a new queue of size n. +
+
create [CCThread.Barrier]
+Create a barrier +
+
create [CCSemaphore]
+create n creates a semaphore with initial value n +
+
create [CCLock]
+Create a new protected value +
+
create [CCBigstring]
+Create a new bigstring of the given size. +
+
create [CCParse.MemoTbl]
+New memoization table +
+
create [CCApp_parse.READER]
create [CCHet.Tbl]
create [CCHet.Key]
create [CCAllocCache.Arr]
+create n makes a new cache of arrays up to length n +
+
create [CCBloom]
+create ?hash size creates a filter with given size, and functions. +
+
create [CCHashTrie.Transient]
+Create a new, active ID +
+
create [CCHashSet.S]
+create n makes a new set with the given capacity n +
+
create [CCRingBuffer.S]
+create ?bounded size creates a new buffer with given size. +
+
create [CCMixtbl]
+create n creates a hash table of initial size n. +
+
create [CCBV]
+Create a bitvector of given size, with given default value +
+
create [CCDeque]
+New deque +
+
create [CCPersistentHashtbl.S]
+Create a new hashtable, with the given initial capacity +
+
create [CCFlatHashtbl.S]
+Create a new table of the given initial capacity +
+
create [CCHashtbl.COUNTER]
+A counter maps elements to natural numbers (the number of times this + element occurred) +
+
create [CCHashtbl.DEFAULT]
+create d makes a new table that maps every key to d by default. +
+
create [CCRef]
+Alias to ref +
+
create [CCList.Ref]
+Create a new list reference +
+
create [CCVector]
+Create a new, empty vector +
+
create_default [CCBloom]
+create_default ?hash_len size is the same as + create ~hash:(default_hash_funs hash_len) size. +
+
create_inj [CCMixmap]
+Return a value that works for a given type of values. +
+
create_inj [CCMixtbl]
+Return a value that works for a given type of values. +
+
create_with [CCHashtbl.DEFAULT]
+Similar to create d but here d is a function called to obtain a + new default value for each distinct key. +
+
create_with [CCVector]
+Create a new vector, using the given value as a filler. +
+
curry [CCFun]
cut_depth [CCKTree]
+Cut the tree at the given depth, so it becomes finite. +
+
cycle [CCKList]
+Cycle through the iterator infinitely. +
+

D
debug_print [CCLevenshtein.S]
+Output the automaton's structure on the given channel. +
+
debug_print [CCLevenshtein]
decr [CCLock]
+Atomically decrement the value +
+
decr [CCHashtbl.COUNTER]
+Remove one occurrence of the element +
+
decr [CCHashtbl.S]
+Same as CCHashtbl.S.incr but substract 1 (or the value of by). +
+
decr [CCHashtbl]
+Same as CCHashtbl.incr but substract 1 (or the value of by). +
+
decr_then_get [CCLock]
+decr_then_get x decrements x, and return its new value +
+
default_hash_funs [CCBloom]
+Use Hashtbl.seeded_hash on k seeds +
+
delay [CCRandom]
+Delay evaluation. +
+
detach [CCThread]
+detach f is the same as ignore (spawn f) +
+
dfs [CCGraph.Traverse.Event]
+Full version of DFS. +
+
dfs [CCGraph.Traverse]
dfs [CCKTree]
+Depth-first traversal of the tree +
+
dfs_tag [CCGraph.Traverse.Event]
+Full version of DFS using integer tags +
+
dfs_tag [CCGraph.Traverse]
diagonal [CCList]
+All pairs of distinct positions of the list. +
+
diff [CCLinq]
+Set difference +
+
diff [CCHashSet.S]
+diff a b returns a - b +
+
diff [CCHashconsedSet.S]
diff [CCMultiSet.S]
+MultiSet difference. +
+
diff [CCMultiMap.S]
+Difference of maps, ie bindings of the first that are not + in the second +
+
dijkstra [CCGraph.Traverse]
+Dijkstra algorithm, traverses a graph in increasing distance order. +
+
dijkstra_tag [CCGraph.Traverse]
distinct [CCLinq]
+Remove duplicate elements from the input collection. +
+
divisors_graph [CCGraph]
+n points to all its strict divisors +
+
dot_product [CCArray1.S]
+dot_product a b returns sum_i a(i)*b(i) with the given + sum and product, on elt. +
+
doubleton [CCImmutArray]
doubleton [CCHashconsedSet.S]
doubleton [CCIntMap]
doubleton [CCFQueue]
drop [CCMonadIO.Seq]
drop [CCRAL]
drop [CCKList]
drop [CCString]
+drop n s removes the n first chars of s +
+
drop [CCList]
+Drop the n first elements, keep the rest +
+
drop_after [CCList.Zipper]
+Drop every element on the "right" (calling CCList.Zipper.right then will do nothing), + keeping the focused element, if any. +
+
drop_after_and_focused [CCList.Zipper]
+Drop every element on the "right" (calling CCList.Zipper.right then will do nothing), + including the focused element if it is present. +
+
drop_before [CCList.Zipper]
+Drop every element on the "left" (calling CCList.Zipper.left then will do nothing). +
+
drop_while [CCMonadIO.Seq]
drop_while [CCRAL]
drop_while [CCKList]
drop_while [CCList]
+
+
dummy [CCCache]
+Dummy cache, never stores any value +
+
dup [CCPair]
+dup x = (x,x) (duplicate the value) +
+
dup_map [CCPair]
+dup_map f x = (x, f x). +
+

E
edit_distance [CCLevenshtein.S]
+Edition distance between two strings. +
+
elements [CCHashSet.S]
+List of elements +
+
empty [CCMonadIO.Seq]
empty [CCLinq]
+Empty collection +
+
empty [CCCat.MONOID]
empty [CCBatch.COLLECTION]
empty [CCBigstring]
+Empty string +
+
empty [CCLevenshtein.S.Index]
+Empty index +
+
empty [CCHet.Map]
empty [CCImmutArray]
empty [CCRAL]
+Empty list +
+
empty [CCWBTree.S]
empty [CCHashTrie.S]
empty [CCBitField.S]
+Empty bitfields (all bits 0) +
+
empty [CCGraph.MAP]
empty [CCHashconsedSet.S]
empty [CCMixset]
+Empty set +
+
empty [CCIntMap]
empty [CCRingBuffer.Array.S]
+The empty array +
+
empty [CCMixmap.S]
+Empty map +
+
empty [CCBV]
+Empty bitvector +
+
empty [CCFQueue]
empty [CCPersistentHashtbl.S]
+Empty table. +
+
empty [CCTrie.S]
empty [CCMultiSet.S]
empty [CCMultiMap.BIDIR]
empty [CCMultiMap.S]
+Empty multimap +
+
empty [CCLazy_list]
+Empty list +
+
empty [CCKList]
empty [CCKTree]
empty [CCArray.S]
empty [CCList.Zipper]
+Empty zipper +
+
empty [CCList]
empty [CCHeap.S]
+Empty heap +
+
endline [CCParse]
+Parses '\n' +
+
ensure [CCVector]
+Hint to the vector that it should have at least the given capacity. +
+
ensure_with [CCVector]
+Hint to the vector that it should have at least the given capacity. +
+
eof [CCApp_parse]
+Matches the end of input, fails otherwise +
+
eoi [CCParse]
+Expect the end of input, fails otherwise +
+
eprintf [CCPrint]
epsilon [CCFloat]
equal [CCSexp]
equal [CCBigstring]
equal [CCHet.Key]
+Compare two keys that have compatible types +
+
equal [CCRAL]
equal [CCHashTrie.KEY]
equal [CCHashTrie.Transient]
+Equality between IDs +
+
equal [CCHashSet.ELEMENT]
equal [CCHashSet.S]
+equal a b is extensional equality (a and b have the same elements) +
+
equal [CCHashconsedSet.S]
+Fast equality test O(1) +
+
equal [CCIntMap]
+equal ~eq a b checks whether a and b have the same set of pairs + (key, value), comparing values with eq +
+
equal [CCFQueue]
equal [CCDeque]
+equal a b checks whether a and b contain the same sequence of + elements. +
+
equal [CCPersistentHashtbl.HashedType]
equal [CCPersistentHashtbl.S]
equal [CCFlatHashtbl.HASHABLE]
equal [CCMultiSet.S]
equal [CCMultiMap.S]
+Same multimap +
+
equal [CCKList]
+Equality step by step. +
+
equal [CCResult]
equal [CCChar]
equal [CCInt64]
equal [CCString]
equal [CCRef]
equal [CCArray.S]
equal [CCFloat]
equal [CCBool]
equal [CCInt]
equal [CCPair]
equal [CCOpt]
equal [CCList]
equal [CCError]
equal [CCVector]
equal_precision [CCFloat]
+Equality with allowed error up to a non negative epsilon value +
+
equiv [CCOrd]
+Returns true iff the two comparison results are the same +
+
errcode [CCUnix]
escape_str [CCUnix]
+Escape a string so it can be a shell argument. +
+
establish_server [CCUnix]
+Listen on the address and calls the handler in a blocking fashion. +
+
every [CCTimer]
+every timer n ~f calls f () every n seconds. +
+
except_idx [CCArray]
+Remove given index, obtaining the list of the other elements +
+
exists [CCMonadIO.File]
exists [CCLinq]
exists [CCArray1]
exists [CCImmutArray]
exists [CCHashSet.S]
exists [CCPersistentHashtbl.S]
exists [CCIO.File]
exists [CCString]
+True for some char? +
+
exists [CCArray.S]
exists [CCOpt]
+
+
exists [CCVector]
+Existential test (is there an element that satisfies the predicate?) +
+
exists2 [CCKList]
exists2 [CCString]
+Exists a pair of chars? +
+
exists2 [CCArray.S]
+Exists on pairs of arrays. +
+
extern [CCBatch.S]
+Use a specific function that won't be optimized +
+
extract_max [CCWBTree.S]
+extract_max m returns k, v, m' where k,v is the pair with the + highest key in m, and m' does not contain k. +
+
extract_min [CCWBTree.S]
+extract_min m returns k, v, m' where k,v is the pair with the + smallest key in m, and m' does not contain k. +
+

F
fail [CCMonadIO]
+fail msg fails with the given message. +
+
fail [CCPool.Make.Fut]
+Future that fails immediately +
+
fail [CCParse]
+fail msg fails with the given message. +
+
fail [CCApp_parse]
+fail msg fails with the given error message +
+
fail [CCResult]
+Fail with an error +
+
fail [CCError]
+Fail with an error +
+
fail_fprintf [CCResult]
+fail_printf format uses format to obtain an error message + and then returns Error msg +
+
fail_printf [CCResult]
+fail_printf format uses format to obtain an error message + and then returns Error msg +
+
fail_printf [CCError]
+fail_printf format uses format to obtain an error message + and then returns `Error msg +
+
failf [CCApp_parse]
fair_app [CCKList]
+Fair version of CCKList.(<*>) +
+
fair_flat_map [CCKList]
+Fair version of CCKList.flat_map. +
+
field [CCSexp.Traverse]
+Enriched version of CCSexp.Traverse.get_field, with a converter as argument +
+
field_list [CCSexp.Traverse]
+field_list name f "(... (name a b c d) ...record)" + will look for a field based on the given name, and expect it to have a + list of arguments dealt with by f (here, "a b c d"). +
+
fill [CCArray1]
+fill a x fills a with x +
+
fill [CCBigstring]
+Fill with a single byte +
+
filter [CCMonadIO.Seq]
filter [CCLinq]
+Filter out values that do not satisfy predicate +
+
filter [CCBatch.COLLECTION]
filter [CCBatch.S]
filter [CCArray1]
filter [CCApp_parse]
+filter f p parses the same as p, but fails if the returned value + does not satisfy f +
+
filter [CCRAL]
filter [CCBV]
+filter bv p only keeps the true bits of bv whose index + satisfies p index +
+
filter [CCPersistentHashtbl.S]
filter [CCKList]
filter [CCString]
+
+
filter [CCArray]
+Filter elements out of the array. +
+
filter [CCOpt]
+Filter on 0 or 1 element +
+
filter [CCList]
+Safe version of List.filter +
+
filter [CCHeap.S]
+Filter values, only retaining the ones that satisfy the predicate. +
+
filter [CCVector]
+Filter elements from the vector. +
+
filter' [CCVector]
+Filter elements in place. +
+
filter_map [CCMonadIO.Seq]
filter_map [CCLinq]
+Filter and map elements at once +
+
filter_map [CCBatch.COLLECTION]
filter_map [CCBatch.S]
filter_map [CCRAL]
filter_map [CCGraph.Seq]
filter_map [CCPersistentHashtbl.S]
filter_map [CCKList]
filter_map [CCString]
+
+
filter_map [CCArray]
+Map each element into another value, or discard it +
+
filter_map [CCList]
+Map and remove elements at the same time +
+
filter_map [CCVector]
+Map elements with a function, possibly filtering some of them out +
+
finally [CCFun]
+finally h f calls f () and returns its result. +
+
finally1 [CCFun]
+finally1 ~h f x is the same as f x, but after the computation, + h () is called whether f x rose an exception or not. +
+
finally2 [CCFun]
+finally2 ~h f x y is the same as f x y, but after the computation, + h () is called whether f x y rose an exception or not. +
+
find [CCLinq]
find [CCKMP.S]
+find ~pattern s i finds the next occurrence of pattern + in s starting at offset i, and returns it, + or returns None if the pattern doesn't occur. +
+
find [CCHet.Map]
find [CCHet.Tbl]
find [CCHashSet.S]
+Safe version of CCHashSet.S.find_exn +
+
find [CCIntMap]
find [CCMixmap.S]
+Find the value for the given key, which must be of the right type. +
+
find [CCMixtbl]
+Find the value for the given key, which must be of the right type. +
+
find [CCPersistentHashtbl.S]
+Find the value for this key, or fails +
+
find [CCFlatHashtbl.S]
find [CCTrie.S]
+Find the value associated with the key, if any +
+
find [CCMultiMap.S]
+List of values for this key +
+
find [CCKTree]
+Look for an element that maps to Some _ +
+
find [CCString]
+Find sub in string, returns its first index or -1. +
+
find [CCArray.S]
+find f a returns Some y if there is an element x such + that f x = Some y, else it returns None +
+
find [CCList]
+
+
find [CCVector]
+Find an element that satisfies the predicate +
+
find1_left [CCMultiMap.BIDIR]
+like CCMultiMap.BIDIR.find_left but returns at most one value +
+
find1_right [CCMultiMap.BIDIR]
+like CCMultiMap.BIDIR.find_right but returns at most one value +
+
find_all [CCKMP.S]
+Generator on all occurrences of the pattern +
+
find_all [CCString]
+find_all ~sub s finds all occurrences of sub in s, even overlapping + instances. +
+
find_all' [CCKMP.S]
find_all_l [CCString]
+find_all ~sub s finds all occurrences of sub in s and returns + them in a list +
+
find_exn [CCHet.Map]
+
+
find_exn [CCHet.Tbl]
+
+
find_exn [CCHashSet.S]
+find_exn s x returns y if x and y are equal, and mem s y. +
+
find_exn [CCIntMap]
+Same as CCIntMap.find but unsafe +
+
find_exn [CCFlatHashtbl.S]
find_exn [CCTrie.S]
+Same as CCTrie.S.find but can fail. +
+
find_exn [CCVector]
+Find an element that satisfies the predicate, or +
+
find_idx [CCArray.S]
+find_idx p x returns Some (i,x) where x is the i-th element of l, + and p x holds. +
+
find_idx [CCList]
+find_idx p x returns Some (i,x) where x is the i-th element of l, + and p x holds. +
+
find_iter [CCMultiMap.S]
+Iterate on bindings for this key +
+
find_left [CCMultiMap.BIDIR]
+Find all bindings for this given left-key +
+
find_map [CCLinq]
find_map [CCList]
+find_map f l traverses l, applying f to each element. +
+
find_map [CCVector]
+find_map f v returns the first Some y = f x for x in v, + or None if f x = None for each x in v +
+
find_mapi [CCList]
+Like CCList.find_map, but also pass the index to the predicate function. +
+
find_min [CCHeap.S]
+Find minimal element +
+
find_min_exn [CCHeap.S]
+Same as CCHeap.S.find_min but can fail +
+
find_pred [CCList]
+find_pred p l finds the first element of l that satisfies p, + or returns None if no element satisfies p +
+
find_pred_exn [CCList]
+Unsafe version of CCList.find_pred +
+
find_right [CCMultiMap.BIDIR]
+Find all bindings for this given right-key +
+
findi [CCArray.S]
+Like CCArray.S.find, but also pass the index to the predicate function. +
+
findi [CCList]
+
+
finish [CCHash]
+Extract a usable hash value +
+
first [CCBV]
+First set bit, or +
+
first [CCFQueue]
+First element of the queue +
+
first_exn [CCFQueue]
+Same as CCFQueue.first but +
+
fix [CCParse]
+Fixpoint combinator +
+
fix [CCApp_parse]
+fix f makes a fixpoint +
+
fix [CCRandom]
+Recursion combinators, for building recursive values. +
+
fix_memo [CCParse]
+Same as CCParse.fix, but the fixpoint is memoized. +
+
flat_map [CCMonadIO.Seq]
+Map each value to a sub sequence of values +
+
flat_map [CCLinq]
+Same as CCLinq.flat_map but using sequences +
+
flat_map [CCBatch.COLLECTION]
flat_map [CCBatch.S]
flat_map [CCPool.Make.Fut]
+Monadic combination of futures +
+
flat_map [CCRAL]
flat_map [CCPersistentArray]
+Flat map (map + concatenation) +
+
flat_map [CCLazy_list]
+Monadic flatten + map +
+
flat_map [CCKList]
flat_map [CCResult]
flat_map [CCString]
+Map each chars to a string, then concatenates them all +
+
flat_map [CCRandom]
flat_map [CCArray]
+Transform each element into an array, then flatten +
+
flat_map [CCOpt]
+Flip version of >>= +
+
flat_map [CCList]
+Map and flatten at the same time (safe). +
+
flat_map [CCError]
flat_map [CCVector]
+Map each element to a sub-vector +
+
flat_map' [CCVector] +
flat_map_l [CCLinq]
+map each element to a collection and flatten the result +
+
flat_map_list [CCVector]
+Like CCVector.flat_map, but using list for + intermediate collections. +
+
flat_map_seq [CCVector]
+Like CCVector.flat_map, but using CCVector.sequence for + intermediate collections. +
+
flatten [CCLinq.PMap]
+View a multimap as a collection of individual key/value pairs +
+
flatten [CCLinq]
flatten [CCRAL]
flatten [CCPersistentArray]
+Concatenates all the sub-arrays +
+
flatten [CCKList]
flatten [CCList]
+Safe flatten +
+
flatten_l [CCLinq.PMap]
+View a multimap as a list of individual key/value pairs +
+
flatten_opt [CCLinq]
+Flatten the collection by removing options +
+
flatten_seq [CCLinq]
flip [CCBV]
+Flip i-th bit +
+
flip [CCFun]
+Flip arguments +
+
float [CCApp_parse]
+Parse a floating point number +
+
float [CCFormat]
float [CCRandom]
+Random float within the given range +
+
float [CCPrint]
float3 [CCFormat]
float3 [CCPrint]
float_ [CCOrd]
float_of_yojson [CCArray1]
float_range [CCRandom]
+Inclusive range. +
+
float_to_yojson [CCArray1]
flush [CCMonadIO]
fmap [CCKList]
focused [CCList.Zipper]
+Returns the focused element, if any. +
+
focused_exn [CCList.Zipper]
+Returns the focused element, or +
+
fold [CCMonadIO.Seq]
+fold f acc seq folds over seq, consuming it. +
+
fold [CCLinq.PMap]
+Fold on the items of the map +
+
fold [CCLinq]
+Fold over the collection +
+
fold [CCBatch.COLLECTION]
fold [CCBigstring]
fold [CCLevenshtein.S.Index]
+Fold over the stored pairs string/value +
+
fold [CCImmutArray]
fold [CCRAL]
+Fold on the list's elements +
+
fold [CCWBTree.S]
fold [CCHashTrie.S]
fold [CCHashSet.S]
+Fold on values +
+
fold [CCGraph.Seq]
fold [CCHashconsedSet.S]
+Fold on elements, in arbitrary order +
+
fold [CCIntMap]
fold [CCFQueue]
fold [CCDeque]
+Fold on elements +
+
fold [CCPersistentHashtbl.S]
+Fold over bindings +
+
fold [CCTrie.S]
+Fold on key/value bindings. +
+
fold [CCMultiSet.S]
fold [CCMultiMap.BIDIR]
+Fold on pairs +
+
fold [CCMultiMap.S]
+Fold on all key/value +
+
fold [CCKList]
+Fold on values +
+
fold [CCKTree]
+Fold on values in no specified order. +
+
fold [CCResult]
+fold ~ok ~error e opens e and, if e = Ok x, returns + ok x, otherwise e = Error s and it returns error s. +
+
fold [CCString.S]
+Fold on chars by increasing index. +
+
fold [CCArray.S]
fold [CCPair]
+Synonym to CCPair.merge +
+
fold [CCOpt]
+Fold on 0 or 1 element +
+
fold [CCHeap.S]
+Fold on all values +
+
fold [CCError]
+fold ~success ~failure e opens e and, if e = `Ok x, returns + success x, otherwise e = `Error s and it returns failure s. +
+
fold [CCVector]
+Fold on elements of the vector +
+
fold2 [CCKList]
+Fold on two collections at once. +
+
fold2 [CCString]
+Fold on pairs of chars +
+
fold_filter_map [CCList]
+fold_filter_map f acc l is a fold_left-like function, but also + generates a list of output in a way similar to CCList.filter_map +
+
fold_flat_map [CCList]
+fold_flat_map f acc l is a fold_left-like function, but it also maps the + list to a list of lists that is then flatten'd.. +
+
fold_keys [CCMixmap.S]
+Fold over the keys +
+
fold_keys [CCMixtbl]
+Fold over the keys +
+
fold_l [CCResult]
fold_l [CCError]
fold_left [CCPersistentArray]
fold_m [CCCat.TRAVERSE]
fold_m [CCKList.Traverse]
fold_m [CCResult.Traverse]
fold_m [CCList.Traverse]
fold_m [CCError.Traverse]
fold_map [CCList]
+fold_map f acc l is a fold_left-like function, but it also maps the + list to another list. +
+
fold_map2 [CCList]
+fold_map2 is to fold_map what List.map2 is to List.map. +
+
fold_multimap [CCLinq.PMap]
+Fold on the items of the multimap +
+
fold_product [CCList]
+Fold on the cartesian product +
+
fold_pure [CCMonadIO.Seq]
+fold f acc seq folds over seq, consuming it. +
+
fold_rev [CCRAL]
+Fold on the list's elements, in reverse order (starting from the tail) +
+
fold_right [CCPersistentArray]
+Fold on the elements of the array. +
+
fold_right [CCList]
+Safe version of fold_right +
+
fold_seq [CCResult]
fold_seq [CCError]
fold_v [CCGraph.LazyTree]
fold_values [CCTrie.S]
+More efficient version of CCTrie.S.fold, that doesn't keep keys +
+
fold_while [CCArray.S]
+Fold left on array until a stop condition via ('a, `Stop) is + indicated by the accumulator +
+
fold_while [CCList]
+Fold until a stop condition via ('a, `Stop) is + indicated by the accumulator +
+
foldi [CCArray1.View]
+Fold on values with their index +
+
foldi [CCArray1]
foldi [CCImmutArray]
foldi [CCArray.S]
+Fold left on array, with index +
+
foldi [CCList.Idx]
+Fold on list, with index +
+
for_all [CCLinq]
for_all [CCArray1]
for_all [CCImmutArray]
for_all [CCHashSet.S]
for_all [CCPersistentHashtbl.S]
for_all [CCString]
+True for all chars? +
+
for_all [CCArray.S]
for_all [CCOpt]
+
+
for_all [CCVector]
+Universal test (do all the elements satisfy the predicate?) +
+
for_all2 [CCKList]
for_all2 [CCString]
+All pairs of chars respect the predicate? +
+
for_all2 [CCArray.S]
+Forall on pairs of arrays. +
+
force [CCKTree]
+force t evaluates t completely and returns a regular tree + structure +
+
fprintf [CCFormat]
+Alias to Format.fprintf +
+
fprintf [CCPrint.MakeIO]
+Fprintf on a monadic output +
+
fprintf [CCPrint]
+Print on a channel +
+
free [CCAllocCache.Arr]
+Return array to the cache. +
+
freeze [CCHashTrie.Transient]
+freeze i makes i unusable for new modifications. +
+
freeze [CCBitField.S]
+Prevent new fields from being added. +
+
freeze [CCVector]
+Make an immutable vector (no copy! Don't use the old version) +
+
freeze_copy [CCVector]
+Copy the vector into an immutable version +
+
front [CCRAL]
+Remove and return the first element of the list +
+
front_exn [CCRAL]
+Unsafe version of CCRAL.front. +
+
frozen [CCHashTrie.Transient]
+frozen i returns true if freeze i was called before. +
+
fsign [CCFloat]
+fsign x is one of -1., -0., +0., +1., or nan if x is NaN. +
+
fst [CCLinq]
full [CCString.Sub]
+Full string +
+
full [CCArray.Sub]
+Slice that covers the full array +
+

G
gen [CCString.Split]
gen [CCHash.S]
gen [CCHash]
gen_cpy [CCString.Split]
general_iter [CCMonadIO.Seq]
+general_iter f acc seq performs a filter_map over seq, + using f. +
+
generic [CCGraph.Traverse]
+Traversal of the given graph, starting from a sequence + of vertices, using the given bag to choose the next vertex to + explore. +
+
generic_tag [CCGraph.Traverse]
+One-shot traversal of the graph using a tag set and the given bag +
+
get [CCLinq.PMap]
get [CCSemaphore]
+Current value +
+
get [CCLock.LockRef]
get [CCLock]
+Get the value in the lock. +
+
get [CCPool.Make.Fut]
+Blocking get: wait for the future to be evaluated, and get the value, + or the exception that failed the future is returned. +
+
get [CCArray1.View]
+get v i returns the i-th element of v. +
+
get [CCArray1.Bool]
get [CCArray1]
+Get n-th element +
+
get [CCBigstring]
get [CCLevenshtein.STRING]
get [CCKMP.STRING]
get [CCImmutArray]
+Access the element +
+
get [CCRAL]
+get l i accesses the i-th element of the list. +
+
get [CCWBTree.S]
get [CCHashTrie.S]
get [CCBitField.S.FIELD]
get [CCMixset]
+get ~key set obtains the value for key in set, if any. +
+
get [CCPersistentArray]
+get a i returns the element with index i from the array a. +
+
get [CCRingBuffer.Array.S]
+get t i gets the element at position i +
+
get [CCMixmap.S]
+Get the value corresponding to this key, if it exists and + belongs to the same key +
+
get [CCMixtbl]
+Get the value corresponding to this key, if it exists and + belongs to the same key +
+
get [CCBV]
+Is the i-th bit true? Returns false if the index is too high +
+
get [CCPersistentHashtbl.S]
+Safe version of ! +
+
get [CCFlatHashtbl.S]
+get k tbl recovers the value for k in tbl, or + returns None if k doesn't belong +
+
get [CCMap.S]
+Safe version of find +
+
get [CCHashtbl.COUNTER]
+Number of occurrences for this element +
+
get [CCHashtbl.DEFAULT]
+Unfailing retrieval (possibly returns the default value). +
+
get [CCHashtbl.S]
+Safe version of Hashtbl.find +
+
get [CCHashtbl]
+Safe version of Hashtbl.find +
+
get [CCArray.MONO_ARRAY]
get [CCArray.S]
get [CCOpt]
+get default x unwraps x, but if x = None it returns default instead. +
+
get [CCList.Assoc]
+Find the element +
+
get [CCList.Idx]
get [CCVector]
+Access element by its index, or +
+
get_back [CCRingBuffer.S]
+get_back buf i returns the i-th element of buf from the back, ie + the one returned by take_back buf after i-1 calls to junk_back buf. +
+
get_edge [CCGraph.Traverse.Event]
get_edge_kind [CCGraph.Traverse.Event]
get_enter [CCGraph.Traverse.Event]
get_exit [CCGraph.Traverse.Event]
get_exn [CCSexp.Traverse]
+Unwrap an option, possibly failing. +
+
get_exn [CCRAL]
+Unsafe version of CCRAL.get +
+
get_exn [CCWBTree.S]
+
+
get_exn [CCHashTrie.S]
+
+
get_exn [CCMixset]
+Same as CCMixset.get, but can fail +
+
get_exn [CCPersistentHashtbl.S]
+Synonym to CCPersistentHashtbl.S.find with flipped arguments +
+
get_exn [CCFlatHashtbl.S]
get_exn [CCResult]
+Extract the value x from Ok x, fails otherwise. +
+
get_exn [CCOpt]
+Open the option, possibly failing if it is None +
+
get_exn [CCList.Assoc]
+Same as get +
+
get_exn [CCList.Idx]
+Get the i-th element, or +
+
get_exn [CCError]
+Extract the value x from `Ok x, fails otherwise. +
+
get_field [CCSexp.Traverse]
+get_field name e, when e = List [(n1,x1); (n2,x2) ... ], extracts + the xi such that name = ni, if it can find it. +
+
get_front [CCRingBuffer.S]
+get_front buf i returns the i-th element of buf from the front, ie + the one returned by take_front buf after i-1 calls to junk_front buf. +
+
get_lazy [CCOpt]
+get_lazy default_fn x unwraps x, but if x = None it returns default_fn () instead. +
+
get_or [CCResult]
+get_or e ~default returns x if e = Ok x, default otherwise +
+
get_or [CCMap.S]
+get_or k m ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in m) +
+
get_or [CCHashtbl.S]
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl) +
+
get_or [CCHashtbl]
+get_or tbl k ~or_ returns the value associated to k if present, + and returns or_ otherwise (if k doesn't belong in tbl) +
+
get_seq [CCLinq.PMap]
+Select a key from a map and wrap into sequence +
+
get_then_clear [CCLock]
+get_then_clear b sets b to false, and return the old value +
+
get_then_decr [CCLock]
+get_then_decr x decrements x, and return its previous value +
+
get_then_incr [CCLock]
+get_then_incr x increments x, and return its previous value +
+
get_then_incr [CCRef]
+get_then_incr r increments r and returns its old value, think r++ +
+
get_then_set [CCLock]
+get_then_set b sets b to true, and return the old value +
+
get_variant [CCSexp.Traverse]
+get_variant l e checks whether e = List (Atom s :: args), and + if some pair of l is s, f. +
+
get_vertex [CCGraph.Traverse.Event]
group [CCKList]
+group eq l groups together consecutive elements that satisfy eq. +
+
group_by [CCLinq]
+group_by f takes a collection c as input, and returns + a multimap m such that for each x in c, + x occurs in m under the key f x. +
+
group_by' [CCLinq]
group_join [CCLinq]
+group_join key2 associates to every element x of + the first collection, all the elements y of the second + collection such that eq x (key y) +
+
group_succ [CCList]
+group_succ ~eq l groups together consecutive elements that are equal + according to eq +
+
guard [CCResult]
+guard f runs f () and returns its result wrapped in Ok. +
+
guard [CCError]
+guard f runs f () and returns its result wrapped in `Ok. +
+
guard_str [CCResult]
+Same as CCResult.guard but uses CCResult.of_exn to print the exception. +
+
guard_str [CCError]
+Same as CCError.guard but uses CCError.of_exn to print the exception. +
+
guard_str_trace [CCResult]
+Same as CCResult.guard_str but uses CCResult.of_exn_trace instead of CCResult.of_exn so + that the stack trace is printed. +
+
guard_str_trace [CCError]
+Same as CCError.guard_str but uses CCError.of_exn_trace instead of CCError.of_exn so + that the stack trace is printed. +
+

H
hash [CCSexp]
hash [CCHashTrie.KEY]
hash [CCHashSet.ELEMENT]
+Positive value +
+
hash [CCHashconsedSet.ELT]
+Deterministic +
+
hash [CCHashconsedSet.S]
+Fast (arbitrary, deterministic) hash O(1) +
+
hash [CCPersistentHashtbl.HashedType]
hash [CCFlatHashtbl.HASHABLE]
hash [CCInt64]
hash [CCString]
hash [CCFloat]
hash [CCInt]
hbox [CCFormat]
+Wrap the printer in an horizontal box +
+
hd [CCRAL]
+First element of the list, or +
+
hd_tl [CCList]
+hd_tl (x :: l) returns hd, l. +
+
head [CCLazy_list]
+Evaluate head, return it, or None if the list is empty +
+
head [CCKList]
+Head of the list +
+
head_exn [CCKList]
+Unsafe version of CCKList.head +
+
height [CCKTree]
+Length of the longest path to empty leaves +
+
hovbox [CCFormat]
+Wrap the printer in a horizontal or vertical box +
+
hvbox [CCFormat]
+Wrap the printer in a horizontal/vertical box +
+

I
id [CCBatch.S]
id [CCFun]
+Identity function +
+
if_ [CCHash.S]
+Decide which hash function to use depending on the boolean +
+
if_ [CCHash]
+Decide which hash function to use depending on the boolean +
+
if_ [CCOpt]
+if_ f x is Some x if f x, None otherwise +
+
incr [CCLock]
+Atomically increment the value +
+
incr [CCHashtbl.COUNTER]
+Increment the counter for the given element +
+
incr [CCHashtbl.S]
+incr ?by tbl x increments or initializes the counter associated with x. +
+
incr [CCHashtbl]
+incr ?by tbl x increments or initializes the counter associated with x. +
+
incr_by [CCHashtbl.COUNTER]
+Add or remove several occurrences at once. +
+
incr_then_get [CCLock]
+incr_then_get x increments x, and return its new value +
+
incr_then_get [CCRef]
+incr_then_get r increments r and returns its new value, think ++ r +
+
init [CCArray1]
+Initialize with given size and initialization function +
+
init [CCBigstring]
+Initialize with the given function (called at every index) +
+
init [CCImmutArray]
+init n f makes the array [| f 0; f 1; ... ; f (n-1) |]. +
+
init [CCPersistentArray]
+make n f returns a persistent array of length n, with element + i initialized to the result of f i. +
+
init [CCFQueue]
+Queue deprived of its last element. +
+
init [CCString]
+Analog to Array.init. +
+
init [CCHash]
+Initial value +
+
init [CCList]
+Similar to Array.init +
+
init [CCVector]
+Init the vector with the given function and size +
+
inj [CCCat.FREE_MONAD]
input_of_chan [CCParse]
+input_of_chan ic reads lazily the content of ic as parsing goes. +
+
input_of_string [CCParse]
+Parse the string +
+
insert [CCHashSet.S]
+insert s x adds x into s +
+
insert [CCList.Zipper]
+Insert an element at the current position. +
+
insert [CCList.Idx]
+Insert at i-th position, between the two existing elements. +
+
insert [CCHeap.S]
+Insert a value in the heap +
+
int [CCParse.U]
int [CCApp_parse]
+Parse an integer +
+
int [CCBitField.S]
+New field for width bits. +
+
int [CCFormat]
int [CCRandom]
int [CCHash.HASH]
int [CCPrint]
int2 [CCBitField.S]
+New field of type 2-bits int (same as int ~width:2) +
+
int3 [CCBitField.S]
+New field of type 3-bits int (same as int ~width:3) +
+
int32 [CCFormat]
+
+
int32 [CCHash.HASH]
int32_ [CCHash]
+
+
int64 [CCFormat]
+
+
int64 [CCHash.HASH]
int64_ [CCHash]
+
+
int_ [CCOrd]
int_ [CCHash]
+
+
int_of_yojson [CCArray1]
int_range [CCRandom]
+Inclusive range +
+
int_to_yojson [CCArray1]
inter [CCLinq]
+Intersection of two collections. +
+
inter [CCBloom]
+The sets MUST have the same set of hash functions +
+
inter [CCHashSet.S]
+inter a b returns a ∩ b +
+
inter [CCHashconsedSet.S]
inter [CCIntMap]
inter [CCBV]
+inter bv1 bv2 returns the intersection of the two sets +
+
inter [CCMultiMap.S]
+Intersection of multimaps +
+
inter [CCList.Set]
+List intersection. +
+
inter_into [CCBV]
+inter ~into bv sets into to the intersection of itself and bv +
+
inter_mut [CCBloom]
+inter_mut ~into f changes into into the intersection of into and f + into and f MUST have the same set of hash functions +
+
inter_mut [CCHashSet.S]
+inter_mut ~into a changes into into a ∩ into +
+
interleave [CCKList]
+Fair interleaving of both streams. +
+
intersection [CCMultiSet.S]
+intersection a b is a multiset such that + count (intersection a b) x = min (count a x) (count b x) +
+
is_alpha [CCParse]
+Is the char a letter? +
+
is_alpha_num [CCParse]
is_directory [CCMonadIO.File]
is_directory [CCIO.File]
is_done [CCPool.Make.Fut]
+Is the future evaluated (success/failure)? +
+
is_empty [CCLinq]
is_empty [CCLevenshtein.S.Index]
is_empty [CCRAL]
+Check whether the list is empty +
+
is_empty [CCWBTree.S]
is_empty [CCHashTrie.S]
is_empty [CCRingBuffer.S]
+Is the buffer empty (i.e. +
+
is_empty [CCBV]
+Any bit set? +
+
is_empty [CCFQueue]
is_empty [CCDeque]
+Is the deque empty? +
+
is_empty [CCPersistentHashtbl.S]
+Is the table empty? +
+
is_empty [CCTrie.S]
is_empty [CCMultiSet.S]
is_empty [CCMultiMap.BIDIR]
is_empty [CCMultiMap.S]
+Empty multimap? +
+
is_empty [CCLazy_list]
+Evaluates the head +
+
is_empty [CCKList]
is_empty [CCKTree]
is_empty [CCList.Zipper]
+Empty zipper? Returns true iff the two lists are empty. +
+
is_empty [CCList]
+is_empty l returns true iff l = [] +
+
is_empty [CCHeap.S]
+Is the heap empty? +
+
is_empty [CCVector]
+Is the vector empty? +
+
is_focused [CCList.Zipper]
+Is the zipper focused on some element? That is, will CCList.Zipper.focused + return a Some v? +
+
is_nan [CCFloat]
is_none [CCOpt]
+
+
is_num [CCParse]
+Is the char a digit? +
+
is_some [CCOpt]
is_sorted [CCList]
+is_sorted l returns true iff l is sorted (according to given order) +
+
is_space [CCParse]
+True on ' ' and '\t' +
+
is_sub [CCString]
+is_sub ~sub i s j ~len returns true iff the substring of + sub starting at position i and of length len is a substring + of s starting at position j +
+
is_white [CCParse]
+True on ' ' and '\t' and '\n' +
+
iter [CCMonadIO.Seq]
+Iterate on the stream, with an action for each element +
+
iter [CCLinq.PMap]
+View a multimap as a proper collection +
+
iter [CCArray1]
+iter a ~f calls f v where get a i = v for each i < length a. +
+
iter [CCBigstring]
iter [CCLevenshtein.S.Index]
+Iterate on the pairs +
+
iter [CCHet.Map]
iter [CCHet.Tbl]
iter [CCImmutArray]
iter [CCRAL]
+Iterate on the list's elements +
+
iter [CCWBTree.S]
iter [CCHashTrie.S]
iter [CCHashSet.S]
+Iterate on values +
+
iter [CCGraph.Seq]
iter [CCHashconsedSet.S]
+Iterate on elements, in no particular order +
+
iter [CCPersistentArray]
iter [CCIntMap]
iter [CCRingBuffer.S]
+iter b ~f calls f i t for each element t in buf +
+
iter [CCRingBuffer.Array.S]
+iter f t iterates over the array t invoking f with + the current element, in array order +
+
iter [CCBV]
+Iterate on all bits +
+
iter [CCFQueue]
iter [CCDeque]
+Iterate on elements +
+
iter [CCPersistentHashtbl.S]
+Iterate over bindings +
+
iter [CCCache]
+Iterate on cached values. +
+
iter [CCTrie.S]
+Same as CCTrie.S.fold, but for effectful functions +
+
iter [CCMultiSet.S]
iter [CCMultiMap.S]
+Iterate on all key/value +
+
iter [CCKList]
iter [CCKTree]
iter [CCResult]
+Apply the function only in case of Ok +
+
iter [CCString]
+Alias to String.iter +
+
iter [CCRef]
+Call the function on the content of the reference +
+
iter [CCArray.S]
iter [CCPair]
iter [CCOpt]
+Iterate on 0 or 1 element +
+
iter [CCHeap.S]
+Iterate on elements +
+
iter [CCError]
+Apply the function only in case of `Ok +
+
iter [CCVector]
+Iterate on the vector's content +
+
iter2 [CCKList]
+Iterate on two collections at once. +
+
iter2 [CCString]
+Iterate on pairs of chars +
+
iter_fields [CCBitField.S]
+Iterate on all currently present fields +
+
iter_keys [CCMixmap.S]
+Iterate on the keys of this map +
+
iter_keys [CCMixtbl]
+Iterate on the keys of this table +
+
iter_ones [CCArray1.Bool]
+iter_ones ~f a calls f i for every index i such that get a i = true +
+
iter_true [CCBV]
+Iterate on bits set to 1 +
+
iter_values [CCTrie.S]
iter_zeroes [CCArray1.Bool]
+iter_ones ~f a calls f i for every index i such that get a i = false +
+
iteri [CCArray1.View]
+iteri ~f v iterates on elements of v with their index +
+
iteri [CCArray1]
+iteri a ~f calls f i v where get a i = v for each i < length a. +
+
iteri [CCImmutArray]
iteri [CCRAL]
iteri [CCPersistentArray]
+iter f t applies function f to all elements of the persistent array, + in order from element 0 to element length t - 1. +
+
iteri [CCRingBuffer.S]
+iteri b ~f calls f i t for each element t in buf, with i + being its relative index within buf. +
+
iteri [CCKList]
+Iterate with index (starts at 0) +
+
iteri [CCString]
+Iter on chars with their index +
+
iteri [CCArray.S]
iteri [CCList.Idx]
iteri [CCVector]
+Iterate on the vector, with indexes +
+
iteri2 [CCString]
+Iterate on pairs of chars with their index +
+

J
join [CCLinq.IO]
join [CCLinq]
+join key1 key2 ~merge is a binary operation + that takes two collections a and b, projects their + elements resp. +
+
join [CCThread.Arr]
+A.join a joins every thread in a +
+
join [CCResult]
+join t, in case of success, returns Ok o from Ok (Ok o). +
+
join [CCError]
+join t, in case of success, returns `Ok o from `Ok (`Ok o). +
+
junk [CCApp_parse.READER]
junk [CCApp_parse]
+Skip next char +
+
junk_back [CCRingBuffer.S]
+Drop the back element from t. +
+
junk_front [CCRingBuffer.S]
+Drop the front element from t. +
+

K
keys [CCIntMap]
keys [CCFlatHashtbl.S]
keys [CCMultiMap.S]
keys [CCMap.S]
+Iterate on keys only +
+
keys [CCHashtbl.S]
+Iterate on keys (similar order as Hashtbl.iter) +
+
keys [CCHashtbl]
+Iterate on keys (similar order as Hashtbl.iter) +
+
keys_list [CCHashtbl.S]
+keys t is the list of keys in t. +
+
keys_list [CCHashtbl]
+keys_list t is the list of keys in t. +
+
keys_seq [CCMixmap.S]
+All the keys +
+
keys_seq [CCMixtbl]
+All the keys +
+
kind [CCBitField.S.FIELD]
klist [CCString.Split]
klist [CCHash.S]
klist [CCHash]
klist_cpy [CCString.Split]
klist_to_list [CCLevenshtein]
+Helper for short lists. +
+
ksprintf [CCFormat]
+ksprintf fmt ~f formats using fmt, in a way similar to CCFormat.sprintf, + and then calls f on the resulting string. +
+

L
last [CCFQueue]
+Last element of the queue +
+
last [CCList]
+last n l takes the last n elements of l (or less if + l doesn't have that many elements +
+
last_exn [CCFQueue]
lazy_ [CCLinq]
left [CCString.Split]
+Split on the first occurrence of by from the leftmost part of + the string +
+
left [CCList.Zipper]
+Go to the left, or do nothing if the zipper is already at leftmost pos +
+
left_exn [CCString.Split]
+Split on the first occurrence of by from the leftmost part of the string +
+
left_exn [CCList.Zipper]
+Go to the left, or +
+
length [CCMonadIO.Seq]
+Length of the stream +
+
length [CCArray1.View]
+length v is the number of elements of v +
+
length [CCArray1]
+Number of elements +
+
length [CCBigstring]
+Alias for size. +
+
length [CCLevenshtein.STRING]
length [CCKMP.STRING]
length [CCHet.Map]
length [CCHet.Tbl]
length [CCImmutArray]
length [CCRAL]
+Number of elements. +
+
length [CCPersistentArray]
+Returns the length of the persistent array. +
+
length [CCRingBuffer.S]
+Number of elements currently stored in the buffer. +
+
length [CCRingBuffer.Array.S]
+length t gets the total number of elements currently in t +
+
length [CCMixtbl]
+Number of bindings +
+
length [CCBV]
+Length of underlying array +
+
length [CCDeque]
+Number of elements + used to be linear time, now constant time +
+
length [CCPersistentHashtbl.S]
+Number of bindings +
+
length [CCLazy_list]
+length l returns the number of elements in l, eagerly (linear time). +
+
length [CCKList]
+Number of elements in the list. +
+
length [CCHashtbl.COUNTER]
+Number of distinct elements +
+
length [CCString.S]
length [CCArray.MONO_ARRAY]
length [CCArray.S]
length [CCVector]
+Synonym for CCVector.size +
+
leq [CCHeap.PARTIAL_ORD]
+leq x y shall return true iff x is lower or equal to y +
+
lexicographic [CCFun]
+Lexicographic combination of comparison functions +
+
lift [CCMonadIO]
+Synonym to CCMonadIO.map +
+
lift [CCCat.MONAD_TRANSFORMER]
lift [CCList.Ref]
+Apply a list function to the content +
+
lift2 [CCMonadIO]
lift3 [CCMonadIO]
line [CCApp_parse.READER]
linear [CCCache]
+Linear cache with the given size. +
+
lines [CCMonadIO.Seq]
+Lines of an input channel +
+
lines [CCLinq.IO]
+Convert a string into a collection of lines +
+
lines [CCString]
+lines s returns a list of the lines of s (splits along '\n') +
+
lines' [CCLinq.IO]
+Convert a string into a list of lines +
+
lines_gen [CCString]
+lines_gen s returns a generator of the lines of s (splits along '\n') +
+
list [CCParse.U]
+list p parses a list of p, with the OCaml conventions for + start token "", stop token "" and separator ";". +
+
list [CCFormat]
list [CCHash.S]
list [CCPrint]
list_ [CCString.Split]
+Eplit the given string along the given separator by. +
+
list_ [CCOrd]
+Lexicographic combination on lists +
+
list_ [CCHash]
+Hash a list. +
+
list_all [CCSexp.Traverse]
+list_all f (List l) returns the list of all y such that x in l + and f x = Some y +
+
list_any [CCSexp.Traverse]
+list_any f (List l) tries f x for every element x in List l, + and returns the first non-None result (if any). +
+
list_cpy [CCString.Split]
list_seq [CCRandom]
+Build random lists from lists of random generators +
+
lnot [CCInt64]
load [CCBloom]
+Ratio of 1 bits in the underlying array. +
+
longest_prefix [CCTrie.S]
+longest_prefix k m finds the longest prefix of k that leads to + at least one path in m (it does not mean that the prefix is bound to + a value. +
+
lookup [CCArray.S]
+Lookup the index of some value in a sorted array. +
+
lookup_exn [CCArray.S]
+Same as CCArray.S.lookup_exn, but +
+
lru [CCCache]
+LRU cache of the given size ("Least Recently Used": keys that have not been + used recently are deleted first). +
+

M
make [CCSexpM.MakeDecode]
+Make a decoder with the given function used to refill an + internal buffer. +
+
make [CCMonadIO.File]
+Build a file representation from a path (absolute or relative) +
+
make [CCPool.Make.Fut]
+Create a future, representing a value that will be computed by + the function. +
+
make [CCArray1]
+New array with undefined elements +
+
make [CCImmutArray]
+make n x makes an array of n times x +
+
make [CCAllocCache.Arr]
+make cache i x is like Array.make i x, + but might return a cached array instead of allocating one. +
+
make [CCRAL]
make [CCGraph]
+Make a graph by providing its fields +
+
make [CCPersistentArray]
+make n x returns a persistent array of length n, with x. +
+
make [CCRingBuffer.Array.S]
+make s e makes an array of size s with e elements +
+
make [CCKTree.Dot]
make [CCIO.File]
+Build a file representation from a path (absolute or relative) +
+
make [CCString.Sub]
make [CCArray.Sub]
+Create a slice. +
+
make [CCPair]
+Make a tuple from its components +
+
make [CCList.Zipper]
+Create a zipper pointing at the first element of the list +
+
make [CCVector]
+make n x makes a vector of size n, filled with x +
+
make1 [CCPool.Make.Fut]
make2 [CCPool.Make.Fut]
make_char [CCArray1]
make_complex32 [CCArray1]
make_complex64 [CCArray1]
make_float32 [CCArray1]
make_float64 [CCArray1]
make_int [CCArray1]
make_int16s [CCArray1]
make_int16u [CCArray1]
make_int32 [CCArray1]
make_int64 [CCArray1]
make_int8s [CCArray1]
make_int8u [CCArray1]
make_labelled_tuple [CCGraph]
+Make a graph with edges being triples (origin,label,dest) +
+
make_native [CCArray1]
make_tuple [CCGraph]
+Make a graph with edges being pairs (origin,dest) +
+
many [CCParse]
+many p parses a list of p, eagerly (as long as possible) +
+
many [CCApp_parse]
+0 or more parsed elements of the given type. +
+
many1 [CCParse]
+parses a non empty list +
+
many1 [CCApp_parse]
+Same as CCApp_parse.many, but needs at least one element +
+
map [CCMonadIO.Seq]
+Map values with actions +
+
map [CCMonadIO]
+Map values +
+
map [CCLinq.PMap]
+Transform values +
+
map [CCLinq]
+Map each value +
+
map [CCCat.FUNCTOR]
map [CCBatch.COLLECTION]
map [CCBatch.S]
map [CCPool.Make.Fut]
+Maps the value inside the future. +
+
map [CCArray1.View]
+Map values +
+
map [CCArray1]
map [CCParse.U]
map [CCApp_parse]
+Map the parsed value +
+
map [CCImmutArray]
map [CCRAL]
+Map on elements +
+
map [CCWBTree.S]
+Map values, giving only the value. +
+
map [CCGraph.Seq]
map [CCPersistentArray]
map [CCIntMap]
+
+
map [CCFQueue]
+Map values +
+
map [CCPersistentHashtbl.S]
+Map all values +
+
map [CCTrie.S]
+Map values, giving only the value. +
+
map [CCLazy_list]
+Lazy map +
+
map [CCKList]
map [CCKTree]
map [CCResult]
+Map on success +
+
map [CCFormat]
map [CCString]
+Map chars +
+
map [CCRandom]
map [CCOrd]
+map f ord is the comparison function that, given objects x and y, + projects x and y using f (e.g. +
+
map [CCRef]
+Transform the value +
+
map [CCArray]
map [CCPair]
map [CCOpt]
+Transform the element inside, if any +
+
map [CCList]
+Safe version of map +
+
map [CCError]
+Map on success +
+
map [CCPrint]
map [CCVector]
+Map elements of the vector, yielding a new vector +
+
map1 [CCLinq]
map1 [CCPair]
map2 [CCLinq]
map2 [CCArray1.View]
+Map values +
+
map2 [CCArray1]
map2 [CCParse.U]
map2 [CCKList]
+Map on two collections at once. +
+
map2 [CCResult]
+Same as CCResult.map, but also with a function that can transform + the error message in case of failure +
+
map2 [CCString]
+Map pairs of chars +
+
map2 [CCPair]
map2 [CCOpt]
map2 [CCError]
+Same as CCError.map, but also with a function that can transform + the error message in case of failure +
+
map3 [CCParse.U]
map_a [CCPool.Make.Fut]
+map_l f a maps f on every element of a, and will return + the array of every result if all calls succeed, or an error otherwise. +
+
map_async [CCPool.Make.Fut]
+Maps the value inside the future, to be computed in a separated job. +
+
map_err [CCResult]
+Map on the error variant +
+
map_err [CCError]
+Map on error. +
+
map_file_descr [CCBigstring]
+map_file_descr descr len is a lower-level access to an underlying file descriptor. +
+
map_fst [CCPair]
+Compose the given function with fst. +
+
map_l [CCPool.Make.Fut]
+map_l f l maps f on every element of l, and will return + the list of every result if all calls succeed, or an error otherwise. +
+
map_l [CCResult]
map_l [CCError]
map_list [CCHashtbl.S]
+Map on a hashtable's items, collect into a list +
+
map_list [CCHashtbl]
+Map on a hashtable's items, collect into a list +
+
map_m [CCCat.TRAVERSE]
map_m [CCKList.Traverse]
map_m [CCResult.Traverse]
map_m [CCList.Traverse]
map_m [CCError.Traverse]
map_m_par [CCList.Traverse]
+Same as map_m but map_m_par f (x::l) evaluates f x and + f l "in parallel" before combining their result (for instance + in Lwt). +
+
map_opt [CCSexp.Traverse]
+Map over a list, failing as soon as the function fails on any element +
+
map_or [CCResult]
+map_or f e ~default returns f x if e = Ok x, default otherwise +
+
map_or [CCOpt]
+map_or ~default f o is f x if o = Some x, default otherwise +
+
map_pure [CCMonadIO.Seq]
+Map values with a pure function +
+
map_same [CCPair]
map_snd [CCPair]
+Compose the given function with snd. +
+
map_v [CCGraph.LazyTree]
mapi [CCImmutArray]
mapi [CCRAL]
+Map with index +
+
mapi [CCWBTree.S]
+Map values, giving both key and value. +
+
mapi [CCPersistentArray]
+Applies the given function to all elements of the array, and returns + a persistent array initialized by the results of f. +
+
mapi [CCIntMap]
+
+
mapi [CCTrie.S]
+Map values, giving both key and value. +
+
mapi [CCKList]
+Map with index (starts at 0) +
+
mapi [CCString]
+Map chars with their index +
+
mapi [CCList.Idx]
match_with [CCLevenshtein.S]
+match_with a s matches the string s against a, and returns + true if the distance from s to the word represented by a is smaller + than the limit used to build a +
+
max [CCLinq]
max [CCMultiSet.S]
+Maximal element w.r.t the total ordering on elements +
+
max [CCFloat]
max [CCInt]
+
+
max_capacity [CCRingBuffer.S]
+Maximum length of the inner buffer, or None if unbounded. +
+
max_finite_value [CCFloat]
max_int [CCInt64]
max_size [CCPool.PARAM]
+Maximum number of threads in the pool +
+
max_value [CCFloat]
max_width [CCBitField]
+System-dependent maximum width for a bitfield, typically 30 or 62 +
+
maybe [CCOpt]
+maybe f x o is x if o is None, + otherwise it's f y if o = Some y +
+
meet [CCMultiSet.S]
+meet a b is a multiset such that + count (meet a b) x = max (count a x) (count b x) +
+
mem [CCHet.Map]
mem [CCHet.Tbl]
mem [CCWBTree.S]
mem [CCBloom]
+mem f x tests whether x (probably) belongs to f +
+
mem [CCHashTrie.S]
mem [CCHashSet.S]
+mem s x returns true iff x is in s +
+
mem [CCHashconsedSet.S]
mem [CCIntMap]
mem [CCMixmap.S]
+Is the given key in the map, with the right type? +
+
mem [CCMixtbl]
+Is the given key in the table, with the right type? +
+
mem [CCPersistentHashtbl.S]
+Is the key bound? +
+
mem [CCFlatHashtbl.S]
+mem tbl k returns true iff k is mapped to some value + in tbl +
+
mem [CCMultiSet.S]
mem [CCMultiMap.S]
+Is there a binding for this key? +
+
mem [CCString]
+mem ~sub s is true iff sub is a substring of s +
+
mem [CCList.Assoc]
+mem l x returns true iff x is a key in l +
+
mem [CCList.Set]
+Membership to the list. +
+
mem_left [CCMultiMap.BIDIR]
+Is the left key present in at least one pair? +
+
mem_right [CCMultiMap.BIDIR]
+Is the right key present in at least one pair? +
+
member [CCVector]
+Is the element a member of the vector? +
+
memo [CCParse]
+Memoize the parser. +
+
memoize [CCKList]
+Avoid recomputations by caching intermediate results +
+
merge [CCWBTree.S]
+Similar to Map.S.merge +
+
merge [CCPersistentHashtbl.S]
+Merge two tables together into a new table. +
+
merge [CCTrie.S]
+Merge two tries together. +
+
merge [CCKList]
+Merge two sorted iterators into a sorted iterator +
+
merge [CCPair]
+Uncurrying (merges the two components of a tuple) +
+
merge [CCHeap.S]
+Merge two heaps +
+
merge_safe [CCMap.S]
+merge_safe ~f a b merges the maps a and b together. +
+
min [CCLinq]
min [CCMultiSet.S]
+Minimal element w.r.t the total ordering on elements +
+
min [CCFloat]
min [CCInt]
+
+
min_int [CCInt64]
min_size [CCPool.PARAM]
+Minimum number of threads in the pool +
+
min_value [CCFloat]
mix [CCArray1.Bool]
+mix a b ~into assumes length a + length b = length into and + mixes (interleaves) bits of a and b in into. +
+
mk_heap [CCGraph]
+mk_heap ~leq makes a priority queue where leq x y = true means that + x is smaller than y and should be prioritary +
+
mk_id [CCKTree.Dot]
+Using a formatter string, build an ID +
+
mk_label [CCKTree.Dot]
+Using a formatter string, build a label +
+
mk_map [CCGraph]
+Use a Map.S underneath +
+
mk_mut_tbl [CCGraph]
+Make a new mutable graph from a Hashtbl. +
+
mk_queue [CCGraph]
mk_stack [CCGraph]
mk_table [CCGraph]
+Default implementation for CCGraph.table: a Hashtbl.t +
+
modify [CCList.Zipper]
+Modify the current element, if any, by returning a new element, or + returning None if the element is to be deleted +
+
mult [CCArray1.View.S]
mult [CCArray1.S]
+Elementwise product +
+
mult_scalar [CCArray1.View.S]
mutex [CCLock]
+Underlying mutex +
+

N
name [CCBitField.S.FIELD]
nan [CCFloat]
nativeint [CCFormat]
+
+
nativeint [CCHash.HASH]
nativeint_ [CCHash]
+
+
neg [CCFloat]
neg [CCInt]
+neg i = - i +
+
negate [CCBool]
+Negation on booleans (functional version of not) +
+
newkey [CCMixset]
+newkey () creates a new unique key that can be used to access + a 'a value in a set. +
+
next [CCSexpM.MakeDecode]
+Parse the next S-expression or return an error if the input isn't + long enough or isn't a proper S-expression +
+
next [CCApp_parse.READER]
nil [CCKList]
node [CCKTree]
+Build a node from a label and a list of children +
+
node1 [CCKTree]
+Node with one child +
+
node2 [CCKTree]
+Node with two children +
+
nop [CCParse]
+Succeed with () +
+
not_ [CCArray1.Bool]
+Boolean negation (negation of a 0 becomes a 1) +
+
nth [CCWBTree.S]
+nth i m returns the i-th key, value in the ascending + order. +
+
nth [CCFQueue]
+Return the i-th element of the queue in logarithmic time +
+
nth_exn [CCWBTree.S]
+
+
nth_exn [CCFQueue]
+Unsafe version of CCFQueue.nth +
+
num [CCApp_parse]

O
of_array [CCMonadIO.Seq]
of_array [CCLinq.Array]
of_array [CCLinq]
of_array [CCArray1.View]
of_array [CCArray1]
of_array [CCRAL]
of_array [CCPersistentArray]
+from_array a returns an immutable copy of a. +
+
of_array [CCRingBuffer.S]
+Create a buffer from an initial array, but doesn't take ownership + of it (stills allocates a new internal array) +
+
of_array [CCKList]
+Iterate on the array +
+
of_array [CCString]
of_array [CCVector]
of_array_i [CCLinq]
of_array_unsafe [CCImmutArray]
+Take ownership of the given array. +
+
of_bigarray [CCArray1]
+Convert from a big array +
+
of_bool [CCSexp]
of_bytes [CCBigstring]
of_bytes_slice [CCBigstring]
of_err [CCResult]
+
+
of_exn [CCResult]
+of_exn e uses Printexc to print the exception as a string +
+
of_exn [CCError]
+of_exn e uses Printexc to print the exception as a string +
+
of_exn_trace [CCResult]
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +
+
of_exn_trace [CCError]
+of_exn_trace e is similar to of_exn e, but it adds the stacktrace + to the error message. +
+
of_field [CCSexp]
+Used to represent one record field +
+
of_float [CCSexp]
of_float [CCInt64]
of_float_exn [CCInt64]
of_fun [CCMonadIO.Seq]
+Create a stream from a function that yields an element or stops +
+
of_fun [CCGraph]
+of_fun f makes a graph out of a function that maps a vertex to + the list of its children. +
+
of_gen [CCLevenshtein.S.Index]
+
+
of_gen [CCImmutArray]
of_gen [CCRAL]
of_gen [CCWBTree.S]
of_gen [CCHashTrie.S]
of_gen [CCPersistentArray]
+
+
of_gen [CCIntMap]
+
+
of_gen [CCDeque]
+of_gen g makes a deque containing the elements of g +
+
of_gen [CCLazy_list]
of_gen [CCKList]
+of_gen g consumes the generator and caches intermediate results +
+
of_gen [CCString]
of_gen [CCList]
of_gen [CCHeap.S]
of_gen [CCVector]
of_hashtbl [CCLinq]
of_hashtbl [CCGraph]
+of_hashtbl tbl makes a graph from a hashtable that maps vertices + to lists of children +
+
of_int [CCSexp]
of_int [CCInt64]
of_int [CCFloat]
of_int32 [CCInt64]
of_int32_exn [CCInt64]
of_int_exn [CCInt64]
of_klist [CCIntMap]
+
+
of_klist [CCFQueue]
of_klist [CCString]
of_klist [CCList]
of_klist [CCHeap.S]
of_klist [CCVector]
of_list [CCSexp]
of_list [CCMonadIO.Seq]
of_list [CCLinq.List]
of_list [CCLinq]
+Query that just returns the elements of the list +
+
of_list [CCLevenshtein.STRING]
of_list [CCLevenshtein.S.Index]
+Build an index from a list of pairs of strings and values +
+
of_list [CCLevenshtein.S]
+Build an automaton from a list, with a maximal distance limit +
+
of_list [CCHet.Map]
of_list [CCHet.Tbl]
of_list [CCImmutArray]
of_list [CCRAL]
+Convert a list to a RAL. +
+
of_list [CCWBTree.S]
of_list [CCHashTrie.S]
of_list [CCHashSet.S]
of_list [CCGraph.MAP]
of_list [CCGraph]
+of_list l makes a graph from a list of pairs of vertices. +
+
of_list [CCHashconsedSet.S]
of_list [CCPersistentArray]
+of_list l returns a fresh persistent array containing the elements of l. +
+
of_list [CCIntMap]
of_list [CCBV]
+From a list of true bits +
+
of_list [CCFQueue]
of_list [CCDeque]
+Conversion from list, in order +
+
of_list [CCPersistentHashtbl.S]
of_list [CCFlatHashtbl.S]
of_list [CCTrie.WORD]
of_list [CCTrie.S]
of_list [CCMultiSet.S]
of_list [CCLazy_list]
of_list [CCKList]
of_list [CCMap.S]
of_list [CCHashtbl.COUNTER] +
of_list [CCHashtbl.S]
+From the given list of bindings, added in order +
+
of_list [CCHashtbl]
+From the given list of bindings, added in order +
+
of_list [CCString]
of_list [CCSet.S]
of_list [CCOpt]
+Head of list, or None +
+
of_list [CCHeap.S]
of_list [CCVector]
of_list_map [CCRAL]
+Combination of CCRAL.of_list and CCRAL.map +
+
of_map [CCLinq.AdaptMap]
of_nativeint [CCInt64]
of_nativeint_exn [CCInt64]
of_opt [CCResult]
of_opt [CCError]
of_pair [CCSexp]
of_quad [CCSexp]
of_queue [CCLinq]
of_record [CCSexp]
+Represent a record by its named fields +
+
of_rev_list [CCSexp]
+Reverse the list +
+
of_rev_list [CCPersistentArray]
+of_rev_list l is the same as of_list (List.rev l) but more efficient +
+
of_seq [CCLinq]
+Query that returns the elements of the given sequence. +
+
of_seq [CCLevenshtein.S.Index]
+
+
of_seq [CCHet.Map]
of_seq [CCHet.Tbl]
of_seq [CCImmutArray]
of_seq [CCRAL]
of_seq [CCWBTree.S]
of_seq [CCHashTrie.S]
of_seq [CCHashSet.S]
of_seq [CCGraph.MAP]
of_seq [CCHashconsedSet.S]
of_seq [CCPersistentArray]
of_seq [CCIntMap]
of_seq [CCBV]
of_seq [CCFQueue]
of_seq [CCDeque]
+Create a deque from the sequence. +
+
of_seq [CCPersistentHashtbl.S]
+Add (replace) bindings from the sequence to the table +
+
of_seq [CCFlatHashtbl.S]
of_seq [CCTrie.S]
of_seq [CCMultiSet.S]
of_seq [CCMultiMap.S]
of_seq [CCMap.S]
of_seq [CCHashtbl.COUNTER]
+of_seq s is the same as add_seq (create ()) +
+
of_seq [CCHashtbl.S]
+From the given bindings, added in order +
+
of_seq [CCHashtbl]
+From the given bindings, added in order +
+
of_seq [CCString]
of_seq [CCSet.S]
of_seq [CCList]
of_seq [CCHeap.S]
of_seq [CCVector]
of_seq_count [CCHashtbl.S]
+Similar to CCHashtbl.S.add_seq_count, but allocates a new table and returns it +
+
of_seq_count [CCHashtbl]
+Similar to CCHashtbl.add_seq_count, but allocates a new table and returns it +
+
of_set [CCLinq.AdaptSet]
of_slice [CCArray.Sub]
+Make a sub-array from a triple (arr, i, len) where arr is the array, + i the offset in arr, and len the number of elements of the slice. +
+
of_stack [CCLinq]
of_string [CCLinq]
+Traverse the characters of the string +
+
of_string [CCBigstring]
of_string [CCLevenshtein.S]
+Build an automaton from a string, with a maximal distance limit. +
+
of_string [CCInt64]
of_string [CCFloat]
of_string [CCInt]
+
+
of_string_exn [CCInt64]
of_string_slice [CCBigstring]
of_triple [CCSexp]
of_unit [CCSexp]
of_variant [CCSexp]
+of_variant name args is used to encode algebraic variants + into a S-expr. +
+
of_yojson [CCArray1]
on_failure [CCPool.Make.Fut]
+Attach a handler to be called upon failure. +
+
on_finish [CCPool.Make.Fut]
+Attach a handler to be called when the future is evaluated. +
+
on_success [CCPool.Make.Fut]
+Attach a handler to be called upon success. +
+
ones [CCArray1.Bool]
opp [CCOrd]
+Opposite order +
+
opt [CCApp_parse]
+opt x tries to parse x, and returns None otherwise +
+
opt [CCFormat]
opt [CCHash.S]
opt [CCHash]
opt [CCPrint]
opt_unwrap [CCLinq]
option [CCOrd]
+Comparison of optional values. +
+
or_ [CCArray1.Bool]
+or_ a b ~into puts the boolean "or" of a and b in into + expects length into = max (length a) (length b) +
+
out [CCLinq.IO]
out_lines [CCLinq.IO]
+Evaluate the query and print it line by line on the output +
+
output [CCMonadIO.Seq]
+output oc seq outputs every value of seq into oc, separated + with the optional argument sep (default: None). +
+
output [CCFormat]
output [CCPrint.MakeIO]
+Output a single value +
+
output [CCPrint]

P
pad [CCString]
+pad n str ensures that str is at least n bytes long, + and pads it on the side with c if it's not the case. +
+
pair [CCParse.U]
+Parse a pair using OCaml whitespace conventions. +
+
pair [CCFormat]
pair [CCOrd]
pair [CCHash.S]
pair [CCHash]
pair [CCPrint]
pairs [CCMultiMap.BIDIR]
+Iterate on pairs +
+
parse [CCParse]
+parse ~input p applies p on the input, and returns `Ok x if + p succeeds with x, or `Error s otherwise +
+
parse [CCApp_parse.S]
+Parse the given source using the parser, and returns the parsed value. +
+
parse' [CCApp_parse.S]
+Same as CCApp_parse.S.parse, but returns a user-friendly string in case of failure +
+
parse_chan [CCSexpM]
+Parse a S-expression from the given channel. +
+
parse_chan_gen [CCSexpM]
+Parse a channel into a generator of S-expressions +
+
parse_chan_list [CCSexpM]
parse_exn [CCParse]
+
+
parse_exn [CCApp_parse.S]
+Unsafe version of CCApp_parse.S.parse. +
+
parse_file [CCSexpM]
+Open the file and read a S-exp from it +
+
parse_file [CCParse]
+parse_file ~file p parses file with p by opening the file + and using CCParse.input_of_chan. +
+
parse_file_exn [CCParse]
+Unsafe version of CCParse.parse_file +
+
parse_file_list [CCSexpM]
+Open the file and read a S-exp from it +
+
parse_string [CCSexpM]
+Parse a string +
+
parse_string [CCParse]
+Specialization of CCParse.parse for string inputs +
+
parse_string_exn [CCParse]
+
+
partition_map [CCList]
+partition_map f l maps f on l and gather results in lists: if f x = `Left y, adds y to the first list, if f x = `Right z, adds z to the second list, if f x = `Drop, ignores x +
+
peek [CCBlockingQueue]
+peek q returns Some x if x is the first element of q, + otherwise it returns None +
+
peek [CCApp_parse.READER]
peek_back [CCRingBuffer.S]
+Get the last value from back of t. +
+
peek_back [CCDeque]
+Last value, or +
+
peek_front [CCRingBuffer.S]
+First value from front of t. +
+
peek_front [CCDeque]
+First value, or +
+
pick_array [CCRandom]
+Pick an element at random from the array +
+
pick_list [CCRandom]
+Pick an element at random from the list +
+
pop [CCList.Ref]
pop [CCVector]
+Remove last element, or None +
+
pop_exn [CCList.Ref]
+Unsafe version of CCList.Ref.pop. +
+
pop_exn [CCVector]
+Remove last element, or raise a Failure if empty +
+
pow [CCInt]
+pow a b = a^b for positive integers a and b. +
+
pp [CCArray1.Bool]
+Print the bitvector nicely +
+
pp [CCArray1]
+Print the SDR nicely +
+
pp [CCBitField.S]
+Print the bitfield using the current list of fields +
+
pp [CCHashSet.S]
+pp pp_elt returns a set printer, given a printer for + individual elements +
+
pp [CCGraph.Dot]
+Print the graph, starting from given vertex, on the formatter +
+
pp [CCPersistentHashtbl.S]
pp [CCKList]
+Print the list with the given separator (default ","). +
+
pp [CCKTree.Dot]
+Print the graph in DOT +
+
pp [CCResult]
pp [CCChar]
pp [CCMap.S]
pp [CCString.S]
pp [CCSet.S]
pp [CCRef]
pp [CCArray.S]
+Print an array of items with printing function +
+
pp [CCFloat]
pp [CCBool]
+Printer for booleans +
+
pp [CCInt]
pp [CCPair]
pp [CCOpt]
pp [CCList]
pp [CCError]
pp [CCVector]
pp_i [CCArray.S]
+Print an array, giving the printing function both index and item +
+
pp_seq [CCGraph.Dot]
pp_single [CCKTree.Dot]
prefix [CCString]
+prefix ~pre s returns true iff pre is a prefix of s +
+
print [CCSexpM]
+Pretty-printer nice on human eyes (including indentation) +
+
print [CCBigstring]
+
+
print [CCApp_parse]
+Print a parser structure, for debug purpose +
+
print [CCImmutArray]
print [CCRAL]
print [CCWBTree.S]
print [CCHashTrie.S]
print [CCPersistentArray]
+
+
print [CCIntMap]
+
+
print [CCBV]
+Print the bitvector as a string of bits +
+
print [CCFQueue]
+
+
print [CCDeque]
+Print the elements +
+
print [CCPersistentHashtbl.S]
print [CCKList]
+Print the list with the given separator (default ","). +
+
print [CCKTree.Dot]
+Printer with indentation, etc. +
+
print [CCKTree]
+A pretty-printer using S-expressions and boxes to render the tree. +
+
print [CCResult]
print [CCChar]
print [CCMap.S]
print [CCHashtbl.S]
+Printer for tables +
+
print [CCHashtbl]
+Printer for table +
+
print [CCString.S]
+Print the string within quotes +
+
print [CCSet.S]
print [CCRef]
print [CCArray.S]
+Print an array of items with printing function +
+
print [CCFloat]
print [CCBool]
print [CCInt]
print [CCPair]
print [CCOpt]
+
+
print [CCList]
print [CCHeap.S]
+
+
print [CCError]
print [CCVector]
print_noindent [CCSexpM]
+Raw, direct printing as compact as possible +
+
print_to_file [CCKTree.Dot]
+print_to_file filename g prints g into a file whose name + is filename. +
+
printf [CCPrint]
printl [CCPrint.MakeIO]
+Output a value and add a newline "\n" after. +
+
prod [CCArray1.View.S]
product [CCLinq]
+Cartesian product +
+
product [CCKList]
+Specialization of CCKList.product_with producing tuples +
+
product [CCList]
+Cartesian product of the two lists, with the given combinator +
+
product_elt [CCArray1.S]
+Efficient product of elements +
+
product_with [CCKList]
+Fair product of two (possibly infinite) lists into a new list. +
+
pure [CCMonadIO]
pure [CCLinq]
+Synonym to CCLinq.return +
+
pure [CCCat.APPLICATIVE]
pure [CCParse]
+Synonym to CCParse.return +
+
pure [CCApp_parse]
+Synonym to CCApp_parse.return +
+
pure [CCKList]
pure [CCResult]
+Synonym of CCResult.return +
+
pure [CCRandom]
pure [CCOpt]
+Alias to CCOpt.return +
+
pure [CCList]
pure [CCError]
+Synonym of CCError.return +
+
push [CCBlockingQueue]
+push q x pushes x into q, blocking if the queue is full +
+
push [CCList.Ref]
push [CCVector]
+Add an element at the end of the vector +
+
push_back [CCRingBuffer.S]
+Push value at the back of t. +
+
push_back [CCDeque]
+Push value at the back +
+
push_front [CCDeque]
+Push value at the front +
+
push_list [CCBlockingQueue]
+Push items of the list, one by one +
+
push_list [CCList.Ref]
+Add elements of the list at the beginning of the list ref. +
+

Q
quad [CCFormat]
quad [CCPrint]
quoted [CCApp_parse]
+Quoted string, following OCaml conventions +
+

R
random [CCArray]
random [CCFloat]
random [CCInt]
random [CCOpt]
random [CCList]
random_choose [CCWBTree.S]
+Randomly choose a (key,value) pair within the tree, using weights + as probability weights +
+
random_choose [CCArray.S]
+Choose an element randomly. +
+
random_choose [CCList]
+Randomly choose an element in the list. +
+
random_len [CCArray]
random_len [CCList]
random_non_empty [CCArray]
random_non_empty [CCList]
random_range [CCFloat]
random_range [CCInt]
random_sequence [CCList]
random_small [CCFloat]
random_small [CCInt]
range [CCLinq]
+range i j goes from i up to j included +
+
range [CCRAL]
+range i j is i; i+1; ... ; j or j; j-1; ...; i +
+
range [CCKList]
range [CCList]
+range i j iterates on integers from i to j included . +
+
range' [CCList]
+Same as CCList.range but the second bound is excluded. +
+
raw [CCArray1.View]
read [CCMonadIO]
+Read a chunk into the given string +
+
read [CCApp_parse.INPUT]
read [CCIO.File]
+Read the content of the given file +
+
read_all [CCMonadIO]
+Read the whole channel into a buffer, then converted into a string +
+
read_all [CCIO]
+Read the whole channel into a buffer, then converted into a string. +
+
read_all_bytes [CCIO]
+Read the whole channel into a mutable byte array +
+
read_chunks [CCIO]
+Read the channel's content into chunks of size size +
+
read_dir [CCMonadIO.File]
+read_dir d returns a sequence of files and directory contained + in the directory d (or an empty stream if d is not a directory) +
+
read_dir [CCIO.File]
+read_dir d returns a sequence of files and directory contained + in the directory d (or an empty stream if d is not a directory) +
+
read_exn [CCIO.File]
+Read the content of the given file, or raises some exception +
+
read_line [CCMonadIO]
+Read a line from the channel. +
+
read_line [CCIO]
+Read a line from the channel. +
+
read_lines [CCMonadIO]
+Read all lines eagerly +
+
read_lines [CCIO]
+Read all lines. +
+
read_lines_l [CCIO]
+Read all lines into a list +
+
reduce [CCLinq]
+reduce start mix stop q uses start on the first element of q, + and combine the result with following elements using mix. +
+
reflect [CCLinq]
+reflect q evaluates all values in q and returns a sequence + of all those values. +
+
register_printer [CCMonadIO]
+register_printer p register p as a possible failure printer. +
+
register_printer [CCError]
release [CCSemaphore]
+release n s atomically sets s := !s + n +
+
remove [CCMonadIO.File]
remove [CCLevenshtein.S.Index]
+Remove a string (and its associated value, if any) from the index. +
+
remove [CCRAL]
+remove l i removes the i-th element of v. +
+
remove [CCWBTree.S]
remove [CCHashTrie.S]
+Remove the key, if present. +
+
remove [CCHashSet.S]
+Remove the element, if it were in there +
+
remove [CCGraph.MAP]
+Remove the vertex and all its outgoing edges. +
+
remove [CCHashconsedSet.S]
remove [CCIntMap]
remove [CCMixmap.S]
+Remove the binding for this key +
+
remove [CCMixtbl]
+Remove the binding for this key +
+
remove [CCPersistentHashtbl.S]
+Remove the key +
+
remove [CCFlatHashtbl.S]
+Remove binding +
+
remove [CCTrie.S]
+Remove the key, if present +
+
remove [CCMultiSet.S]
remove [CCMultiMap.BIDIR]
+Remove a specific binding +
+
remove [CCMultiMap.S]
+Remove the binding +
+
remove [CCIO.File]
+Like remove_exn but with an error monad. +
+
remove [CCHashtbl.DEFAULT]
+Remove the binding for this key. +
+
remove [CCList.Zipper]
+remove l removes the current element, if any. +
+
remove [CCList.Assoc]
+remove l k removes the first occurrence of k from l. +
+
remove [CCList.Set]
+remove x set removes one occurrence of x from set. +
+
remove [CCList.Idx]
+Remove element at given index. +
+
remove [CCList]
+remove ~x l removes every instance of x from l. +
+
remove [CCVector]
+Remove the n-th element of the vector. +
+
remove_all [CCMultiMap.S]
+Remove the key from the map +
+
remove_edge [CCGraph.MAP]
remove_exn [CCIO.File]
+remove_exn path tries to remove the file at path from the + file system. +
+
remove_left [CCMultiMap.BIDIR]
+Remove all bindings for the left key +
+
remove_mult [CCMultiSet.S]
+remove_mult set x n removes at most n occurrences of x from set +
+
remove_mut [CCHashTrie.S]
+Same as CCHashTrie.S.remove, but modifies in place whenever possible +
+
remove_noerr [CCIO.File]
+Like remove_exn but do not raise any exception on failure. +
+
remove_right [CCMultiMap.BIDIR]
+Remove all bindings for the right key +
+
repeat [CCMonadIO]
+Repeat an IO action as many times as required +
+
repeat [CCRAL]
+repeat n l is append l (append l ... l) n times +
+
repeat [CCKList]
+repeat ~n x repeats x n times then stops. +
+
repeat [CCString]
+The same string, repeated n times +
+
repeat [CCList]
+Concatenate the list with itself n times +
+
repeat' [CCMonadIO]
+Same as CCMonadIO.repeat, but ignores the result +
+
replace [CCPersistentHashtbl.S]
+Add the binding to the table, returning a new table. +
+
replace [CCString]
+replace ~sub ~by s replaces some occurrences of sub by by in s +
+
replacing [CCCache]
+Replacing cache of the given size. +
+
replicate [CCRandom]
+replicate n g makes a list of n elements which are all generated + randomly using g +
+
replicate [CCList]
+Replicate the given element n times +
+
reset [CCThread.Barrier]
+Reset to initial (non-triggered) state +
+
reset [CCRingBuffer.S]
+Clear the content of the buffer, and also resize it to a default size +
+
reset [CCBV]
+Set i-th bit to 0 +
+
resize [CCBV]
+Resize the BV so that it has at least the given physical length + resize bv n should make bv able to store (Sys.word_size - 2)* n bits +
+
retrieve [CCLevenshtein.S.Index]
+Lazy list of objects associated to strings close to the query string +
+
retry [CCResult]
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. +
+
retry [CCRandom]
+retry g calls g until it returns some value, or until the maximum + number of retries was reached. +
+
retry [CCError]
+retry n f calls f at most n times, returning the first result + of f () that doesn't fail. +
+
retry_m [CCResult.Traverse]
retry_m [CCError.Traverse]
return [CCSexpM.MONAD]
return [CCSexp.Traverse]
return [CCMonadIO]
+Just return a value +
+
return [CCLinq]
+Return one value +
+
return [CCCat.MONAD_BARE]
return [CCPool.Make.Fut]
+Future that is already computed +
+
return [CCParse]
+Always succeeds, without consuming its input +
+
return [CCApp_parse]
+Parser that succeeds with the given value +
+
return [CCRAL]
+Singleton +
+
return [CCGraph.Seq]
return [CCLazy_list]
+Return a computed value +
+
return [CCKList.MONAD]
return [CCKList]
return [CCResult.MONAD]
return [CCResult]
+Successfully return a value +
+
return [CCRandom]
+return x is the generator that always returns x. +
+
return [CCFun.Monad]
return [CCOpt]
+Monadic return +
+
return [CCList.MONAD]
return [CCList]
return [CCError.MONAD]
return [CCError]
+Successfully return a value +
+
return [CCVector]
+Singleton vector +
+
rev [CCRAL]
+Reverse the list +
+
rev [CCFQueue]
+Reverse the queue, O(n) complexity +
+
rev [CCString]
+rev s returns the reverse of s +
+
rev [CCVector]
+Reverse the vector +
+
rev' [CCVector]
+
+
rev_in_place [CCVector]
+Reverse the vector in place +
+
rev_iter [CCVector]
+rev_iter f a is the same as iter f (rev a), only more efficient. +
+
rev_map [CCRAL]
+rev_map f l is the same as map f (rev l) +
+
reverse [CCLinq.PMap]
+Reverse relation of the map, as a multimap +
+
reverse_in_place [CCArray.S]
+Reverse the array in place +
+
reverse_multimap [CCLinq.PMap]
+Reverse relation of the multimap +
+
rfind [CCString]
+Find sub in string from the right, returns its first index or -1. +
+
right [CCString.Split]
+Split on the first occurrence of by from the rightmost part of + the string +
+
right [CCList.Zipper]
+Go to the right, or do nothing if the zipper is already at rightmost pos +
+
right_exn [CCString.Split]
+Split on the first occurrence of by from the rightmost part of the string +
+
right_exn [CCList.Zipper]
+Go to the right, or +
+
ro [CCArray1]
+Change permission (old reference to array might still be mutable!) +
+
run [CCMonadIO]
+Run an IO action. +
+
run [CCLinq.AdaptMap]
run [CCLinq.AdaptSet]
run [CCLinq.Array]
run [CCLinq.List]
run [CCLinq]
+Execute the query, possibly returning an error if things go wrong +
+
run [CCPool.Make]
+run f schedules f for being executed in the thread pool +
+
run [CCRandom]
+Using a random state (possibly the one in argument) run a generator +
+
run1 [CCLinq]
+Run the query and return the first value +
+
run1 [CCPool.Make]
+run1 f x is similar to run (fun () -> f x) +
+
run2 [CCPool.Make]
run3 [CCPool.Make]
run_exn [CCMonadIO]
+Unsafe version of CCMonadIO.run. +
+
run_no_optim [CCLinq]
+Run without any optimization +
+

S
sample_without_replacement [CCRandom]
+sample_without_replacement n g makes a list of n elements which are all + generated randomly using g with the added constraint that none of the generated + random values are equal +
+
scalar_add [CCArray1.S]
+
+
scalar_mult [CCArray1.S]
+
+
scale [CCFloat]
scc [CCGraph]
+Strongly connected components reachable from the given vertices. +
+
search [CCKMP.S]
+search ~pattern s is a shortcut for find ~pattern s 0. +
+
search' [CCKMP.S]
select [CCArray1.View]
+select ~idx v is the view that has length length idx + and such that get (select ~idx a) i = get a (get idx i) +
+
select [CCBV]
+select arr bv selects the elements of arr whose index + corresponds to a true bit in bv. +
+
select_a [CCArray1.View] +
select_view [CCArray1.View] +
selecti [CCBV]
+Same as CCBV.select, but selected elements are paired with their index +
+
sep [CCParse]
+sep ~by p parses a list of p separated by by +
+
sep1 [CCParse]
+sep1 ~by p parses a non empty list of p, separated by by +
+
seq [CCKMP.S]
+iterate on matching positions +
+
seq [CCFormat]
seq [CCString.Split]
seq [CCHash.S]
seq [CCHash]
seq [CCPrint]
seq' [CCKMP.S]
seq_cpy [CCString.Split]
seq_left [CCMultiMap.BIDIR]
seq_right [CCMultiMap.BIDIR]
sequence [CCMonadIO]
+Runs operations one by one and gather their results +
+
sequence_a [CCPool.Make.Fut]
+Future that waits for all previous futures to terminate. +
+
sequence_l [CCPool.Make.Fut]
+Future that waits for all previous futures to terminate. +
+
sequence_l [CCOpt]
+sequence_l [x1; x2; ...; xn] returns Some [y1;y2;...;yn] if + every xi is Some yi. +
+
sequence_m [CCCat.TRAVERSE]
sequence_m [CCKList.Traverse]
sequence_m [CCResult.Traverse]
sequence_m [CCList.Traverse]
sequence_m [CCError.Traverse]
sequence_map [CCMonadIO]
+Generalization of CCMonadIO.sequence +
+
set [CCLock.LockRef]
set [CCLock]
+Atomically set the value +
+
set [CCArray1.Bool]
set [CCArray1]
+set n-th element +
+
set [CCBigstring]
set [CCImmutArray]
+Copy the array and modify its copy +
+
set [CCRAL]
+set l i v sets the i-th element of the list to v. +
+
set [CCBitField.S.FIELD]
set [CCMixset]
+set ~key v set maps key to v in set. +
+
set [CCPersistentArray]
+set a i v sets the element index i from the array a to v. +
+
set [CCRingBuffer.Array.S]
+set t i e sets the element at position i to e +
+
set [CCMixtbl]
+Bind the key to the value, using inj +
+
set [CCBV]
+Set i-th bit. +
+
set [CCHashtbl.DEFAULT]
+Replace the current binding for this key +
+
set [CCString]
+set s i c creates a new string which is a copy of s, except + for index i, which becomes c. +
+
set [CCArray.MONO_ARRAY]
set [CCArray.S]
set [CCList.Assoc]
+Add the binding into the list (erase it if already present) +
+
set [CCList.Idx]
+Set i-th element (removes the old one), or does nothing if + index is too high +
+
set [CCVector]
+Modify element at given index, or +
+
set_color_default [CCFormat]
+set_color_default b enables color handling on the standard formatters + (stdout, stderr) if b = true as well as on CCFormat.sprintf formatters; + it disables the color handling if b = false. +
+
set_color_tag_handling [CCFormat]
+adds functions to support color tags to the given formatter. +
+
set_exn_handler [CCTimer]
+set_exn_handler timer f registers f so that any exception + raised by a task scheduled in timer is given to f +
+
set_exn_handler [CCPool.Make]
set_of_cmp [CCKTree]
+Build a set structure given a total ordering +
+
show_walk_item [CCIO.File]
shrink [CCVector]
+Shrink to the given size (remove elements above this size). +
+
shuffle [CCArray.S]
+Shuffle randomly the array, in place +
+
shuffle_with [CCArray.S]
+Like shuffle but using a specialized random state +
+
sign [CCInt]
+sign i is one of -1, 0, 1 +
+
sign_exn [CCFloat]
+sign_exn x will return the sign of x as 1, 0 or -1, or raise an + exception TrapNaN if x is a NaN. +
+
silent [CCFormat]
+Prints nothing +
+
silent [CCPrint]
+prints nothing +
+
singleton [CCMonadIO.Seq]
singleton [CCImmutArray]
singleton [CCWBTree.S]
singleton [CCHashTrie.S]
singleton [CCHashSet.S]
+singleton x is the singleton {x} +
+
singleton [CCHashconsedSet.S]
singleton [CCIntMap]
singleton [CCFQueue]
singleton [CCMultiSet.S]
singleton [CCKList]
singleton [CCKTree.Dot]
singleton [CCKTree]
+Tree with only one label +
+
size [CCLinq.PMap]
size [CCLinq]
+size t returns one value, the number of items returned by t +
+
size [CCBlockingQueue]
+Number of elements currently in the queue +
+
size [CCBigstring]
+Number of bytes +
+
size [CCBloom]
+Length of the underlying array. +
+
size [CCFQueue]
+Number of elements in the queue (constant time) +
+
size [CCCache]
+Size of the cache (number of entries). +
+
size [CCFlatHashtbl.S]
+Number of bindings +
+
size [CCTrie.S]
+Number of bindings +
+
size [CCMultiMap.S]
+Number of keys +
+
size [CCKTree]
+Number of elements +
+
size [CCHeap.S]
+Number of elements (linear complexity) +
+
size [CCVector]
+Number of elements in vector +
+
skip [CCParse]
+skip p parses p and ignores its result +
+
skip [CCApp_parse]
+Skip 0 or more instances of the given parser +
+
skip [CCRingBuffer.S]
+skip b len removes len elements from the front of b. +
+
skip1 [CCApp_parse]
skip_chars [CCParse]
+Skip 0 or more chars satisfying the predicate +
+
skip_space [CCParse]
+Skip ' ' and '\t' +
+
skip_white [CCParse]
+Skip ' ' and '\t' and '\n' +
+
sleep [CCPool.Make.Fut]
+Future that returns with success in the given amount of seconds. +
+
slice [CCHash.HASH]
+slice s i len state hashes the slice i, ... i+len-1 of s + into state +
+
slice [CCVector]
+Vector as an array slice. +
+
slice_seq [CCVector]
+slice_seq v start len is the sequence of elements from v.(start) + to v.(start+len-1). +
+
slurp [CCLinq.IO]
+Slurp the whole channel in (blocking), returning the + corresponding string. +
+
slurp_file [CCLinq.IO]
+Read a whole file (given by name) and return its content as + a string +
+
small_float [CCRandom]
+A reasonably small float. +
+
small_int [CCRandom]
snd [CCLinq]
snoc [CCFQueue]
+Push element at the end of the queue +
+
sort [CCLinq]
+Sort items by the given comparison function +
+
sort [CCKList]
+Eager sort. +
+
sort [CCVector]
+Sort the vector, returning a copy of it that is sorted + w.r.t the given ordering. +
+
sort' [CCVector]
+Sort the vector in place (modifying it). +
+
sort_generic [CCArray]
+Sort the array, without allocating (eats stack space though). +
+
sort_uniq [CCKList]
+Eager sort that removes duplicate values. +
+
sort_uniq [CCList]
+Sort the list and remove duplicate elements +
+
sorted_insert [CCList]
+sorted_insert x l inserts x into l such that, if l was sorted, + then sorted_insert x l is sorted too. +
+
sorted_merge [CCList]
+Merges elements from both sorted list +
+
sorted_merge_uniq [CCList]
+sorted_merge_uniq l1 l2 merges the sorted lists l1 and l2 and + removes duplicates +
+
space [CCParse]
+Tab or space +
+
spaces [CCApp_parse]
+Parse a sequence of '\t' and ' ' +
+
spaces1 [CCApp_parse]
+Same as CCApp_parse.spaces but requires at least one space +
+
spanning_tree [CCGraph]
+spanning_tree ~graph v computes a lazy spanning tree that has v + as a root. +
+
spanning_tree_tag [CCGraph]
spawn [CCThread.Arr]
+A.spawn n f creates an array res of length n, such that + res.(i) = spawn (fun () -> f i) +
+
spawn [CCThread]
+spawn f creates a new thread that runs f () +
+
spawn1 [CCThread]
+spawn1 f x is like spawn (fun () -> f x). +
+
spawn2 [CCThread]
+spawn2 f x y is like spawn (fun () -> f x y). +
+
split [CCWBTree.S]
+split k t returns l, o, r where l is the part of the map + with keys smaller than k, r has keys bigger than k, + and o = Some v if k, v belonged to the map +
+
split [CCRandom]
+Split a positive value n into n1,n2 where n = n1 + n2. +
+
split [CCList]
+Synonym to CCList.take_drop +
+
split_list [CCRandom]
+Split a value n into a list of values whose sum is n + and whose length is length. +
+
sprintf [CCFormat]
+Print into a string any format string that would usually be compatible + with CCFormat.fprintf. +
+
sprintf [CCPrint]
+Print into a string +
+
sprintf_no_color [CCFormat]
+Similar to CCFormat.sprintf but never prints colors +
+
start [CCLinq]
+Start with a single value +
+
state [CCPool.Make.Fut]
+State of the future +
+
stats [CCPersistentHashtbl.S]
+Statistics on the internal table. +
+
status [CCUnix]
stderr [CCUnix]
stderr [CCFormat]
stdout [CCUnix]
stdout [CCFormat]
stop [CCTimer]
+Stop the given timer, cancelling pending tasks. +
+
stop [CCPool.Make]
+After calling stop (), Most functions will raise Stopped. +
+
str_of_l [CCApp_parse]
+Helper to build strings from lists of chars +
+
string [CCParse]
+string s parses exactly the string s, and nothing else +
+
string [CCFormat]
string [CCHash.S]
string [CCPrint]
string_ [CCOrd]
string_ [CCHash]
+
+
string_of_error [CCApp_parse]
string_quoted [CCFormat]
+Similar to CCString.print. +
+
sub [CCArray1]
+sub a i len takes the slice of length len starting at offset i +
+
sub [CCBigstring]
+sub s i len takes a slice of length len from the string s, starting + at offset i. +
+
sub [CCRingBuffer.Array.S]
+sub t i len gets the subarray of t from + position i to i + len +
+
sub [CCString.Sub]
+Sub-slice +
+
sub [CCArray.Sub]
+Sub-slice +
+
sub [CCFloat]
sub_bytes [CCBigstring]
sub_string [CCBigstring]
submap [CCMultiMap.S]
+submap m1 m2 is true iff all bindings of m1 are also in m2 +
+
subset [CCHashSet.S]
+subset a b returns true if all elements of a are in b +
+
subset [CCList.Set]
+Test for inclusion +
+
suffix [CCString]
+suffix ~suf s returns true iff suf is a suffix of s +
+
sum [CCLinq]
sum [CCArray1.View.S]
sum_elt [CCArray1.S]
+Efficient sum of elements +
+
swap [CCPair]
+Swap the components of the tuple +
+
switch_c [CCApp_parse]
+switch_c l matches the next char and uses the corresponding parser. +
+
switch_s [CCApp_parse]
+switch_s l attempts to match matches any of the strings in l. +
+
symbols [CCApp_parse]
+Symbols, such as "!-=_"... +
+

T
tail [CCFQueue]
+Queue deprived of its first element. +
+
tail [CCKList]
+Tail of the list +
+
tail_exn [CCKList]
+Unsafe version of CCKList.tail +
+
take [CCMonadIO.Seq]
take [CCLinq]
+Take at most n elements +
+
take [CCBlockingQueue]
+Take the first element, blocking if needed +
+
take [CCRAL]
take [CCKList]
take [CCString]
+take n s keeps only the n first chars of s +
+
take [CCList]
+Take the n first elements, drop the rest +
+
take [CCHeap.S]
+Extract and return the minimum element, and the new heap (without + this element), or None if the heap is empty +
+
take_back [CCRingBuffer.S]
+Take the last value from back of t, if any +
+
take_back [CCFQueue]
+Take last element +
+
take_back [CCDeque]
+Take last value, or +
+
take_back_exn [CCRingBuffer.S]
+Take the last value from back of t. +
+
take_back_exn [CCFQueue]
take_back_l [CCFQueue]
+take_back_l n q removes and returns the last n elements of q. +
+
take_back_while [CCFQueue]
take_drop [CCRAL]
+take_drop n l splits l into a, b such that length a = n + if length l >= n, and such that append a b = l +
+
take_drop [CCString]
+take_drop n s = take n s, drop n s +
+
take_drop [CCList]
+take_drop n l returns l1, l2 such that l1 @ l2 = l and + length l1 = min (length l) n +
+
take_exn [CCHeap.S]
+Same as CCHeap.S.take, but can fail. +
+
take_front [CCRingBuffer.S]
+Take the first value from front of t, if any +
+
take_front [CCFQueue]
+Get and remove the first element +
+
take_front [CCDeque]
+Take first value, or +
+
take_front_exn [CCRingBuffer.S]
+Take the first value from front of t. +
+
take_front_exn [CCFQueue]
+Same as CCFQueue.take_front, but fails on empty queues. +
+
take_front_l [CCFQueue]
+take_front_l n q takes at most n elements from the front + of q, and returns them wrapped in a list +
+
take_front_while [CCFQueue]
take_list [CCBlockingQueue]
+take_list n q takes n elements out of q +
+
take_while [CCMonadIO.Seq]
take_while [CCLinq]
+Take elements while they satisfy a predicate +
+
take_while [CCRAL]
take_while [CCKList]
take_while [CCList]
+
+
tap [CCFun]
+tap f x evaluates f x, discards it, then returns x. +
+
tee [CCMonadIO.Seq]
+tee funs seq behaves like seq, but each element is given to + every function f in funs. +
+
tee [CCIO]
+tee funs gen behaves like gen, but each element is given to + every function f in funs at the time the element is produced. +
+
tl [CCRAL]
+Remove the first element from the list, or +
+
to_array [CCLinq.Array]
to_array [CCArray1.View]
+to_array v returns a fresh copy of the content of v. +
+
to_array [CCArray1]
to_array [CCRAL]
+More efficient than on usual lists +
+
to_array [CCPersistentArray]
+to_array t returns a mutable copy of t. +
+
to_array [CCRingBuffer.S]
+Create an array from the elements, in order. +
+
to_array [CCKList]
+Convert into array. +
+
to_array [CCString]
to_array [CCVector]
to_bigarray [CCArray1]
+Obtain the underlying array +
+
to_bool [CCSexp.Traverse]
+Expect a boolean +
+
to_buf [CCSexpM]
to_bytes [CCBigstring]
to_chan [CCSexpM]
to_err [CCResult]
+
+
to_file [CCSexpM]
to_file [CCLinq.IO]
to_file [CCKTree.Dot]
+to_file filename trees makes a graph out of the trees, opens the + file filename and prints the graph into the file. +
+
to_file [CCFormat]
+Print to the given file +
+
to_file [CCPrint]
+Print to the given file +
+
to_file_exn [CCLinq.IO]
to_file_lines [CCLinq.IO]
to_file_lines_exn [CCLinq.IO]
to_file_seq [CCSexpM]
+Print the given sequence of expressions to a file +
+
to_float [CCSexp.Traverse]
+Expect a float +
+
to_float [CCInt64]
to_gen [CCBigstring]
to_gen [CCLevenshtein.S.Index]
+
+
to_gen [CCImmutArray]
to_gen [CCRAL]
to_gen [CCWBTree.S]
to_gen [CCHashTrie.S]
to_gen [CCPersistentArray]
+
+
to_gen [CCIntMap]
+
+
to_gen [CCDeque]
+Iterates on elements of the deque +
+
to_gen [CCLazy_list]
to_gen [CCKList]
to_gen [CCString.S]
to_gen [CCArray.S]
to_gen [CCOpt]
to_gen [CCList]
to_gen [CCHeap.S]
to_gen [CCVector]
to_gen_slice [CCBigstring]
to_hashtbl [CCLinq]
+Build a hashtable from the collection +
+
to_int [CCSexp.Traverse]
+Expect an integer +
+
to_int [CCInt64]
to_int [CCFloat]
to_int32 [CCInt64]
to_klist [CCLevenshtein.S.Index]
+Conversion to an iterator +
+
to_klist [CCIntMap]
+
+
to_klist [CCFQueue]
to_klist [CCString.S]
to_klist [CCArray.S]
to_klist [CCList]
to_klist [CCHeap.S]
to_klist [CCVector]
to_list [CCSexp.Traverse]
+Expect a list +
+
to_list [CCLinq.List]
to_list [CCLinq.PMap]
to_list [CCArray1]
to_list [CCLevenshtein.S.Index]
+Extract a list of pairs from an index +
+
to_list [CCHet.Map]
to_list [CCHet.Tbl]
to_list [CCImmutArray]
to_list [CCRAL]
to_list [CCWBTree.S]
to_list [CCHashTrie.S]
to_list [CCGraph.MAP]
to_list [CCGraph.Seq]
to_list [CCHashconsedSet.S]
to_list [CCPersistentArray]
+to_list t returns the list of elements in t. +
+
to_list [CCIntMap]
to_list [CCRingBuffer.S]
+Extract the current content into a list +
+
to_list [CCBV]
+List of indexes that are true +
+
to_list [CCFQueue]
to_list [CCDeque]
+List of elements, in order. +
+
to_list [CCPersistentHashtbl.S]
to_list [CCFlatHashtbl.S]
to_list [CCTrie.S]
to_list [CCMultiSet.S]
to_list [CCLazy_list]
to_list [CCKList]
+Gather all values into a list +
+
to_list [CCMap.S]
to_list [CCHashtbl.COUNTER]
+
+
to_list [CCHashtbl.S]
+List of bindings (order unspecified) +
+
to_list [CCHashtbl]
+List of bindings (order unspecified) +
+
to_list [CCString.S]
to_list [CCSet.S]
to_list [CCRef]
to_list [CCOpt]
to_list [CCList.Zipper]
+Convert the zipper back to a list. +
+
to_list [CCHeap.S]
to_list [CCVector]
to_list_rev [CCLazy_list]
to_list_with [CCSexp.Traverse]
+Expect a list, applies f to all the elements of the list, and succeeds + only if f succeeded on every element +
+
to_map [CCLinq.AdaptMap]
to_nativeint [CCInt64]
to_opt [CCResult]
to_opt [CCError]
to_pair [CCSexp.Traverse]
+Expect a list of two elements +
+
to_pair_with [CCSexp.Traverse]
+Same as CCSexp.Traverse.to_pair but applies conversion functions +
+
to_pmap [CCLinq.AdaptMap]
to_queue [CCLinq]
to_rev_list [CCDeque]
+Efficient conversion to list, in reverse order +
+
to_rev_list [CCKList]
+Convert to a list, in reverse order. +
+
to_rev_list [CCList.Zipper]
+Convert the zipper back to a reversed list. +
+
to_seq [CCLinq.PMap]
to_seq [CCLinq]
+Build a (re-usable) sequence of elements, which can then be + converted into other structures +
+
to_seq [CCCat.FOLDABLE]
to_seq [CCArray1]
to_seq [CCBigstring]
to_seq [CCLevenshtein.S.Index]
+
+
to_seq [CCHet.Map]
to_seq [CCHet.Tbl]
to_seq [CCImmutArray]
to_seq [CCRAL]
to_seq [CCWBTree.S]
to_seq [CCHashTrie.S]
to_seq [CCHashSet.S]
to_seq [CCGraph.MAP]
to_seq [CCHashconsedSet.S]
to_seq [CCPersistentArray]
to_seq [CCIntMap]
to_seq [CCBV]
to_seq [CCFQueue]
to_seq [CCDeque]
+iterate on the elements +
+
to_seq [CCPersistentHashtbl.S]
+Sequence of the bindings of the table +
+
to_seq [CCFlatHashtbl.S]
to_seq [CCTrie.WORD]
to_seq [CCTrie.S]
to_seq [CCMultiSet.S]
to_seq [CCMultiMap.S]
to_seq [CCKList]
to_seq [CCResult]
to_seq [CCMap.S]
to_seq [CCHashtbl.COUNTER]
+to_seq tbl returns elements of tbl along with their multiplicity +
+
to_seq [CCHashtbl.DEFAULT]
+Pairs of (elem, value) for all elements on which get was called +
+
to_seq [CCHashtbl.S]
+Iterate on values in the table +
+
to_seq [CCHashtbl]
+Iterate on bindings in the table +
+
to_seq [CCString.S]
to_seq [CCSet.S]
to_seq [CCRef]
to_seq [CCArray.S]
to_seq [CCOpt]
to_seq [CCList]
to_seq [CCHeap.S]
to_seq [CCError]
to_seq [CCVector]
to_seq_rev [CCVector]
+to_seq_rev v returns the sequence of elements of v in reverse order, + that is, the last elements of v are iterated on first. +
+
to_seq_slice [CCBigstring]
to_seq_values [CCTrie.S]
to_set [CCLinq.AdaptSet]
to_slice [CCArray.Sub]
+Convert into a triple (arr, i, len) where len is the length of + the subarray of arr starting at offset i +
+
to_sorted_list [CCBV]
+Same as CCBV.to_list, but also guarantees the list is sorted in + increasing order +
+
to_stack [CCLinq]
to_string [CCSexpM]
to_string [CCSexp.Traverse]
+Expect a string (an atom) +
+
to_string [CCMonadIO.File]
to_string [CCBigstring]
to_string [CCInt64]
to_string [CCIO.File]
to_string [CCFormat]
to_string [CCFloat]
to_string [CCInt]
+
+
to_string [CCPrint]
to_tree [CCTrie.S]
to_tree [CCHeap.S]
to_triple [CCSexp.Traverse]
to_triple_with [CCSexp.Traverse]
to_yojson [CCArray1]
top [CCVector]
+Top element, if present +
+
top_exn [CCVector]
+Top element, if present +
+
topo_sort [CCGraph]
+topo_sort ~graph seq returns a list of vertices l where each + element of l is reachable from seq. +
+
topo_sort_tag [CCGraph]
+Same as CCGraph.topo_sort but uses an explicit tag set +
+
total_width [CCBitField.S]
+Current width of the bitfield +
+
triple [CCParse.U]
+Parse a triple using OCaml whitespace conventions. +
+
triple [CCFormat]
triple [CCOrd]
triple [CCHash.S]
triple [CCHash]
triple [CCPrint]
try_push [CCBlockingQueue]
+try_push q x pushes x into q if q is not full, in which + case it returns true. +
+
try_successively [CCRandom]
+try_successively l tries each generator of l, one after the other. +
+
try_take [CCBlockingQueue]
+Take the first element if the queue is not empty, return None + otherwise +
+

U
unbounded [CCCache]
+Unbounded cache, backed by a Hash table. +
+
uncurry [CCFun]
underlying [CCString.Sub]
underlying [CCArray.Sub]
+Underlying array (shared). +
+
unfold [CCKList]
+unfold f acc calls f acc and: if f acc = Some (x, acc'), yield x, continue with unfold f acc', if f acc = None, stops +
+
union [CCLinq]
+Union of two collections. +
+
union [CCBloom]
+The sets MUST have the same set of hash functions +
+
union [CCHashSet.S]
+union a b returns a ∪ b +
+
union [CCGraph.MAP]
union [CCHashconsedSet.S]
union [CCIntMap]
union [CCBV]
+union bv1 bv2 returns the union of the two sets +
+
union [CCMultiSet.S]
+union a b contains as many occurrences of an element x + as count a x + count b x. +
+
union [CCMultiMap.S]
+Union of multimaps +
+
union [CCList.Set]
+List union. +
+
union_into [CCBV]
+union ~into bv sets into to the union of itself and bv. +
+
union_mut [CCBloom]
+union_mut ~into f changes into into the union of into and f. +
+
union_mut [CCHashSet.S]
+union_mut ~into a changes into into a ∪ into +
+
uniq [CCKList]
+uniq eq l returns l but removes consecutive duplicates. +
+
uniq [CCList.Set]
+List uniq. +
+
uniq_sort [CCVector]
+Sort the array and remove duplicates, in place (e.g. +
+
uniq_succ [CCList]
+uniq_succ l removes duplicate elements that occur one next to the other. +
+
unit [CCFormat]
unit [CCPrint]
unlines [CCLinq.IO]
+Join lines together +
+
unlines [CCString]
+unlines l concatenates all strings of l, separated with '\n' +
+
unlines_gen [CCString]
+unlines_gen g concatenates all strings of g, separated with '\n' +
+
unsafe_get_array [CCVector]
+Access the underlying shared array (do not modify!). +
+
unzip [CCKList]
+Splits each tuple in the list +
+
update [CCLock.LockRef]
update [CCLock]
+update l f replaces the content x of l with f x, atomically +
+
update [CCWBTree.S]
+update k f m calls f (Some v) if get k m = Some v, f None + otherwise. +
+
update [CCHashTrie.S]
+update k ~f m calls f (Some v) if get k m = Some v, f None + otherwise. +
+
update [CCIntMap]
update [CCPersistentHashtbl.S]
+update tbl key f calls f None if key doesn't belong in tbl, + f (Some v) if key -> v otherwise; If f returns None then + key is removed, else it returns Some v' and key -> v' is added. +
+
update [CCTrie.S]
+Update the binding for the given key. +
+
update [CCMultiSet.S]
+update set x f calls f n where n is the current multiplicity + of x in set (0 to indicate its absence); the result of f n + is the new multiplicity of x. +
+
update [CCMap.S]
+update k f m calls f (Some v) if find k m = v, + otherwise it calls f None. +
+
update [CCHashtbl.S]
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace +
+
update [CCHashtbl]
+update tbl ~f ~k updates key k by calling f k (Some v) if + k was mapped to v, or f k None otherwise; if the call + returns None then k is removed/stays removed, if the call + returns Some v' then the binding k -> v' is inserted + using Hashtbl.replace +
+
update [CCRef]
+Update the reference's content with the given function +
+
update [CCList.Assoc]
+update l k ~f updates l on the key k, by calling f (get l k) + and removing k if it returns None, mapping k to v' if it + returns Some v' +
+
update_map [CCLock]
+update_map l f computes x', y = f (get l), then puts x' in l + and returns y +
+
update_mut [CCHashTrie.S]
+Same as CCHashTrie.S.update but with mutability +
+

V
values [CCIntMap]
values [CCFlatHashtbl.S]
values [CCMultiMap.S]
+Some values may occur several times +
+
values [CCMap.S]
+Iterate on values only +
+
values [CCHashtbl.S]
+Iterate on values in the table +
+
values [CCHashtbl]
+Iterate on values in the table +
+
values_list [CCHashtbl.S]
+values t is the list of values in t. +
+
values_list [CCHashtbl]
+values_list t is the list of values in t. +
+
vbox [CCFormat]
+Wrap the printer in a vertical box +
+
vertices [CCGraph.MAP]
vertices_l [CCGraph.MAP]

W
wait [CCThread.Barrier]
+wait b waits for barrier b to be activated by activate b. +
+
wait_until_at_least [CCSemaphore]
+wait_until_at_least ~n s ~f waits until get s >= n, then calls f () + and returns its result. +
+
walk [CCMonadIO.File]
+Similar to CCMonadIO.File.read_dir (with recurse=true), this function walks + a directory recursively and yields either files or directories. +
+
walk [CCIO.File]
+Similar to CCIO.File.read_dir (with recurse=true), this function walks + a directory recursively and yields either files or directories. +
+
weight [CCWBTree.KEY]
weight [CCWBTree.S]
white [CCParse]
+Tab or space or newline +
+
white [CCApp_parse]
+Parse a sequence of '\t', '\n' and ' ' +
+
white1 [CCApp_parse]
width [CCBitField.S.FIELD]
with_ [CCAllocCache.Arr] +
with_ [CCHashTrie.Transient]
+Transient.with_ f creates a transient ID i, calls f i, + freezes the ID i and returns the result of f i. +
+
with_acquire [CCSemaphore]
+with_acquire ~n s ~f first acquires s with n units, + calls f (), and then release s with n units. +
+
with_cache [CCCache]
+with_cache c f behaves like f, but caches calls to f in the + cache c. +
+
with_cache_rec [CCCache]
+with_cache_rec c f is a function that first, applies f to + some f' = fix f, such that recursive calls to f' are cached in c. +
+
with_color [CCFormat]
+with_color "Blue" pp behaves like the printer pp, but with the given + style. +
+
with_colorf [CCFormat]
+with_colorf "Blue" out "%s %d" "yolo" 42 will behave like Format.fprintf, + but wrapping the content with the given style + status: experimental +
+
with_connection [CCUnix]
+Wrap Unix.open_connection with a handler +
+
with_in [CCUnix]
+Open an input file with the given optional flag list, calls the function + on the input channel. +
+
with_in [CCMonadIO]
+Open an input file with the given optional flag list. +
+
with_in [CCIO]
+Open an input file with the given optional flag list, calls the function + on the input channel. +
+
with_in_out [CCIO]
+Combines CCIO.with_in and CCIO.with_out. +
+
with_lock [CCLock]
+with_lock l f runs f x where x is the value protected with + the lock l, in a critical section. +
+
with_lock_as_ref [CCLock]
+with_lock_as_ref l f calls f with a reference-like object + that allows to manipulate the value of l safely. +
+
with_map_file [CCBigstring]
+with_map_file name f maps the file into memory, opening it, and + call f with a slice pos.... pos+len of the bytes of the file + where len is the length of the file if not provided. +
+
with_out [CCUnix]
+Same as CCUnix.with_in but for an output channel +
+
with_out [CCMonadIO]
+Same as CCMonadIO.with_in but for an output channel +
+
with_out [CCGraph.Dot]
+Shortcut to open a file and write to it +
+
with_out [CCIO]
+Same as CCIO.with_in but for an output channel +
+
with_out_a [CCMonadIO]
+Similar to CCMonadIO.with_out but with the Open_append and Open_creat + flags activated +
+
with_out_a [CCIO]
+Similar to CCIO.with_out but with the [Open_append; Open_creat; Open_wronly] + flags activated, to append to the file +
+
with_process_full [CCUnix]
+Open a subprocess and obtain a handle to its channels. +
+
with_process_in [CCUnix]
+Open a subprocess and obtain a handle to its stdout +
+
with_process_out [CCUnix]
+Open a subprocess and obtain a handle to its stdin +
+
with_temp [CCIO.File]
+with_temp ~prefix ~suffix f will call f with the name of a new + temporary file (located in temp_dir). +
+
within [CCFormat]
+within a b p wraps p inside the strings a and b. +
+
wo [CCArray1]
+Change permission +
+
word [CCParse.U]
+non empty string of alpha num, start with alpha +
+
word [CCApp_parse]
+word parses any identifier not starting with an integer and + not containing any whitespace nor delimiter + TODO: specify +
+
words [CCMonadIO.Seq]
+Split strings into words at " " boundaries. +
+
wrap [CCMonadIO.Raw]
+wrap f is the IO action that, when executed, returns f (). +
+
wrap [CCOpt]
+wrap f x calls f x and returns Some y if f x = y. +
+
wrap1 [CCResult]
+Same as CCResult.guard but gives the function one argument. +
+
wrap1 [CCError]
+Same as CCError.guard but gives the function one argument. +
+
wrap2 [CCResult]
+Same as CCResult.guard but gives the function two arguments. +
+
wrap2 [CCOpt]
+wrap2 f x y is similar to wrap1 but for binary functions. +
+
wrap2 [CCError]
+Same as CCError.guard but gives the function two arguments. +
+
wrap3 [CCResult]
+Same as CCResult.guard but gives the function three arguments. +
+
wrap3 [CCError]
+Same as CCError.guard but gives the function three arguments. +
+
write [CCMonadIO]
write [CCIO.File]
+Write the given string into the given file +
+
write [CCPrint.MONAD_IO]
write_buf [CCMonadIO]
write_exn [CCIO.File]
+Write the given string into the given file, possibly raising +
+
write_gen [CCIO]
+Write the given strings on the output. +
+
write_line [CCMonadIO]
write_line [CCIO]
+Write the given string on the channel, followed by "\n" +
+
write_lines [CCIO]
+Write every string on the output, followed by "\n". +
+
write_lines_l [CCIO]
write_str [CCMonadIO]

Z
zeroes [CCArray1.Bool]
zip [CCKList]
+Combine elements pairwise. +
+
+ + \ No newline at end of file diff --git a/0.17/style.css b/0.17/style.css new file mode 100644 index 00000000..993fd5c2 --- /dev/null +++ b/0.17/style.css @@ -0,0 +1,41 @@ +.keyword { font-weight : bold ; color : Red } +.keywordsign { color : #C04600 } +.superscript { font-size : 4 } +.subscript { font-size : 4 } +.comment { color : Green } +.constructor { color : Blue } +.type { color : #5C6585 } +.string { color : Maroon } +.warning { color : Red ; font-weight : bold } +.info { margin-left : 3em; margin-right: 3em } +.param_info { margin-top: 4px; margin-left : 3em; margin-right : 3em } +.code { color : #465F91 ; } +.typetable { border-style : hidden } +.paramstable { border-style : hidden ; padding: 5pt 5pt} +tr { background-color : White } +td.typefieldcomment { background-color : #FFFFFF ; font-size: smaller ;} +div.sig_block {margin-left: 2em} +*:target { background: yellow; } +body {font: 13px sans-serif; color: black; text-align: left; padding: 5px; margin: 0} +h1 { font-size : 20pt ; text-align: center; } +h2 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90BDFF ;padding: 2px; } +h3 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90DDFF ;padding: 2px; } +h4 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90EDFF ;padding: 2px; } +h5 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90FDFF ;padding: 2px; } +h6 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90BDFF ; padding: 2px; } +div.h7 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #E0FFFF ; padding: 2px; } +div.h8 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #F0FFFF ; padding: 2px; } +div.h9 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #FFFFFF ; padding: 2px; } +a {color: #416DFF; text-decoration: none} +a:hover {background-color: #ddd; text-decoration: underline} +pre { margin-bottom: 4px; font-family: monospace; } +pre.verbatim, pre.codepre { } +.indextable {border: 1px #ddd solid; border-collapse: collapse} +.indextable td, .indextable th {border: 1px #ddd solid; min-width: 80px} +.indextable td.module {background-color: #eee ; padding-left: 2px; padding-right: 2px} +.indextable td.module a {color: 4E6272; text-decoration: none; display: block; width: 100%} +.indextable td.module a:hover {text-decoration: underline; background-color: transparent} +.deprecated {color: #888; font-style: italic} +.indextable tr td div.info { margin-left: 2px; margin-right: 2px } +ul.indexlist { margin-left: 0; padding-left: 0;} +ul.indexlist li { list-style-type: none ; margin-left: 0; padding-left: 0; } \ No newline at end of file diff --git a/0.17/type_CCAllocCache.Arr.html b/0.17/type_CCAllocCache.Arr.html new file mode 100644 index 00000000..6be3f19e --- /dev/null +++ b/0.17/type_CCAllocCache.Arr.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCAllocCache.Arr + + +sig
+  type 'a t
+  val create : ?buck_size:int -> int -> 'CCAllocCache.Arr.t
+  val make : 'CCAllocCache.Arr.t -> int -> '-> 'a array
+  val free : 'CCAllocCache.Arr.t -> 'a array -> unit
+  val with_ : 'CCAllocCache.Arr.t -> int -> '-> f:('a array -> 'b) -> 'b
+end
\ No newline at end of file diff --git a/0.17/type_CCAllocCache.html b/0.17/type_CCAllocCache.html new file mode 100644 index 00000000..9e899e7a --- /dev/null +++ b/0.17/type_CCAllocCache.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCAllocCache + + +sig
+  module Arr :
+    sig
+      type 'a t
+      val create : ?buck_size:int -> int -> 'CCAllocCache.Arr.t
+      val make : 'CCAllocCache.Arr.t -> int -> '-> 'a array
+      val free : 'CCAllocCache.Arr.t -> 'a array -> unit
+      val with_ :
+        'CCAllocCache.Arr.t -> int -> '-> f:('a array -> 'b) -> 'b
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.Chan.html b/0.17/type_CCApp_parse.Chan.html new file mode 100644 index 00000000..86e70b9e --- /dev/null +++ b/0.17/type_CCApp_parse.Chan.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Chan + + +sig
+  type source = in_channel
+  val parse : source -> 'a t -> ('a, error) result
+  val parse' : source -> 'a t -> ('a, string) result
+  val parse_exn : source -> 'a t -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.INPUT.html b/0.17/type_CCApp_parse.INPUT.html new file mode 100644 index 00000000..57909454 --- /dev/null +++ b/0.17/type_CCApp_parse.INPUT.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.INPUT + + +sig type t val read : CCApp_parse.INPUT.t -> Bytes.t -> int -> int -> int end \ No newline at end of file diff --git a/0.17/type_CCApp_parse.Infix.html b/0.17/type_CCApp_parse.Infix.html new file mode 100644 index 00000000..0d40b72e --- /dev/null +++ b/0.17/type_CCApp_parse.Infix.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Infix + + +sig
+  val ( >|= ) : 'CCApp_parse.t -> ('-> 'b) -> 'CCApp_parse.t
+  val ( <*> ) :
+    ('-> 'b) CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val ( >> ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val ( << ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val ( <+> ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val ( <::> ) :
+    'CCApp_parse.t -> 'a list CCApp_parse.t -> 'a list CCApp_parse.t
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.Make.html b/0.17/type_CCApp_parse.Make.html new file mode 100644 index 00000000..ae03b217 --- /dev/null +++ b/0.17/type_CCApp_parse.Make.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Make + + +functor (I : INPUT->
+  sig
+    type source = I.t
+    val parse : source -> 'a t -> ('a, error) result
+    val parse' : source -> 'a t -> ('a, string) result
+    val parse_exn : source -> 'a t -> 'a
+  end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.MakeFromReader.html b/0.17/type_CCApp_parse.MakeFromReader.html new file mode 100644 index 00000000..0d1fbde2 --- /dev/null +++ b/0.17/type_CCApp_parse.MakeFromReader.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.MakeFromReader + + +functor (R : READER->
+  sig
+    type source = R.source
+    val parse : source -> 'a t -> ('a, error) result
+    val parse' : source -> 'a t -> ('a, string) result
+    val parse_exn : source -> 'a t -> 'a
+  end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.READER.html b/0.17/type_CCApp_parse.READER.html new file mode 100644 index 00000000..329c2ab5 --- /dev/null +++ b/0.17/type_CCApp_parse.READER.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.READER + + +sig
+  type t
+  type source
+  val create : CCApp_parse.READER.source -> CCApp_parse.READER.t
+  val peek : CCApp_parse.READER.t -> CCApp_parse.token
+  val next : CCApp_parse.READER.t -> CCApp_parse.token
+  val junk : CCApp_parse.READER.t -> unit
+  val line : CCApp_parse.READER.t -> int
+  val col : CCApp_parse.READER.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.S.html b/0.17/type_CCApp_parse.S.html new file mode 100644 index 00000000..152c608a --- /dev/null +++ b/0.17/type_CCApp_parse.S.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.S + + +sig
+  type source
+  val parse :
+    CCApp_parse.S.source ->
+    'CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+  val parse' :
+    CCApp_parse.S.source ->
+    'CCApp_parse.t -> ('a, string) CCApp_parse.result
+  val parse_exn : CCApp_parse.S.source -> 'CCApp_parse.t -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.Str.html b/0.17/type_CCApp_parse.Str.html new file mode 100644 index 00000000..60cf8a2a --- /dev/null +++ b/0.17/type_CCApp_parse.Str.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse.Str + + +sig
+  type source = string
+  val parse : source -> 'a t -> ('a, error) result
+  val parse' : source -> 'a t -> ('a, string) result
+  val parse_exn : source -> 'a t -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCApp_parse.html b/0.17/type_CCApp_parse.html new file mode 100644 index 00000000..33bc29e3 --- /dev/null +++ b/0.17/type_CCApp_parse.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCApp_parse + + +sig
+  type ('a, 'b) result = [ `Error of '| `Ok of 'a ]
+  type 'a t
+  val return : '-> 'CCApp_parse.t
+  val pure : '-> 'CCApp_parse.t
+  val junk : unit CCApp_parse.t
+  val fail : string -> 'CCApp_parse.t
+  val failf : ('a, unit, string, 'CCApp_parse.t) Pervasives.format4 -> 'a
+  val app : ('-> 'b) CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val map : ('-> 'b) -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val int : int CCApp_parse.t
+  val float : float CCApp_parse.t
+  val bool : bool CCApp_parse.t
+  val char : char -> char CCApp_parse.t
+  val any_of : string -> char CCApp_parse.t
+  val alpha_lower : char CCApp_parse.t
+  val alpha_upper : char CCApp_parse.t
+  val alpha : char CCApp_parse.t
+  val symbols : char CCApp_parse.t
+  val num : char CCApp_parse.t
+  val alpha_num : char CCApp_parse.t
+  val word : string CCApp_parse.t
+  val quoted : string CCApp_parse.t
+  val str_of_l : char list -> string
+  val spaces : unit CCApp_parse.t
+  val spaces1 : unit CCApp_parse.t
+  val white : unit CCApp_parse.t
+  val white1 : unit CCApp_parse.t
+  val eof : unit CCApp_parse.t
+  val many :
+    ?sep:unit CCApp_parse.t -> 'CCApp_parse.t -> 'a list CCApp_parse.t
+  val many1 :
+    ?sep:unit CCApp_parse.t -> 'CCApp_parse.t -> 'a list CCApp_parse.t
+  val skip : 'CCApp_parse.t -> unit CCApp_parse.t
+  val skip1 : 'CCApp_parse.t -> unit CCApp_parse.t
+  val opt : 'CCApp_parse.t -> 'a option CCApp_parse.t
+  val filter : ('-> bool) -> 'CCApp_parse.t -> 'CCApp_parse.t
+  val switch_c :
+    ?default:'CCApp_parse.t ->
+    (char * 'CCApp_parse.t) list -> 'CCApp_parse.t
+  val switch_s : (string * 'CCApp_parse.t) list -> 'CCApp_parse.t
+  val choice : 'CCApp_parse.t list -> 'CCApp_parse.t
+  val fix : ('CCApp_parse.t -> 'CCApp_parse.t) -> 'CCApp_parse.t
+  module Infix :
+    sig
+      val ( >|= ) : 'CCApp_parse.t -> ('-> 'b) -> 'CCApp_parse.t
+      val ( <*> ) :
+        ('-> 'b) CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+      val ( >> ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+      val ( << ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+      val ( <+> ) : 'CCApp_parse.t -> 'CCApp_parse.t -> 'CCApp_parse.t
+      val ( <::> ) :
+        'CCApp_parse.t -> 'a list CCApp_parse.t -> 'a list CCApp_parse.t
+    end
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  val ( >> ) : 'b t -> 'a t -> 'a t
+  val ( << ) : 'a t -> 'b t -> 'a t
+  val ( <+> ) : 'a t -> 'a t -> 'a t
+  val ( <::> ) : 'a t -> 'a list t -> 'a list t
+  type error = { line : int; col : int; msg : string; }
+  val string_of_error : CCApp_parse.error -> string
+  exception Error of CCApp_parse.error
+  module type S =
+    sig
+      type source
+      val parse :
+        CCApp_parse.S.source ->
+        'CCApp_parse.t -> ('a, CCApp_parse.error) CCApp_parse.result
+      val parse' :
+        CCApp_parse.S.source ->
+        'CCApp_parse.t -> ('a, string) CCApp_parse.result
+      val parse_exn : CCApp_parse.S.source -> 'CCApp_parse.t -> 'a
+    end
+  module type INPUT =
+    sig
+      type t
+      val read : CCApp_parse.INPUT.t -> Bytes.t -> int -> int -> int
+    end
+  module Make :
+    functor (I : INPUT->
+      sig
+        type source = I.t
+        val parse : source -> 'a t -> ('a, error) result
+        val parse' : source -> 'a t -> ('a, string) result
+        val parse_exn : source -> 'a t -> 'a
+      end
+  val print : Format.formatter -> 'CCApp_parse.t -> unit
+  type token = Yield of char | EOF
+  module type READER =
+    sig
+      type t
+      type source
+      val create : CCApp_parse.READER.source -> CCApp_parse.READER.t
+      val peek : CCApp_parse.READER.t -> CCApp_parse.token
+      val next : CCApp_parse.READER.t -> CCApp_parse.token
+      val junk : CCApp_parse.READER.t -> unit
+      val line : CCApp_parse.READER.t -> int
+      val col : CCApp_parse.READER.t -> int
+    end
+  module MakeFromReader :
+    functor (R : READER->
+      sig
+        type source = R.source
+        val parse : source -> 'a t -> ('a, error) result
+        val parse' : source -> 'a t -> ('a, string) result
+        val parse_exn : source -> 'a t -> 'a
+      end
+  module Str :
+    sig
+      type source = string
+      val parse : source -> 'a t -> ('a, error) result
+      val parse' : source -> 'a t -> ('a, string) result
+      val parse_exn : source -> 'a t -> 'a
+    end
+  module Chan :
+    sig
+      type source = in_channel
+      val parse : source -> 'a t -> ('a, error) result
+      val parse' : source -> 'a t -> ('a, string) result
+      val parse_exn : source -> 'a t -> 'a
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCArray.MONO_ARRAY.html b/0.17/type_CCArray.MONO_ARRAY.html new file mode 100644 index 00000000..a6321667 --- /dev/null +++ b/0.17/type_CCArray.MONO_ARRAY.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.MONO_ARRAY + + +sig
+  type elt
+  type t
+  val length : CCArray.MONO_ARRAY.t -> int
+  val get : CCArray.MONO_ARRAY.t -> int -> CCArray.MONO_ARRAY.elt
+  val set : CCArray.MONO_ARRAY.t -> int -> CCArray.MONO_ARRAY.elt -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCArray.S.html b/0.17/type_CCArray.S.html new file mode 100644 index 00000000..71043962 --- /dev/null +++ b/0.17/type_CCArray.S.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.S + + +sig
+  type 'a t
+  val empty : 'CCArray.S.t
+  val equal : 'CCArray.equal -> 'CCArray.S.t CCArray.equal
+  val compare : 'CCArray.ord -> 'CCArray.S.t CCArray.ord
+  val get : 'CCArray.S.t -> int -> 'a
+  val set : 'CCArray.S.t -> int -> '-> unit
+  val length : 'CCArray.S.t -> int
+  val fold : ('-> '-> 'a) -> '-> 'CCArray.S.t -> 'a
+  val foldi : ('-> int -> '-> 'a) -> '-> 'CCArray.S.t -> 'a
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'CCArray.S.t -> 'a
+  val iter : ('-> unit) -> 'CCArray.S.t -> unit
+  val iteri : (int -> '-> unit) -> 'CCArray.S.t -> unit
+  val blit : 'CCArray.S.t -> int -> 'CCArray.S.t -> int -> int -> unit
+  val reverse_in_place : 'CCArray.S.t -> unit
+  val find : ('-> 'b option) -> 'CCArray.S.t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'CCArray.S.t -> 'b option
+  val find_idx : ('-> bool) -> 'CCArray.S.t -> (int * 'a) option
+  val lookup : ?cmp:'CCArray.ord -> '-> 'CCArray.S.t -> int option
+  val lookup_exn : ?cmp:'CCArray.ord -> '-> 'CCArray.S.t -> int
+  val bsearch :
+    ?cmp:('-> '-> int) ->
+    '->
+    'CCArray.S.t ->
+    [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+  val for_all : ('-> bool) -> 'CCArray.S.t -> bool
+  val for_all2 :
+    ('-> '-> bool) -> 'CCArray.S.t -> 'CCArray.S.t -> bool
+  val exists : ('-> bool) -> 'CCArray.S.t -> bool
+  val exists2 :
+    ('-> '-> bool) -> 'CCArray.S.t -> 'CCArray.S.t -> bool
+  val shuffle : 'CCArray.S.t -> unit
+  val shuffle_with : Random.State.t -> 'CCArray.S.t -> unit
+  val random_choose : 'CCArray.S.t -> 'CCArray.random_gen
+  val to_seq : 'CCArray.S.t -> 'CCArray.sequence
+  val to_gen : 'CCArray.S.t -> 'CCArray.gen
+  val to_klist : 'CCArray.S.t -> 'CCArray.klist
+  val pp :
+    ?sep:string ->
+    (Buffer.t -> '-> unit) -> Buffer.t -> 'CCArray.S.t -> unit
+  val pp_i :
+    ?sep:string ->
+    (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'CCArray.S.t -> unit
+  val print :
+    ?sep:string ->
+    (Format.formatter -> '-> unit) ->
+    Format.formatter -> 'CCArray.S.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCArray.Sub.html b/0.17/type_CCArray.Sub.html new file mode 100644 index 00000000..939d52c5 --- /dev/null +++ b/0.17/type_CCArray.Sub.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray.Sub + + +sig
+  type 'a t
+  val make : 'a array -> int -> len:int -> 'CCArray.Sub.t
+  val of_slice : 'a array * int * int -> 'CCArray.Sub.t
+  val to_slice : 'CCArray.Sub.t -> 'a array * int * int
+  val full : 'a array -> 'CCArray.Sub.t
+  val underlying : 'CCArray.Sub.t -> 'a array
+  val copy : 'CCArray.Sub.t -> 'a array
+  val sub : 'CCArray.Sub.t -> int -> int -> 'CCArray.Sub.t
+  val empty : 'a t
+  val equal : 'a equal -> 'a t equal
+  val compare : 'a ord -> 'a t ord
+  val get : 'a t -> int -> 'a
+  val set : 'a t -> int -> '-> unit
+  val length : 'a t -> int
+  val fold : ('-> '-> 'a) -> '-> 'b t -> 'a
+  val foldi : ('-> int -> '-> 'a) -> '-> 'b t -> 'a
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+  val iter : ('-> unit) -> 'a t -> unit
+  val iteri : (int -> '-> unit) -> 'a t -> unit
+  val blit : 'a t -> int -> 'a t -> int -> int -> unit
+  val reverse_in_place : 'a t -> unit
+  val find : ('-> 'b option) -> 'a t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+  val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+  val lookup : ?cmp:'a ord -> '-> 'a t -> int option
+  val lookup_exn : ?cmp:'a ord -> '-> 'a t -> int
+  val bsearch :
+    ?cmp:('-> '-> int) ->
+    '->
+    'a t ->
+    [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+  val for_all : ('-> bool) -> 'a t -> bool
+  val for_all2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val exists : ('-> bool) -> 'a t -> bool
+  val exists2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val shuffle : 'a t -> unit
+  val shuffle_with : Random.State.t -> 'a t -> unit
+  val random_choose : 'a t -> 'a random_gen
+  val to_seq : 'a t -> 'a sequence
+  val to_gen : 'a t -> 'a gen
+  val to_klist : 'a t -> 'a klist
+  val pp :
+    ?sep:string -> (Buffer.t -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val pp_i :
+    ?sep:string ->
+    (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val print :
+    ?sep:string ->
+    (Format.formatter -> '-> unit) -> Format.formatter -> 'a t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCArray.html b/0.17/type_CCArray.html new file mode 100644 index 00000000..70d62ecc --- /dev/null +++ b/0.17/type_CCArray.html @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'CCArray.klist | `Nil ]
+  type 'a gen = unit -> 'a option
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a random_gen = Random.State.t -> 'a
+  module type S =
+    sig
+      type 'a t
+      val empty : 'CCArray.S.t
+      val equal : 'CCArray.equal -> 'CCArray.S.t CCArray.equal
+      val compare : 'CCArray.ord -> 'CCArray.S.t CCArray.ord
+      val get : 'CCArray.S.t -> int -> 'a
+      val set : 'CCArray.S.t -> int -> '-> unit
+      val length : 'CCArray.S.t -> int
+      val fold : ('-> '-> 'a) -> '-> 'CCArray.S.t -> 'a
+      val foldi : ('-> int -> '-> 'a) -> '-> 'CCArray.S.t -> 'a
+      val fold_while :
+        ('-> '-> 'a * [ `Continue | `Stop ]) ->
+        '-> 'CCArray.S.t -> 'a
+      val iter : ('-> unit) -> 'CCArray.S.t -> unit
+      val iteri : (int -> '-> unit) -> 'CCArray.S.t -> unit
+      val blit :
+        'CCArray.S.t -> int -> 'CCArray.S.t -> int -> int -> unit
+      val reverse_in_place : 'CCArray.S.t -> unit
+      val find : ('-> 'b option) -> 'CCArray.S.t -> 'b option
+      val findi : (int -> '-> 'b option) -> 'CCArray.S.t -> 'b option
+      val find_idx : ('-> bool) -> 'CCArray.S.t -> (int * 'a) option
+      val lookup : ?cmp:'CCArray.ord -> '-> 'CCArray.S.t -> int option
+      val lookup_exn : ?cmp:'CCArray.ord -> '-> 'CCArray.S.t -> int
+      val bsearch :
+        ?cmp:('-> '-> int) ->
+        '->
+        'CCArray.S.t ->
+        [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+      val for_all : ('-> bool) -> 'CCArray.S.t -> bool
+      val for_all2 :
+        ('-> '-> bool) -> 'CCArray.S.t -> 'CCArray.S.t -> bool
+      val exists : ('-> bool) -> 'CCArray.S.t -> bool
+      val exists2 :
+        ('-> '-> bool) -> 'CCArray.S.t -> 'CCArray.S.t -> bool
+      val shuffle : 'CCArray.S.t -> unit
+      val shuffle_with : Random.State.t -> 'CCArray.S.t -> unit
+      val random_choose : 'CCArray.S.t -> 'CCArray.random_gen
+      val to_seq : 'CCArray.S.t -> 'CCArray.sequence
+      val to_gen : 'CCArray.S.t -> 'CCArray.gen
+      val to_klist : 'CCArray.S.t -> 'CCArray.klist
+      val pp :
+        ?sep:string ->
+        (Buffer.t -> '-> unit) -> Buffer.t -> 'CCArray.S.t -> unit
+      val pp_i :
+        ?sep:string ->
+        (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'CCArray.S.t -> unit
+      val print :
+        ?sep:string ->
+        (Format.formatter -> '-> unit) ->
+        Format.formatter -> 'CCArray.S.t -> unit
+    end
+  type 'a t = 'a array
+  val empty : 'a t
+  val equal : 'a equal -> 'a t equal
+  val compare : 'a ord -> 'a t ord
+  val get : 'a t -> int -> 'a
+  val set : 'a t -> int -> '-> unit
+  val length : 'a t -> int
+  val fold : ('-> '-> 'a) -> '-> 'b t -> 'a
+  val foldi : ('-> int -> '-> 'a) -> '-> 'b t -> 'a
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+  val iter : ('-> unit) -> 'a t -> unit
+  val iteri : (int -> '-> unit) -> 'a t -> unit
+  val blit : 'a t -> int -> 'a t -> int -> int -> unit
+  val reverse_in_place : 'a t -> unit
+  val find : ('-> 'b option) -> 'a t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+  val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+  val lookup : ?cmp:'a ord -> '-> 'a t -> int option
+  val lookup_exn : ?cmp:'a ord -> '-> 'a t -> int
+  val bsearch :
+    ?cmp:('-> '-> int) ->
+    '->
+    'a t ->
+    [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+  val for_all : ('-> bool) -> 'a t -> bool
+  val for_all2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val exists : ('-> bool) -> 'a t -> bool
+  val exists2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val shuffle : 'a t -> unit
+  val shuffle_with : Random.State.t -> 'a t -> unit
+  val random_choose : 'a t -> 'a random_gen
+  val to_seq : 'a t -> 'a sequence
+  val to_gen : 'a t -> 'a gen
+  val to_klist : 'a t -> 'a klist
+  val pp :
+    ?sep:string -> (Buffer.t -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val pp_i :
+    ?sep:string ->
+    (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val print :
+    ?sep:string ->
+    (Format.formatter -> '-> unit) -> Format.formatter -> 'a t -> unit
+  val map : ('-> 'b) -> 'CCArray.t -> 'CCArray.t
+  val filter : ('-> bool) -> 'CCArray.t -> 'CCArray.t
+  val filter_map : ('-> 'b option) -> 'CCArray.t -> 'CCArray.t
+  val flat_map : ('-> 'CCArray.t) -> 'CCArray.t -> 'b array
+  val ( >>= ) : 'CCArray.t -> ('-> 'CCArray.t) -> 'CCArray.t
+  val ( >>| ) : 'CCArray.t -> ('-> 'b) -> 'CCArray.t
+  val ( >|= ) : 'CCArray.t -> ('-> 'b) -> 'CCArray.t
+  val except_idx : 'CCArray.t -> int -> 'a list
+  val ( -- ) : int -> int -> int CCArray.t
+  val ( --^ ) : int -> int -> int CCArray.t
+  val random : 'CCArray.random_gen -> 'CCArray.t CCArray.random_gen
+  val random_non_empty :
+    'CCArray.random_gen -> 'CCArray.t CCArray.random_gen
+  val random_len :
+    int -> 'CCArray.random_gen -> 'CCArray.t CCArray.random_gen
+  module Sub :
+    sig
+      type 'a t
+      val make : 'a array -> int -> len:int -> 'CCArray.Sub.t
+      val of_slice : 'a array * int * int -> 'CCArray.Sub.t
+      val to_slice : 'CCArray.Sub.t -> 'a array * int * int
+      val full : 'a array -> 'CCArray.Sub.t
+      val underlying : 'CCArray.Sub.t -> 'a array
+      val copy : 'CCArray.Sub.t -> 'a array
+      val sub : 'CCArray.Sub.t -> int -> int -> 'CCArray.Sub.t
+      val empty : 'a t
+      val equal : 'a equal -> 'a t equal
+      val compare : 'a ord -> 'a t ord
+      val get : 'a t -> int -> 'a
+      val set : 'a t -> int -> '-> unit
+      val length : 'a t -> int
+      val fold : ('-> '-> 'a) -> '-> 'b t -> 'a
+      val foldi : ('-> int -> '-> 'a) -> '-> 'b t -> 'a
+      val fold_while :
+        ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+      val iter : ('-> unit) -> 'a t -> unit
+      val iteri : (int -> '-> unit) -> 'a t -> unit
+      val blit : 'a t -> int -> 'a t -> int -> int -> unit
+      val reverse_in_place : 'a t -> unit
+      val find : ('-> 'b option) -> 'a t -> 'b option
+      val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+      val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+      val lookup : ?cmp:'a ord -> '-> 'a t -> int option
+      val lookup_exn : ?cmp:'a ord -> '-> 'a t -> int
+      val bsearch :
+        ?cmp:('-> '-> int) ->
+        '->
+        'a t ->
+        [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+      val for_all : ('-> bool) -> 'a t -> bool
+      val for_all2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val exists : ('-> bool) -> 'a t -> bool
+      val exists2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val shuffle : 'a t -> unit
+      val shuffle_with : Random.State.t -> 'a t -> unit
+      val random_choose : 'a t -> 'a random_gen
+      val to_seq : 'a t -> 'a sequence
+      val to_gen : 'a t -> 'a gen
+      val to_klist : 'a t -> 'a klist
+      val pp :
+        ?sep:string -> (Buffer.t -> '-> unit) -> Buffer.t -> 'a t -> unit
+      val pp_i :
+        ?sep:string ->
+        (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'a t -> unit
+      val print :
+        ?sep:string ->
+        (Format.formatter -> '-> unit) -> Format.formatter -> 'a t -> unit
+    end
+  module type MONO_ARRAY =
+    sig
+      type elt
+      type t
+      val length : CCArray.MONO_ARRAY.t -> int
+      val get : CCArray.MONO_ARRAY.t -> int -> CCArray.MONO_ARRAY.elt
+      val set : CCArray.MONO_ARRAY.t -> int -> CCArray.MONO_ARRAY.elt -> unit
+    end
+  val sort_generic :
+    (module CCArray.MONO_ARRAY with type elt = 'elt and type t = 'arr) ->
+    ?cmp:('elt -> 'elt -> int) -> 'arr -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.Bool.html b/0.17/type_CCArray1.Bool.html new file mode 100644 index 00000000..9d085357 --- /dev/null +++ b/0.17/type_CCArray1.Bool.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Bool + + +sig
+  type ('b, 'a) t = (int, 'b, 'a) CCArray1.array_
+    constraint 'a = [< `R | `W ]
+  val get : ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> int -> bool
+  val set : ('a, [< `R | `W > `W ]) CCArray1.Bool.t -> int -> bool -> unit
+  val zeroes :
+    int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.Bool.t
+  val ones :
+    int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.Bool.t
+  val iter_zeroes :
+    f:(int -> unit) -> ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> unit
+  val iter_ones :
+    f:(int -> unit) -> ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> unit
+  val cardinal : ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> int
+  val pp : ('a, [< `R | `W > `R ]) CCArray1.Bool.t CCArray1.printer
+  val or_ :
+    ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+  val and_ :
+    ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+  val not_ :
+    ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+  val mix :
+    ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+  val convolution :
+    ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+    by:('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.Float.html b/0.17/type_CCArray1.Float.html new file mode 100644 index 00000000..90400ad0 --- /dev/null +++ b/0.17/type_CCArray1.Float.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Float + + +sig
+  type elt = float
+  type ('a, 'b) t = (elt, 'a, 'b) array_ constraint 'b = [< `R | `W ]
+  val add :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+  val mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+  val scalar_add :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+  val scalar_mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+  val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+  val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+  val dot_product :
+    ('a, [< `R | `W > `R ]) t -> ('b, [< `R | `W > `R ]) t -> elt
+  module Infix :
+    sig
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+      val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+    end
+  val ( * ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( + ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+  val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.Int.html b/0.17/type_CCArray1.Int.html new file mode 100644 index 00000000..3a1b444a --- /dev/null +++ b/0.17/type_CCArray1.Int.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.Int + + +sig
+  type elt = int
+  type ('a, 'b) t = (elt, 'a, 'b) array_ constraint 'b = [< `R | `W ]
+  val add :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+  val mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+  val scalar_add :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+  val scalar_mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) t ->
+    ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+  val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+  val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+  val dot_product :
+    ('a, [< `R | `W > `R ]) t -> ('b, [< `R | `W > `R ]) t -> elt
+  module Infix :
+    sig
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+      val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+    end
+  val ( * ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( + ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+  val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.S.Infix.html b/0.17/type_CCArray1.S.Infix.html new file mode 100644 index 00000000..a5c7ec47 --- /dev/null +++ b/0.17/type_CCArray1.S.Infix.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.S.Infix + + +sig
+  val ( * ) :
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, [< `R | `W ]) CCArray1.S.t
+  val ( + ) :
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.S.t -> ('a, [< `R | `W ]) CCArray1.S.t
+  val ( *! ) :
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+  val ( +! ) :
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.S.html b/0.17/type_CCArray1.S.html new file mode 100644 index 00000000..d563ec19 --- /dev/null +++ b/0.17/type_CCArray1.S.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.S + + +sig
+  type elt
+  type ('a, 'b) t = (CCArray1.S.elt, 'a, 'b) CCArray1.array_
+    constraint 'b = [< `R | `W ]
+  val add :
+    ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, 'b) CCArray1.S.t
+  val mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, 'b) CCArray1.S.t
+  val scalar_add :
+    ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    x:CCArray1.S.elt -> ('a, 'b) CCArray1.S.t
+  val scalar_mult :
+    ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    x:CCArray1.S.elt -> ('a, 'b) CCArray1.S.t
+  val sum_elt : ('a, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+  val product_elt : ('a, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+  val dot_product :
+    ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+    ('b, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+  module Infix :
+    sig
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('a, [< `R | `W ]) CCArray1.S.t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('a, [< `R | `W ]) CCArray1.S.t
+      val ( *! ) :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+      val ( +! ) :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+    end
+  val ( * ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( + ) :
+    ('a, [< `R | `W > `R ]) t ->
+    ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+  val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+  val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.View.Float.html b/0.17/type_CCArray1.View.Float.html new file mode 100644 index 00000000..7cdcad59 --- /dev/null +++ b/0.17/type_CCArray1.View.Float.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.Float + + +sig
+  type elt = float
+  val mult : elt t -> elt t -> elt t
+  val add : elt t -> elt t -> elt t
+  val sum : elt t -> elt
+  val prod : elt t -> elt
+  val add_scalar : elt t -> x:elt -> elt t
+  val mult_scalar : elt t -> x:elt -> elt t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.View.Int.html b/0.17/type_CCArray1.View.Int.html new file mode 100644 index 00000000..abdcedfc --- /dev/null +++ b/0.17/type_CCArray1.View.Int.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.Int + + +sig
+  type elt = int
+  val mult : elt t -> elt t -> elt t
+  val add : elt t -> elt t -> elt t
+  val sum : elt t -> elt
+  val prod : elt t -> elt
+  val add_scalar : elt t -> x:elt -> elt t
+  val mult_scalar : elt t -> x:elt -> elt t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.View.S.html b/0.17/type_CCArray1.View.S.html new file mode 100644 index 00000000..9b3eb23e --- /dev/null +++ b/0.17/type_CCArray1.View.S.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View.S + + +sig
+  type elt
+  val mult :
+    CCArray1.View.S.elt CCArray1.View.t ->
+    CCArray1.View.S.elt CCArray1.View.t ->
+    CCArray1.View.S.elt CCArray1.View.t
+  val add :
+    CCArray1.View.S.elt CCArray1.View.t ->
+    CCArray1.View.S.elt CCArray1.View.t ->
+    CCArray1.View.S.elt CCArray1.View.t
+  val sum : CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+  val prod : CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+  val add_scalar :
+    CCArray1.View.S.elt CCArray1.View.t ->
+    x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+  val mult_scalar :
+    CCArray1.View.S.elt CCArray1.View.t ->
+    x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.View.html b/0.17/type_CCArray1.View.html new file mode 100644 index 00000000..40e96f31 --- /dev/null +++ b/0.17/type_CCArray1.View.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1.View + + +sig
+  type 'a t
+  val of_array :
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'CCArray1.View.t
+  val get : 'CCArray1.View.t -> int -> 'a
+  val length : 'CCArray1.View.t -> int
+  val map : f:('-> 'b) -> 'CCArray1.View.t -> 'CCArray1.View.t
+  val map2 :
+    f:('-> '-> 'c) ->
+    'CCArray1.View.t -> 'CCArray1.View.t -> 'CCArray1.View.t
+  val select :
+    idx:(int, 'b, [< `R | `W > `R ]) CCArray1.array_ ->
+    'CCArray1.View.t -> 'CCArray1.View.t
+  val select_a : idx:int array -> 'CCArray1.View.t -> 'CCArray1.View.t
+  val select_view :
+    idx:int CCArray1.View.t -> 'CCArray1.View.t -> 'CCArray1.View.t
+  val foldi : ('-> int -> '-> 'b) -> '-> 'CCArray1.View.t -> 'b
+  val iteri : f:(int -> '-> unit) -> 'CCArray1.View.t -> unit
+  module type S =
+    sig
+      type elt
+      val mult :
+        CCArray1.View.S.elt CCArray1.View.t ->
+        CCArray1.View.S.elt CCArray1.View.t ->
+        CCArray1.View.S.elt CCArray1.View.t
+      val add :
+        CCArray1.View.S.elt CCArray1.View.t ->
+        CCArray1.View.S.elt CCArray1.View.t ->
+        CCArray1.View.S.elt CCArray1.View.t
+      val sum : CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+      val prod : CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+      val add_scalar :
+        CCArray1.View.S.elt CCArray1.View.t ->
+        x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+      val mult_scalar :
+        CCArray1.View.S.elt CCArray1.View.t ->
+        x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+    end
+  module Int :
+    sig
+      type elt = int
+      val mult : elt t -> elt t -> elt t
+      val add : elt t -> elt t -> elt t
+      val sum : elt t -> elt
+      val prod : elt t -> elt
+      val add_scalar : elt t -> x:elt -> elt t
+      val mult_scalar : elt t -> x:elt -> elt t
+    end
+  module Float :
+    sig
+      type elt = float
+      val mult : elt t -> elt t -> elt t
+      val add : elt t -> elt t -> elt t
+      val sum : elt t -> elt
+      val prod : elt t -> elt
+      val add_scalar : elt t -> x:elt -> elt t
+      val mult_scalar : elt t -> x:elt -> elt t
+    end
+  val raw :
+    length:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int) ->
+    get:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int -> 'a) ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'CCArray1.View.t
+  val to_array :
+    ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.array_ ->
+    ?kind:('a, 'b) Bigarray.kind ->
+    'CCArray1.View.t -> ('a, 'b, 'c) CCArray1.array_
+end
\ No newline at end of file diff --git a/0.17/type_CCArray1.html b/0.17/type_CCArray1.html new file mode 100644 index 00000000..87bd540d --- /dev/null +++ b/0.17/type_CCArray1.html @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCArray1 + + +sig
+  type 'a printer = Format.formatter -> '-> unit
+  type 'a sequence = ('-> unit) -> unit
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  type random = Random.State.t
+  type json =
+      [ `Assoc of (string * CCArray1.json) list
+      | `Bool of bool
+      | `Float of float
+      | `Int of int
+      | `List of CCArray1.json list
+      | `Null
+      | `String of string ]
+  type 'a to_json = '-> CCArray1.json
+  type 'a of_json = CCArray1.json -> 'CCArray1.or_error
+  type ('a, 'b, 'c) t constraint 'c = [< `R | `W ]
+  type ('a, 'b, 'c) array_ = ('a, 'b, 'c) CCArray1.t
+    constraint 'c = [< `R | `W ]
+  exception WrongDimension
+  val make :
+    ?x:'->
+    kind:('a, 'b) Bigarray.kind -> int -> ('a, 'b, [< `R | `W ]) CCArray1.t
+  val make_int : int -> (int, Bigarray.int_elt, [< `R | `W ]) CCArray1.t
+  val make_char :
+    int -> (char, Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.t
+  val make_int8s :
+    int -> (int, Bigarray.int8_signed_elt, [< `R | `W ]) CCArray1.t
+  val make_int8u :
+    int -> (int, Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.t
+  val make_int16s :
+    int -> (int, Bigarray.int16_signed_elt, [< `R | `W ]) CCArray1.t
+  val make_int16u :
+    int -> (int, Bigarray.int16_unsigned_elt, [< `R | `W ]) CCArray1.t
+  val make_int32 :
+    int -> (int32, Bigarray.int32_elt, [< `R | `W ]) CCArray1.t
+  val make_int64 :
+    int -> (int64, Bigarray.int64_elt, [< `R | `W ]) CCArray1.t
+  val make_native :
+    int -> (nativeint, Bigarray.nativeint_elt, [< `R | `W ]) CCArray1.t
+  val make_float32 :
+    int -> (float, Bigarray.float32_elt, [< `R | `W ]) CCArray1.t
+  val make_float64 :
+    int -> (float, Bigarray.float64_elt, [< `R | `W ]) CCArray1.t
+  val make_complex32 :
+    int -> (Complex.t, Bigarray.complex32_elt, [< `R | `W ]) CCArray1.t
+  val make_complex64 :
+    int -> (Complex.t, Bigarray.complex64_elt, [< `R | `W ]) CCArray1.t
+  val init :
+    kind:('a, 'b) Bigarray.kind ->
+    f:(int -> 'a) -> int -> ('a, 'b, [< `R | `W ]) CCArray1.t
+  val of_bigarray :
+    ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t ->
+    ('a, 'b, [< `R | `W ]) CCArray1.t
+  val to_bigarray :
+    ('a, 'b, [ `R | `W ]) CCArray1.t ->
+    ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
+  val ro :
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> ('a, 'b, [ `R ]) CCArray1.t
+  val wo :
+    ('a, 'b, [< `R | `W > `W ]) CCArray1.t -> ('a, 'b, [ `W ]) CCArray1.t
+  val length : ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> int
+  val set : ('a, 'b, [< `R | `W > `W ]) CCArray1.t -> int -> '-> unit
+  val get : ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> int -> 'a
+  val fill : ('a, 'b, [< `R | `W > `W ]) CCArray1.t -> '-> unit
+  val sub :
+    ('a, 'b, [< `R | `W ] as 'c) CCArray1.t ->
+    int -> int -> ('a, 'b, 'c) CCArray1.t
+  val blit :
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t ->
+    ('a, 'b, [< `R | `W > `W ]) CCArray1.t -> unit
+  val copy :
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t ->
+    ('a, 'b, [< `R | `W ]) CCArray1.t
+  val iter : f:('-> unit) -> ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> unit
+  val iteri :
+    f:(int -> '-> unit) -> ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> unit
+  val foldi :
+    ('-> int -> '-> 'b) ->
+    '-> ('a, 'c, [< `R | `W > `R ]) CCArray1.t -> 'b
+  val for_all :
+    f:('-> bool) -> ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> bool
+  val exists :
+    f:('-> bool) -> ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> bool
+  val pp :
+    'CCArray1.printer ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t CCArray1.printer
+  module Bool :
+    sig
+      type ('b, 'a) t = (int, 'b, 'a) CCArray1.array_
+        constraint 'a = [< `R | `W ]
+      val get : ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> int -> bool
+      val set :
+        ('a, [< `R | `W > `W ]) CCArray1.Bool.t -> int -> bool -> unit
+      val zeroes :
+        int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.Bool.t
+      val ones :
+        int -> (Bigarray.int8_unsigned_elt, [< `R | `W ]) CCArray1.Bool.t
+      val iter_zeroes :
+        f:(int -> unit) -> ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> unit
+      val iter_ones :
+        f:(int -> unit) -> ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> unit
+      val cardinal : ('a, [< `R | `W > `R ]) CCArray1.Bool.t -> int
+      val pp : ('a, [< `R | `W > `R ]) CCArray1.Bool.t CCArray1.printer
+      val or_ :
+        ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+      val and_ :
+        ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+      val not_ :
+        ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+      val mix :
+        ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t -> ('b, 'a) CCArray1.Bool.t
+      val convolution :
+        ?res:('b, [< `R | `W > `W ] as 'a) CCArray1.Bool.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+        by:('b, [< `R | `W > `R ]) CCArray1.Bool.t ->
+        ('b, 'a) CCArray1.Bool.t
+    end
+  val map :
+    ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.t ->
+    f:('-> 'a) ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> ('a, 'b, 'c) CCArray1.t
+  val map2 :
+    ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.t ->
+    f:('-> 'a2 -> 'a) ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t ->
+    ('a2, 'd, [< `R | `W > `R ]) CCArray1.t -> ('a, 'b, 'c) CCArray1.t
+  val append :
+    ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.t ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> ('a, 'b, 'c) CCArray1.t
+  val filter :
+    ?res:(Bigarray.int8_unsigned_elt, [< `R | `W > `W ] as 'c)
+         CCArray1.Bool.t ->
+    f:('-> bool) ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t ->
+    (Bigarray.int8_unsigned_elt, 'c) CCArray1.Bool.t
+  module type S =
+    sig
+      type elt
+      type ('a, 'b) t = (CCArray1.S.elt, 'a, 'b) CCArray1.array_
+        constraint 'b = [< `R | `W ]
+      val add :
+        ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, 'b) CCArray1.S.t
+      val mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t -> ('a, 'b) CCArray1.S.t
+      val scalar_add :
+        ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        x:CCArray1.S.elt -> ('a, 'b) CCArray1.S.t
+      val scalar_mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) CCArray1.S.t ->
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        x:CCArray1.S.elt -> ('a, 'b) CCArray1.S.t
+      val sum_elt : ('a, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+      val product_elt :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+      val dot_product :
+        ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+        ('b, [< `R | `W > `R ]) CCArray1.S.t -> CCArray1.S.elt
+      module Infix :
+        sig
+          val ( * ) :
+            ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+            ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+            ('a, [< `R | `W ]) CCArray1.S.t
+          val ( + ) :
+            ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+            ('b, [< `R | `W > `R ]) CCArray1.S.t ->
+            ('a, [< `R | `W ]) CCArray1.S.t
+          val ( *! ) :
+            ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+            CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+          val ( +! ) :
+            ('a, [< `R | `W > `R ]) CCArray1.S.t ->
+            CCArray1.S.elt -> ('a, [< `R | `W ]) CCArray1.S.t
+        end
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+      val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+    end
+  module Int :
+    sig
+      type elt = int
+      type ('a, 'b) t = (elt, 'a, 'b) array_ constraint 'b = [< `R | `W ]
+      val add :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+      val mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+      val scalar_add :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+      val scalar_mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+      val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+      val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+      val dot_product :
+        ('a, [< `R | `W > `R ]) t -> ('b, [< `R | `W > `R ]) t -> elt
+      module Infix :
+        sig
+          val ( * ) :
+            ('a, [< `R | `W > `R ]) t ->
+            ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+          val ( + ) :
+            ('a, [< `R | `W > `R ]) t ->
+            ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+          val ( *! ) :
+            ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+          val ( +! ) :
+            ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+        end
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+      val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+    end
+  module Float :
+    sig
+      type elt = float
+      type ('a, 'b) t = (elt, 'a, 'b) array_ constraint 'b = [< `R | `W ]
+      val add :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+      val mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W > `R ]) t -> ('a, 'b) t
+      val scalar_add :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+      val scalar_mult :
+        ?res:('a, [< `R | `W > `W ] as 'b) t ->
+        ('a, [< `R | `W > `R ]) t -> x:elt -> ('a, 'b) t
+      val sum_elt : ('a, [< `R | `W > `R ]) t -> elt
+      val product_elt : ('a, [< `R | `W > `R ]) t -> elt
+      val dot_product :
+        ('a, [< `R | `W > `R ]) t -> ('b, [< `R | `W > `R ]) t -> elt
+      module Infix :
+        sig
+          val ( * ) :
+            ('a, [< `R | `W > `R ]) t ->
+            ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+          val ( + ) :
+            ('a, [< `R | `W > `R ]) t ->
+            ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+          val ( *! ) :
+            ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+          val ( +! ) :
+            ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+        end
+      val ( * ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('a, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( + ) :
+        ('a, [< `R | `W > `R ]) t ->
+        ('b, [< `R | `W > `R ]) t -> ('a, [< `R | `W ]) t
+      val ( *! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+      val ( +! ) : ('a, [< `R | `W > `R ]) t -> elt -> ('a, [< `R | `W ]) t
+    end
+  val to_list : ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> 'a list
+  val to_array : ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> 'a array
+  val to_seq : ('a, 'b, [< `R | `W > `R ]) CCArray1.t -> 'CCArray1.sequence
+  val of_array :
+    kind:('a, 'b) Bigarray.kind ->
+    'a array -> ('a, 'b, [< `R | `W ]) CCArray1.t
+  val to_yojson :
+    'CCArray1.to_json ->
+    ('a, 'b, [< `R | `W > `R ]) CCArray1.t CCArray1.to_json
+  val of_yojson :
+    kind:('a, 'b) Bigarray.kind ->
+    'CCArray1.of_json -> ('a, 'b, [< `R | `W ]) CCArray1.t CCArray1.of_json
+  val int_to_yojson : int CCArray1.to_json
+  val int_of_yojson : int CCArray1.of_json
+  val float_to_yojson : float CCArray1.to_json
+  val float_of_yojson : float CCArray1.of_json
+  module View :
+    sig
+      type 'a t
+      val of_array :
+        ('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'CCArray1.View.t
+      val get : 'CCArray1.View.t -> int -> 'a
+      val length : 'CCArray1.View.t -> int
+      val map : f:('-> 'b) -> 'CCArray1.View.t -> 'CCArray1.View.t
+      val map2 :
+        f:('-> '-> 'c) ->
+        'CCArray1.View.t -> 'CCArray1.View.t -> 'CCArray1.View.t
+      val select :
+        idx:(int, 'b, [< `R | `W > `R ]) CCArray1.array_ ->
+        'CCArray1.View.t -> 'CCArray1.View.t
+      val select_a :
+        idx:int array -> 'CCArray1.View.t -> 'CCArray1.View.t
+      val select_view :
+        idx:int CCArray1.View.t -> 'CCArray1.View.t -> 'CCArray1.View.t
+      val foldi : ('-> int -> '-> 'b) -> '-> 'CCArray1.View.t -> 'b
+      val iteri : f:(int -> '-> unit) -> 'CCArray1.View.t -> unit
+      module type S =
+        sig
+          type elt
+          val mult :
+            CCArray1.View.S.elt CCArray1.View.t ->
+            CCArray1.View.S.elt CCArray1.View.t ->
+            CCArray1.View.S.elt CCArray1.View.t
+          val add :
+            CCArray1.View.S.elt CCArray1.View.t ->
+            CCArray1.View.S.elt CCArray1.View.t ->
+            CCArray1.View.S.elt CCArray1.View.t
+          val sum :
+            CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+          val prod :
+            CCArray1.View.S.elt CCArray1.View.t -> CCArray1.View.S.elt
+          val add_scalar :
+            CCArray1.View.S.elt CCArray1.View.t ->
+            x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+          val mult_scalar :
+            CCArray1.View.S.elt CCArray1.View.t ->
+            x:CCArray1.View.S.elt -> CCArray1.View.S.elt CCArray1.View.t
+        end
+      module Int :
+        sig
+          type elt = int
+          val mult : elt t -> elt t -> elt t
+          val add : elt t -> elt t -> elt t
+          val sum : elt t -> elt
+          val prod : elt t -> elt
+          val add_scalar : elt t -> x:elt -> elt t
+          val mult_scalar : elt t -> x:elt -> elt t
+        end
+      module Float :
+        sig
+          type elt = float
+          val mult : elt t -> elt t -> elt t
+          val add : elt t -> elt t -> elt t
+          val sum : elt t -> elt
+          val prod : elt t -> elt
+          val add_scalar : elt t -> x:elt -> elt t
+          val mult_scalar : elt t -> x:elt -> elt t
+        end
+      val raw :
+        length:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int) ->
+        get:(('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> int -> 'a) ->
+        ('a, 'b, [< `R | `W > `R ]) CCArray1.array_ -> 'CCArray1.View.t
+      val to_array :
+        ?res:('a, 'b, [< `R | `W > `W ] as 'c) CCArray1.array_ ->
+        ?kind:('a, 'b) Bigarray.kind ->
+        'CCArray1.View.t -> ('a, 'b, 'c) CCArray1.array_
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCBV.html b/0.17/type_CCBV.html new file mode 100644 index 00000000..5d585867 --- /dev/null +++ b/0.17/type_CCBV.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBV + + +sig
+  type t
+  val empty : unit -> CCBV.t
+  val create : size:int -> bool -> CCBV.t
+  val copy : CCBV.t -> CCBV.t
+  val cardinal : CCBV.t -> int
+  val length : CCBV.t -> int
+  val resize : CCBV.t -> int -> unit
+  val is_empty : CCBV.t -> bool
+  val set : CCBV.t -> int -> unit
+  val get : CCBV.t -> int -> bool
+  val reset : CCBV.t -> int -> unit
+  val flip : CCBV.t -> int -> unit
+  val clear : CCBV.t -> unit
+  val iter : CCBV.t -> (int -> bool -> unit) -> unit
+  val iter_true : CCBV.t -> (int -> unit) -> unit
+  val to_list : CCBV.t -> int list
+  val to_sorted_list : CCBV.t -> int list
+  val of_list : int list -> CCBV.t
+  val first : CCBV.t -> int
+  val filter : CCBV.t -> (int -> bool) -> unit
+  val union_into : into:CCBV.t -> CCBV.t -> unit
+  val inter_into : into:CCBV.t -> CCBV.t -> unit
+  val union : CCBV.t -> CCBV.t -> CCBV.t
+  val inter : CCBV.t -> CCBV.t -> CCBV.t
+  val select : CCBV.t -> 'a array -> 'a list
+  val selecti : CCBV.t -> 'a array -> ('a * int) list
+  type 'a sequence = ('-> unit) -> unit
+  val to_seq : CCBV.t -> int CCBV.sequence
+  val of_seq : int CCBV.sequence -> CCBV.t
+  val print : Format.formatter -> CCBV.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCBatch.COLLECTION.html b/0.17/type_CCBatch.COLLECTION.html new file mode 100644 index 00000000..f5815b77 --- /dev/null +++ b/0.17/type_CCBatch.COLLECTION.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.COLLECTION + + +sig
+  type 'a t
+  val empty : 'CCBatch.COLLECTION.t
+  val fold : ('-> '-> 'a) -> '-> 'CCBatch.COLLECTION.t -> 'a
+  val map : ('-> 'b) -> 'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+  val filter :
+    ('-> bool) -> 'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+  val filter_map :
+    ('-> 'b option) -> 'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+  val flat_map :
+    ('-> 'CCBatch.COLLECTION.t) ->
+    'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+end
\ No newline at end of file diff --git a/0.17/type_CCBatch.Make.html b/0.17/type_CCBatch.Make.html new file mode 100644 index 00000000..0e60ee90 --- /dev/null +++ b/0.17/type_CCBatch.Make.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.Make + + +functor (C : COLLECTION->
+  sig
+    type 'a t = 'C.t
+    type ('a, 'b) op
+    val apply : ('a, 'b) op -> 'a t -> 'b t
+    val apply_fold : ('a, 'b) op -> ('-> '-> 'c) -> '-> 'a t -> 'c
+    val apply' : 'a t -> ('a, 'b) op -> 'b t
+    val id : ('a, 'a) op
+    val map : ('-> 'b) -> ('a, 'b) op
+    val filter : ('-> bool) -> ('a, 'a) op
+    val filter_map : ('-> 'b option) -> ('a, 'b) op
+    val flat_map : ('-> 'b t) -> ('a, 'b) op
+    val extern : ('a t -> 'b t) -> ('a, 'b) op
+    val compose : ('b, 'c) op -> ('a, 'b) op -> ('a, 'c) op
+    val ( >>> ) : ('a, 'b) op -> ('b, 'c) op -> ('a, 'c) op
+  end
\ No newline at end of file diff --git a/0.17/type_CCBatch.S.html b/0.17/type_CCBatch.S.html new file mode 100644 index 00000000..4fe4edba --- /dev/null +++ b/0.17/type_CCBatch.S.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch.S + + +sig
+  type 'a t
+  type ('a, 'b) op
+  val apply : ('a, 'b) CCBatch.S.op -> 'CCBatch.S.t -> 'CCBatch.S.t
+  val apply_fold :
+    ('a, 'b) CCBatch.S.op -> ('-> '-> 'c) -> '-> 'CCBatch.S.t -> 'c
+  val apply' : 'CCBatch.S.t -> ('a, 'b) CCBatch.S.op -> 'CCBatch.S.t
+  val id : ('a, 'a) CCBatch.S.op
+  val map : ('-> 'b) -> ('a, 'b) CCBatch.S.op
+  val filter : ('-> bool) -> ('a, 'a) CCBatch.S.op
+  val filter_map : ('-> 'b option) -> ('a, 'b) CCBatch.S.op
+  val flat_map : ('-> 'CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
+  val extern : ('CCBatch.S.t -> 'CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
+  val compose :
+    ('b, 'c) CCBatch.S.op -> ('a, 'b) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
+  val ( >>> ) :
+    ('a, 'b) CCBatch.S.op -> ('b, 'c) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
+end
\ No newline at end of file diff --git a/0.17/type_CCBatch.html b/0.17/type_CCBatch.html new file mode 100644 index 00000000..444c5f73 --- /dev/null +++ b/0.17/type_CCBatch.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBatch + + +sig
+  module type COLLECTION =
+    sig
+      type 'a t
+      val empty : 'CCBatch.COLLECTION.t
+      val fold : ('-> '-> 'a) -> '-> 'CCBatch.COLLECTION.t -> 'a
+      val map :
+        ('-> 'b) -> 'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+      val filter :
+        ('-> bool) -> 'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+      val filter_map :
+        ('-> 'b option) ->
+        'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+      val flat_map :
+        ('-> 'CCBatch.COLLECTION.t) ->
+        'CCBatch.COLLECTION.t -> 'CCBatch.COLLECTION.t
+    end
+  module type S =
+    sig
+      type 'a t
+      type ('a, 'b) op
+      val apply : ('a, 'b) CCBatch.S.op -> 'CCBatch.S.t -> 'CCBatch.S.t
+      val apply_fold :
+        ('a, 'b) CCBatch.S.op ->
+        ('-> '-> 'c) -> '-> 'CCBatch.S.t -> 'c
+      val apply' : 'CCBatch.S.t -> ('a, 'b) CCBatch.S.op -> 'CCBatch.S.t
+      val id : ('a, 'a) CCBatch.S.op
+      val map : ('-> 'b) -> ('a, 'b) CCBatch.S.op
+      val filter : ('-> bool) -> ('a, 'a) CCBatch.S.op
+      val filter_map : ('-> 'b option) -> ('a, 'b) CCBatch.S.op
+      val flat_map : ('-> 'CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
+      val extern :
+        ('CCBatch.S.t -> 'CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
+      val compose :
+        ('b, 'c) CCBatch.S.op ->
+        ('a, 'b) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
+      val ( >>> ) :
+        ('a, 'b) CCBatch.S.op ->
+        ('b, 'c) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
+    end
+  module Make :
+    functor (C : COLLECTION->
+      sig
+        type 'a t = 'C.t
+        type ('a, 'b) op
+        val apply : ('a, 'b) op -> 'a t -> 'b t
+        val apply_fold : ('a, 'b) op -> ('-> '-> 'c) -> '-> 'a t -> 'c
+        val apply' : 'a t -> ('a, 'b) op -> 'b t
+        val id : ('a, 'a) op
+        val map : ('-> 'b) -> ('a, 'b) op
+        val filter : ('-> bool) -> ('a, 'a) op
+        val filter_map : ('-> 'b option) -> ('a, 'b) op
+        val flat_map : ('-> 'b t) -> ('a, 'b) op
+        val extern : ('a t -> 'b t) -> ('a, 'b) op
+        val compose : ('b, 'c) op -> ('a, 'b) op -> ('a, 'c) op
+        val ( >>> ) : ('a, 'b) op -> ('b, 'c) op -> ('a, 'c) op
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCBigstring.html b/0.17/type_CCBigstring.html new file mode 100644 index 00000000..a612ada4 --- /dev/null +++ b/0.17/type_CCBigstring.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBigstring + + +sig
+  type t =
+      (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
+  val create : int -> CCBigstring.t
+  val empty : CCBigstring.t
+  val init : int -> (int -> char) -> CCBigstring.t
+  val fill : CCBigstring.t -> char -> unit
+  val size : CCBigstring.t -> int
+  val length : CCBigstring.t -> int
+  val get : CCBigstring.t -> int -> char
+  val set : CCBigstring.t -> int -> char -> unit
+  val blit : CCBigstring.t -> int -> CCBigstring.t -> int -> int -> unit
+  val copy : CCBigstring.t -> CCBigstring.t
+  val sub : CCBigstring.t -> int -> int -> CCBigstring.t
+  val fold : ('-> char -> 'a) -> '-> CCBigstring.t -> 'a
+  val iter : (char -> unit) -> CCBigstring.t -> unit
+  val equal : CCBigstring.t -> CCBigstring.t -> bool
+  val compare : CCBigstring.t -> CCBigstring.t -> int
+  val to_bytes : CCBigstring.t -> Bytes.t
+  val of_bytes : Bytes.t -> CCBigstring.t
+  val of_bytes_slice : Bytes.t -> int -> int -> CCBigstring.t
+  val sub_bytes : CCBigstring.t -> int -> int -> Bytes.t
+  val blit_to_bytes : CCBigstring.t -> int -> Bytes.t -> int -> int -> unit
+  val blit_of_bytes : Bytes.t -> int -> CCBigstring.t -> int -> int -> unit
+  val to_string : CCBigstring.t -> string
+  val of_string : string -> CCBigstring.t
+  val of_string_slice : string -> int -> int -> CCBigstring.t
+  val sub_string : CCBigstring.t -> int -> int -> string
+  val blit_of_string : string -> int -> CCBigstring.t -> int -> int -> unit
+  type 'a gen = unit -> 'a option
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Format.formatter -> '-> unit
+  val to_seq : CCBigstring.t -> char CCBigstring.sequence
+  val to_gen : CCBigstring.t -> char CCBigstring.gen
+  val to_seq_slice : CCBigstring.t -> int -> int -> char CCBigstring.sequence
+  val to_gen_slice : CCBigstring.t -> int -> int -> char CCBigstring.gen
+  val print : CCBigstring.t CCBigstring.printer
+  val with_map_file :
+    ?pos:int64 ->
+    ?len:int ->
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    ?shared:bool -> string -> (CCBigstring.t -> 'a) -> 'a
+  val map_file_descr :
+    ?pos:int64 -> ?shared:bool -> Unix.file_descr -> int -> CCBigstring.t
+end
\ No newline at end of file diff --git a/0.17/type_CCBitField.EMPTY.html b/0.17/type_CCBitField.EMPTY.html new file mode 100644 index 00000000..db4a2ee0 --- /dev/null +++ b/0.17/type_CCBitField.EMPTY.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.EMPTY + + +sig  end \ No newline at end of file diff --git a/0.17/type_CCBitField.Make.html b/0.17/type_CCBitField.Make.html new file mode 100644 index 00000000..d3984896 --- /dev/null +++ b/0.17/type_CCBitField.Make.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.Make + + +functor (X : EMPTY-> S \ No newline at end of file diff --git a/0.17/type_CCBitField.S.FIELD.html b/0.17/type_CCBitField.S.FIELD.html new file mode 100644 index 00000000..5da71c8e --- /dev/null +++ b/0.17/type_CCBitField.S.FIELD.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.S.FIELD + + +sig
+  type value
+  val get : CCBitField.S.t -> CCBitField.S.FIELD.value
+  val set : CCBitField.S.FIELD.value -> CCBitField.S.t -> CCBitField.S.t
+  val width : int
+  val name : string
+  val kind : CCBitField.S.FIELD.value CCBitField.S.field_kind
+end
\ No newline at end of file diff --git a/0.17/type_CCBitField.S.html b/0.17/type_CCBitField.S.html new file mode 100644 index 00000000..fa8111c3 --- /dev/null +++ b/0.17/type_CCBitField.S.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField.S + + +sig
+  type t = private int
+  val empty : CCBitField.S.t
+  type _ field_kind =
+      Bool : bool CCBitField.S.field_kind
+    | Int : int CCBitField.S.field_kind
+  module type FIELD =
+    sig
+      type value
+      val get : CCBitField.S.t -> CCBitField.S.FIELD.value
+      val set : CCBitField.S.FIELD.value -> CCBitField.S.t -> CCBitField.S.t
+      val width : int
+      val name : string
+      val kind : CCBitField.S.FIELD.value CCBitField.S.field_kind
+    end
+  type 'a field = (module CCBitField.S.FIELD with type value = 'a)
+  val bool : ?name:string -> unit -> bool CCBitField.S.field
+  val int2 : ?name:string -> unit -> int CCBitField.S.field
+  val int3 : ?name:string -> unit -> int CCBitField.S.field
+  val int : ?name:string -> width:int -> unit -> int CCBitField.S.field
+  val freeze : unit -> unit
+  val total_width : unit -> int
+  type any_field =
+      AnyField : (module CCBitField.S.FIELD with type value = 'a) *
+        'CCBitField.S.field_kind -> CCBitField.S.any_field
+  val iter_fields : (CCBitField.S.any_field -> unit) -> unit
+  val pp : Format.formatter -> CCBitField.S.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCBitField.html b/0.17/type_CCBitField.html new file mode 100644 index 00000000..57940267 --- /dev/null +++ b/0.17/type_CCBitField.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBitField + + +sig
+  exception TooManyFields
+  exception Frozen
+  module type EMPTY = sig  end
+  val max_width : int
+  module type S =
+    sig
+      type t = private int
+      val empty : CCBitField.S.t
+      type _ field_kind =
+          Bool : bool CCBitField.S.field_kind
+        | Int : int CCBitField.S.field_kind
+      module type FIELD =
+        sig
+          type value
+          val get : CCBitField.S.t -> CCBitField.S.FIELD.value
+          val set :
+            CCBitField.S.FIELD.value -> CCBitField.S.t -> CCBitField.S.t
+          val width : int
+          val name : string
+          val kind : CCBitField.S.FIELD.value CCBitField.S.field_kind
+        end
+      type 'a field = (module CCBitField.S.FIELD with type value = 'a)
+      val bool : ?name:string -> unit -> bool CCBitField.S.field
+      val int2 : ?name:string -> unit -> int CCBitField.S.field
+      val int3 : ?name:string -> unit -> int CCBitField.S.field
+      val int : ?name:string -> width:int -> unit -> int CCBitField.S.field
+      val freeze : unit -> unit
+      val total_width : unit -> int
+      type any_field =
+          AnyField : (module CCBitField.S.FIELD with type value = 'a) *
+            'CCBitField.S.field_kind -> CCBitField.S.any_field
+      val iter_fields : (CCBitField.S.any_field -> unit) -> unit
+      val pp : Format.formatter -> CCBitField.S.t -> unit
+    end
+  module Make : functor (X : EMPTY-> S
+  val all_bits_ : int -> int -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCBlockingQueue.html b/0.17/type_CCBlockingQueue.html new file mode 100644 index 00000000..bb128691 --- /dev/null +++ b/0.17/type_CCBlockingQueue.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBlockingQueue + + +sig
+  type 'a t
+  val create : int -> 'CCBlockingQueue.t
+  val push : 'CCBlockingQueue.t -> '-> unit
+  val take : 'CCBlockingQueue.t -> 'a
+  val push_list : 'CCBlockingQueue.t -> 'a list -> unit
+  val take_list : 'CCBlockingQueue.t -> int -> 'a list
+  val try_take : 'CCBlockingQueue.t -> 'a option
+  val try_push : 'CCBlockingQueue.t -> '-> bool
+  val peek : 'CCBlockingQueue.t -> 'a option
+  val size : 'CCBlockingQueue.t -> int
+  val capacity : 'CCBlockingQueue.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCBloom.html b/0.17/type_CCBloom.html new file mode 100644 index 00000000..767517e5 --- /dev/null +++ b/0.17/type_CCBloom.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBloom + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a hash_funs = ('-> int) array
+  val default_hash_funs : int -> 'CCBloom.hash_funs
+  type 'a t
+  val create : ?hash:'CCBloom.hash_funs -> int -> 'CCBloom.t
+  val create_default : ?hash_len:int -> int -> 'CCBloom.t
+  val copy : 'CCBloom.t -> 'CCBloom.t
+  val size : 'CCBloom.t -> int
+  val load : 'CCBloom.t -> float
+  val mem : 'CCBloom.t -> '-> bool
+  val add : 'CCBloom.t -> '-> unit
+  val union_mut : into:'CCBloom.t -> 'CCBloom.t -> unit
+  val union : 'CCBloom.t -> 'CCBloom.t -> 'CCBloom.t
+  val inter_mut : into:'CCBloom.t -> 'CCBloom.t -> unit
+  val inter : 'CCBloom.t -> 'CCBloom.t -> 'CCBloom.t
+  val add_list : 'CCBloom.t -> 'a list -> unit
+  val add_seq : 'CCBloom.t -> 'CCBloom.sequence -> unit
+  val add_gen : 'CCBloom.t -> 'CCBloom.gen -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCBool.html b/0.17/type_CCBool.html new file mode 100644 index 00000000..5b7ce5d5 --- /dev/null +++ b/0.17/type_CCBool.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCBool + + +sig
+  type t = bool
+  val compare : CCBool.t -> CCBool.t -> int
+  val equal : CCBool.t -> CCBool.t -> bool
+  val negate : CCBool.t -> CCBool.t
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  val pp : CCBool.t CCBool.printer
+  val print : CCBool.t CCBool.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCCache.html b/0.17/type_CCCache.html new file mode 100644 index 00000000..3b229ea7 --- /dev/null +++ b/0.17/type_CCCache.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCache + + +sig
+  type 'a equal = '-> '-> bool
+  type 'a hash = '-> int
+  type ('a, 'b) t
+  val clear : ('a, 'b) CCCache.t -> unit
+  val with_cache : ('a, 'b) CCCache.t -> ('-> 'b) -> '-> 'b
+  val with_cache_rec :
+    ('a, 'b) CCCache.t -> (('-> 'b) -> '-> 'b) -> '-> 'b
+  val size : ('a, 'b) CCCache.t -> int
+  val iter : ('a, 'b) CCCache.t -> ('-> '-> unit) -> unit
+  val dummy : ('a, 'b) CCCache.t
+  val linear : ?eq:'CCCache.equal -> int -> ('a, 'b) CCCache.t
+  val replacing :
+    ?eq:'CCCache.equal ->
+    ?hash:'CCCache.hash -> int -> ('a, 'b) CCCache.t
+  val lru :
+    ?eq:'CCCache.equal ->
+    ?hash:'CCCache.hash -> int -> ('a, 'b) CCCache.t
+  val unbounded :
+    ?eq:'CCCache.equal ->
+    ?hash:'CCCache.hash -> int -> ('a, 'b) CCCache.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.APPLICATIVE.html b/0.17/type_CCCat.APPLICATIVE.html new file mode 100644 index 00000000..66c1f176 --- /dev/null +++ b/0.17/type_CCCat.APPLICATIVE.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.APPLICATIVE + + +sig
+  type +'a t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val pure : '-> 'CCCat.APPLICATIVE.t
+  val ( <*> ) :
+    ('-> 'b) CCCat.APPLICATIVE.t ->
+    'CCCat.APPLICATIVE.t -> 'CCCat.APPLICATIVE.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.FOLDABLE.html b/0.17/type_CCCat.FOLDABLE.html new file mode 100644 index 00000000..ab8ce73b --- /dev/null +++ b/0.17/type_CCCat.FOLDABLE.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FOLDABLE + + +sig type 'a t val to_seq : 'CCCat.FOLDABLE.t -> 'CCCat.sequence end \ No newline at end of file diff --git a/0.17/type_CCCat.FREE_MONAD.F.html b/0.17/type_CCCat.FREE_MONAD.F.html new file mode 100644 index 00000000..133915e1 --- /dev/null +++ b/0.17/type_CCCat.FREE_MONAD.F.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FREE_MONAD.F + + +FUNCTOR \ No newline at end of file diff --git a/0.17/type_CCCat.FREE_MONAD.html b/0.17/type_CCCat.FREE_MONAD.html new file mode 100644 index 00000000..05a1a893 --- /dev/null +++ b/0.17/type_CCCat.FREE_MONAD.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FREE_MONAD + + +sig
+  module F : FUNCTOR
+  type 'a t = Return of '| Roll of 'CCCat.FREE_MONAD.t F.t
+  val return : '-> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val pure : '-> 'a t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  val inj : 'F.t -> 'CCCat.FREE_MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.FUNCTOR.html b/0.17/type_CCCat.FUNCTOR.html new file mode 100644 index 00000000..f503800c --- /dev/null +++ b/0.17/type_CCCat.FUNCTOR.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.FUNCTOR + + +sig
+  type +'a t
+  val map : ('-> 'b) -> 'CCCat.FUNCTOR.t -> 'CCCat.FUNCTOR.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.MONAD.html b/0.17/type_CCCat.MONAD.html new file mode 100644 index 00000000..bd8eba3f --- /dev/null +++ b/0.17/type_CCCat.MONAD.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD + + +sig
+  type +'a t
+  val return : '-> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val pure : '-> 'a t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.MONAD_BARE.html b/0.17/type_CCCat.MONAD_BARE.html new file mode 100644 index 00000000..7c93d7ce --- /dev/null +++ b/0.17/type_CCCat.MONAD_BARE.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_BARE + + +sig
+  type +'a t
+  val return : '-> 'CCCat.MONAD_BARE.t
+  val ( >>= ) :
+    'CCCat.MONAD_BARE.t ->
+    ('-> 'CCCat.MONAD_BARE.t) -> 'CCCat.MONAD_BARE.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.MONAD_TRANSFORMER.M.html b/0.17/type_CCCat.MONAD_TRANSFORMER.M.html new file mode 100644 index 00000000..1fc6359f --- /dev/null +++ b/0.17/type_CCCat.MONAD_TRANSFORMER.M.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_TRANSFORMER.M + + +MONAD \ No newline at end of file diff --git a/0.17/type_CCCat.MONAD_TRANSFORMER.html b/0.17/type_CCCat.MONAD_TRANSFORMER.html new file mode 100644 index 00000000..78806ce9 --- /dev/null +++ b/0.17/type_CCCat.MONAD_TRANSFORMER.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONAD_TRANSFORMER + + +sig
+  type +'a t
+  val return : '-> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val pure : '-> 'a t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  module M : MONAD
+  val lift : 'M.t -> 'a t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.MONOID.html b/0.17/type_CCCat.MONOID.html new file mode 100644 index 00000000..959fa19e --- /dev/null +++ b/0.17/type_CCCat.MONOID.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MONOID + + +sig
+  type t
+  val empty : CCCat.MONOID.t
+  val append : CCCat.MONOID.t -> CCCat.MONOID.t -> CCCat.MONOID.t
+end
\ No newline at end of file diff --git a/0.17/type_CCCat.MakeFree.html b/0.17/type_CCCat.MakeFree.html new file mode 100644 index 00000000..9535f8d7 --- /dev/null +++ b/0.17/type_CCCat.MakeFree.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MakeFree + + +functor (F : FUNCTOR->
+  sig
+    module F :
+      sig type 'a t = 'F.t val map : ('-> 'b) -> 'a t -> 'b t end
+    type 'a t = Return of '| Roll of 'a t F.t
+    val return : '-> 'a t
+    val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val pure : '-> 'a t
+    val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+    val inj : 'F.t -> 'a t
+  end
\ No newline at end of file diff --git a/0.17/type_CCCat.MakeFreeFold.html b/0.17/type_CCCat.MakeFreeFold.html new file mode 100644 index 00000000..691bbd7c --- /dev/null +++ b/0.17/type_CCCat.MakeFreeFold.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.MakeFreeFold + + +functor
+  (FM : FREE_MONAD) (Fold : sig
+                              type 'a t = 'FM.F.t
+                              val to_seq : 'a t -> 'a sequence
+                            end->
+  sig type 'a t = 'FM.t val to_seq : 'a t -> 'a sequence end
\ No newline at end of file diff --git a/0.17/type_CCCat.TRAVERSE.html b/0.17/type_CCCat.TRAVERSE.html new file mode 100644 index 00000000..d7481488 --- /dev/null +++ b/0.17/type_CCCat.TRAVERSE.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.TRAVERSE + + +functor (M : MONAD->
+  sig
+    type +'a t
+    val sequence_m : 'M.t CCCat.TRAVERSE.t -> 'CCCat.TRAVERSE.t M.t
+    val fold_m : ('-> '-> 'M.t) -> '-> 'CCCat.TRAVERSE.t -> 'M.t
+    val map_m :
+      ('-> 'M.t) -> 'CCCat.TRAVERSE.t -> 'CCCat.TRAVERSE.t M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCCat.WrapMonad.html b/0.17/type_CCCat.WrapMonad.html new file mode 100644 index 00000000..773fda94 --- /dev/null +++ b/0.17/type_CCCat.WrapMonad.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat.WrapMonad + + +functor (M : MONAD_BARE->
+  sig
+    type 'a t = 'M.t
+    val return : '-> 'a t
+    val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val pure : '-> 'a t
+    val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  end
\ No newline at end of file diff --git a/0.17/type_CCCat.html b/0.17/type_CCCat.html new file mode 100644 index 00000000..0dddcf35 --- /dev/null +++ b/0.17/type_CCCat.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCCat + + +sig
+  module type MONOID =
+    sig
+      type t
+      val empty : CCCat.MONOID.t
+      val append : CCCat.MONOID.t -> CCCat.MONOID.t -> CCCat.MONOID.t
+    end
+  module type FUNCTOR =
+    sig
+      type +'a t
+      val map : ('-> 'b) -> 'CCCat.FUNCTOR.t -> 'CCCat.FUNCTOR.t
+    end
+  module type APPLICATIVE =
+    sig
+      type +'a t
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val pure : '-> 'CCCat.APPLICATIVE.t
+      val ( <*> ) :
+        ('-> 'b) CCCat.APPLICATIVE.t ->
+        'CCCat.APPLICATIVE.t -> 'CCCat.APPLICATIVE.t
+    end
+  module type MONAD_BARE =
+    sig
+      type +'a t
+      val return : '-> 'CCCat.MONAD_BARE.t
+      val ( >>= ) :
+        'CCCat.MONAD_BARE.t ->
+        ('-> 'CCCat.MONAD_BARE.t) -> 'CCCat.MONAD_BARE.t
+    end
+  module type MONAD =
+    sig
+      type +'a t
+      val return : '-> 'a t
+      val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val pure : '-> 'a t
+      val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+    end
+  module type MONAD_TRANSFORMER =
+    sig
+      type +'a t
+      val return : '-> 'a t
+      val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val pure : '-> 'a t
+      val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+      module M : MONAD
+      val lift : 'M.t -> 'a t
+    end
+  type 'a sequence = ('-> unit) -> unit
+  module type FOLDABLE =
+    sig type 'a t val to_seq : 'CCCat.FOLDABLE.t -> 'CCCat.sequence end
+  module type TRAVERSE =
+    functor (M : MONAD->
+      sig
+        type +'a t
+        val sequence_m : 'M.t CCCat.TRAVERSE.t -> 'CCCat.TRAVERSE.t M.t
+        val fold_m :
+          ('-> '-> 'M.t) -> '-> 'CCCat.TRAVERSE.t -> 'M.t
+        val map_m :
+          ('-> 'M.t) -> 'CCCat.TRAVERSE.t -> 'CCCat.TRAVERSE.t M.t
+      end
+  module type FREE_MONAD =
+    sig
+      module F : FUNCTOR
+      type 'a t = Return of '| Roll of 'CCCat.FREE_MONAD.t F.t
+      val return : '-> 'a t
+      val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val pure : '-> 'a t
+      val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+      val inj : 'F.t -> 'CCCat.FREE_MONAD.t
+    end
+  module WrapMonad :
+    functor (M : MONAD_BARE->
+      sig
+        type 'a t = 'M.t
+        val return : '-> 'a t
+        val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val pure : '-> 'a t
+        val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+      end
+  module MakeFree :
+    functor (F : FUNCTOR->
+      sig
+        module F :
+          sig type 'a t = 'F.t val map : ('-> 'b) -> 'a t -> 'b t end
+        type 'a t = Return of '| Roll of 'a t F.t
+        val return : '-> 'a t
+        val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val pure : '-> 'a t
+        val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+        val inj : 'F.t -> 'a t
+      end
+  module MakeFreeFold :
+    functor
+      (FM : FREE_MONAD) (Fold : sig
+                                  type 'a t = 'FM.F.t
+                                  val to_seq : 'a t -> 'a sequence
+                                end->
+      sig type 'a t = 'FM.t val to_seq : 'a t -> 'a sequence end
+end
\ No newline at end of file diff --git a/0.17/type_CCChar.html b/0.17/type_CCChar.html new file mode 100644 index 00000000..11231d37 --- /dev/null +++ b/0.17/type_CCChar.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCChar + + +sig
+  type t = char
+  val equal : CCChar.t -> CCChar.t -> bool
+  val compare : CCChar.t -> CCChar.t -> int
+  val pp : Buffer.t -> CCChar.t -> unit
+  val print : Format.formatter -> CCChar.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCDeque.html b/0.17/type_CCDeque.html new file mode 100644 index 00000000..32876e6f --- /dev/null +++ b/0.17/type_CCDeque.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCDeque + + +sig
+  type 'a t
+  exception Empty
+  val create : unit -> 'CCDeque.t
+  val clear : 'CCDeque.t -> unit
+  val is_empty : 'CCDeque.t -> bool
+  val equal : ?eq:('-> '-> bool) -> 'CCDeque.t -> 'CCDeque.t -> bool
+  val compare : ?cmp:('-> '-> int) -> 'CCDeque.t -> 'CCDeque.t -> int
+  val length : 'CCDeque.t -> int
+  val push_front : 'CCDeque.t -> '-> unit
+  val push_back : 'CCDeque.t -> '-> unit
+  val peek_front : 'CCDeque.t -> 'a
+  val peek_back : 'CCDeque.t -> 'a
+  val take_back : 'CCDeque.t -> 'a
+  val take_front : 'CCDeque.t -> 'a
+  val append_front : into:'CCDeque.t -> 'CCDeque.t -> unit
+  val append_back : into:'CCDeque.t -> 'CCDeque.t -> unit
+  val iter : ('-> unit) -> 'CCDeque.t -> unit
+  val fold : ('-> '-> 'b) -> '-> 'CCDeque.t -> 'b
+  type 'a gen = unit -> 'a option
+  type 'a sequence = ('-> unit) -> unit
+  val of_seq : 'CCDeque.sequence -> 'CCDeque.t
+  val to_seq : 'CCDeque.t -> 'CCDeque.sequence
+  val of_gen : 'CCDeque.gen -> 'CCDeque.t
+  val to_gen : 'CCDeque.t -> 'CCDeque.gen
+  val add_seq_front : 'CCDeque.t -> 'CCDeque.sequence -> unit
+  val add_seq_back : 'CCDeque.t -> 'CCDeque.sequence -> unit
+  val copy : 'CCDeque.t -> 'CCDeque.t
+  val of_list : 'a list -> 'CCDeque.t
+  val to_list : 'CCDeque.t -> 'a list
+  val to_rev_list : 'CCDeque.t -> 'a list
+  type 'a printer = Format.formatter -> '-> unit
+  val print : 'CCDeque.printer -> 'CCDeque.t CCDeque.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCError.Infix.html b/0.17/type_CCError.Infix.html new file mode 100644 index 00000000..c4cba1d1 --- /dev/null +++ b/0.17/type_CCError.Infix.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.Infix + + +sig
+  val ( >|= ) : ('a, 'err) CCError.t -> ('-> 'b) -> ('b, 'err) CCError.t
+  val ( >>= ) :
+    ('a, 'err) CCError.t ->
+    ('-> ('b, 'err) CCError.t) -> ('b, 'err) CCError.t
+  val ( <*> ) :
+    ('-> 'b, 'err) CCError.t ->
+    ('a, 'err) CCError.t -> ('b, 'err) CCError.t
+end
\ No newline at end of file diff --git a/0.17/type_CCError.MONAD.html b/0.17/type_CCError.MONAD.html new file mode 100644 index 00000000..587d12f6 --- /dev/null +++ b/0.17/type_CCError.MONAD.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.MONAD + + +sig
+  type 'a t
+  val return : '-> 'CCError.MONAD.t
+  val ( >>= ) :
+    'CCError.MONAD.t -> ('-> 'CCError.MONAD.t) -> 'CCError.MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCError.Traverse.html b/0.17/type_CCError.Traverse.html new file mode 100644 index 00000000..9e876c56 --- /dev/null +++ b/0.17/type_CCError.Traverse.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError.Traverse + + +functor (M : MONAD->
+  sig
+    val sequence_m : ('M.t, 'err) CCError.t -> ('a, 'err) CCError.t M.t
+    val fold_m : ('-> '-> 'M.t) -> '-> ('a, 'err) CCError.t -> 'M.t
+    val map_m :
+      ('-> 'M.t) -> ('a, 'err) CCError.t -> ('b, 'err) CCError.t M.t
+    val retry_m :
+      int ->
+      (unit -> ('a, 'err) CCError.t M.t) -> ('a, 'err list) CCError.t M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCError.html b/0.17/type_CCError.html new file mode 100644 index 00000000..0fd50d6e --- /dev/null +++ b/0.17/type_CCError.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCError + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type ('good, 'bad) t = [ `Error of 'bad | `Ok of 'good ]
+  val return : '-> ('a, 'err) CCError.t
+  val fail : 'err -> ('a, 'err) CCError.t
+  val of_exn : exn -> ('a, string) CCError.t
+  val of_exn_trace : exn -> ('a, string) CCError.t
+  val fail_printf :
+    ('a, Buffer.t, unit, ('a, string) CCError.t) Pervasives.format4 -> 'a
+  val map : ('-> 'b) -> ('a, 'err) CCError.t -> ('b, 'err) CCError.t
+  val map_err :
+    ('err1 -> 'err2) -> ('a, 'err1) CCError.t -> ('a, 'err2) CCError.t
+  val map2 :
+    ('-> 'b) ->
+    ('err1 -> 'err2) -> ('a, 'err1) CCError.t -> ('b, 'err2) CCError.t
+  val iter : ('-> unit) -> ('a, 'b) CCError.t -> unit
+  val get_exn : ('a, 'b) CCError.t -> 'a
+  val catch : ('a, 'err) CCError.t -> ok:('-> 'b) -> err:('err -> 'b) -> 'b
+  val flat_map :
+    ('-> ('b, 'err) CCError.t) ->
+    ('a, 'err) CCError.t -> ('b, 'err) CCError.t
+  val ( >|= ) : ('a, 'err) CCError.t -> ('-> 'b) -> ('b, 'err) CCError.t
+  val ( >>= ) :
+    ('a, 'err) CCError.t ->
+    ('-> ('b, 'err) CCError.t) -> ('b, 'err) CCError.t
+  val equal :
+    ?err:'err CCError.equal ->
+    'CCError.equal -> ('a, 'err) CCError.t CCError.equal
+  val compare :
+    ?err:'err CCError.ord ->
+    'CCError.ord -> ('a, 'err) CCError.t CCError.ord
+  val fold :
+    success:('-> 'b) -> failure:('err -> 'b) -> ('a, 'err) CCError.t -> 'b
+  val guard : (unit -> 'a) -> ('a, exn) CCError.t
+  val guard_str : (unit -> 'a) -> ('a, string) CCError.t
+  val guard_str_trace : (unit -> 'a) -> ('a, string) CCError.t
+  val wrap1 : ('-> 'b) -> '-> ('b, exn) CCError.t
+  val wrap2 : ('-> '-> 'c) -> '-> '-> ('c, exn) CCError.t
+  val wrap3 : ('-> '-> '-> 'd) -> '-> '-> '-> ('d, exn) CCError.t
+  val pure : '-> ('a, 'err) CCError.t
+  val ( <*> ) :
+    ('-> 'b, 'err) CCError.t ->
+    ('a, 'err) CCError.t -> ('b, 'err) CCError.t
+  val join : (('a, 'err) CCError.t, 'err) CCError.t -> ('a, 'err) CCError.t
+  val both :
+    ('a, 'err) CCError.t -> ('b, 'err) CCError.t -> ('a * 'b, 'err) CCError.t
+  module Infix :
+    sig
+      val ( >|= ) :
+        ('a, 'err) CCError.t -> ('-> 'b) -> ('b, 'err) CCError.t
+      val ( >>= ) :
+        ('a, 'err) CCError.t ->
+        ('-> ('b, 'err) CCError.t) -> ('b, 'err) CCError.t
+      val ( <*> ) :
+        ('-> 'b, 'err) CCError.t ->
+        ('a, 'err) CCError.t -> ('b, 'err) CCError.t
+    end
+  val map_l :
+    ('-> ('b, 'err) CCError.t) -> 'a list -> ('b list, 'err) CCError.t
+  val fold_l :
+    ('-> '-> ('b, 'err) CCError.t) ->
+    '-> 'a list -> ('b, 'err) CCError.t
+  val fold_seq :
+    ('-> '-> ('b, 'err) CCError.t) ->
+    '-> 'CCError.sequence -> ('b, 'err) CCError.t
+  val choose : ('a, 'err) CCError.t list -> ('a, 'err list) CCError.t
+  val retry :
+    int -> (unit -> ('a, 'err) CCError.t) -> ('a, 'err list) CCError.t
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'CCError.MONAD.t
+      val ( >>= ) :
+        'CCError.MONAD.t ->
+        ('-> 'CCError.MONAD.t) -> 'CCError.MONAD.t
+    end
+  module Traverse :
+    functor (M : MONAD->
+      sig
+        val sequence_m : ('M.t, 'err) CCError.t -> ('a, 'err) CCError.t M.t
+        val fold_m :
+          ('-> '-> 'M.t) -> '-> ('a, 'err) CCError.t -> 'M.t
+        val map_m :
+          ('-> 'M.t) -> ('a, 'err) CCError.t -> ('b, 'err) CCError.t M.t
+        val retry_m :
+          int ->
+          (unit -> ('a, 'err) CCError.t M.t) -> ('a, 'err list) CCError.t M.t
+      end
+  val to_opt : ('a, 'b) CCError.t -> 'a option
+  val of_opt : 'a option -> ('a, string) CCError.t
+  val to_seq : ('a, 'b) CCError.t -> 'CCError.sequence
+  val pp : 'CCError.printer -> ('a, string) CCError.t CCError.printer
+  val print :
+    'CCError.formatter -> ('a, string) CCError.t CCError.formatter
+  val register_printer : exn CCError.printer -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCFQueue.html b/0.17/type_CCFQueue.html new file mode 100644 index 00000000..96f50967 --- /dev/null +++ b/0.17/type_CCFQueue.html @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFQueue + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'CCFQueue.klist | `Nil ]
+  type 'a equal = '-> '-> bool
+  type 'a printer = Format.formatter -> '-> unit
+  type +'a t
+  val empty : 'CCFQueue.t
+  val is_empty : 'CCFQueue.t -> bool
+  val singleton : '-> 'CCFQueue.t
+  val doubleton : '-> '-> 'CCFQueue.t
+  exception Empty
+  val cons : '-> 'CCFQueue.t -> 'CCFQueue.t
+  val snoc : 'CCFQueue.t -> '-> 'CCFQueue.t
+  val take_front : 'CCFQueue.t -> ('a * 'CCFQueue.t) option
+  val take_front_exn : 'CCFQueue.t -> 'a * 'CCFQueue.t
+  val take_front_l : int -> 'CCFQueue.t -> 'a list * 'CCFQueue.t
+  val take_front_while :
+    ('-> bool) -> 'CCFQueue.t -> 'a list * 'CCFQueue.t
+  val take_back : 'CCFQueue.t -> ('CCFQueue.t * 'a) option
+  val take_back_exn : 'CCFQueue.t -> 'CCFQueue.t * 'a
+  val take_back_l : int -> 'CCFQueue.t -> 'CCFQueue.t * 'a list
+  val take_back_while :
+    ('-> bool) -> 'CCFQueue.t -> 'CCFQueue.t * 'a list
+  val first : 'CCFQueue.t -> 'a option
+  val last : 'CCFQueue.t -> 'a option
+  val first_exn : 'CCFQueue.t -> 'a
+  val last_exn : 'CCFQueue.t -> 'a
+  val nth : int -> 'CCFQueue.t -> 'a option
+  val nth_exn : int -> 'CCFQueue.t -> 'a
+  val tail : 'CCFQueue.t -> 'CCFQueue.t
+  val init : 'CCFQueue.t -> 'CCFQueue.t
+  val append : 'CCFQueue.t -> 'CCFQueue.t -> 'CCFQueue.t
+  val rev : 'CCFQueue.t -> 'CCFQueue.t
+  val map : ('-> 'b) -> 'CCFQueue.t -> 'CCFQueue.t
+  val ( >|= ) : 'CCFQueue.t -> ('-> 'b) -> 'CCFQueue.t
+  val size : 'CCFQueue.t -> int
+  val fold : ('-> '-> 'b) -> '-> 'CCFQueue.t -> 'b
+  val iter : ('-> unit) -> 'CCFQueue.t -> unit
+  val equal : 'CCFQueue.equal -> 'CCFQueue.t CCFQueue.equal
+  val of_list : 'a list -> 'CCFQueue.t
+  val to_list : 'CCFQueue.t -> 'a list
+  val add_seq_front : 'CCFQueue.sequence -> 'CCFQueue.t -> 'CCFQueue.t
+  val add_seq_back : 'CCFQueue.t -> 'CCFQueue.sequence -> 'CCFQueue.t
+  val to_seq : 'CCFQueue.t -> 'CCFQueue.sequence
+  val of_seq : 'CCFQueue.sequence -> 'CCFQueue.t
+  val to_klist : 'CCFQueue.t -> 'CCFQueue.klist
+  val of_klist : 'CCFQueue.klist -> 'CCFQueue.t
+  val ( -- ) : int -> int -> int CCFQueue.t
+  val ( --^ ) : int -> int -> int CCFQueue.t
+  val print : 'CCFQueue.printer -> 'CCFQueue.t CCFQueue.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCFlatHashtbl.HASHABLE.html b/0.17/type_CCFlatHashtbl.HASHABLE.html new file mode 100644 index 00000000..94900a9a --- /dev/null +++ b/0.17/type_CCFlatHashtbl.HASHABLE.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.HASHABLE + + +sig
+  type t
+  val equal : CCFlatHashtbl.HASHABLE.t -> CCFlatHashtbl.HASHABLE.t -> bool
+  val hash : CCFlatHashtbl.HASHABLE.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCFlatHashtbl.Make.html b/0.17/type_CCFlatHashtbl.Make.html new file mode 100644 index 00000000..1090e8cd --- /dev/null +++ b/0.17/type_CCFlatHashtbl.Make.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.Make + + +functor (X : HASHABLE->
+  sig
+    type key = X.t
+    type 'a t
+    val create : int -> 'a t
+    val mem : 'a t -> key -> bool
+    val find : 'a t -> key -> 'a option
+    val find_exn : 'a t -> key -> 'a
+    val get : key -> 'a t -> 'a option
+    val get_exn : key -> 'a t -> 'a
+    val add : 'a t -> key -> '-> unit
+    val remove : 'a t -> key -> unit
+    val size : 'a t -> int
+    val of_list : (key * 'a) list -> 'a t
+    val to_list : 'a t -> (key * 'a) list
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val keys : 'a t -> key sequence
+    val values : 'a t -> 'a sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCFlatHashtbl.S.html b/0.17/type_CCFlatHashtbl.S.html new file mode 100644 index 00000000..089409e0 --- /dev/null +++ b/0.17/type_CCFlatHashtbl.S.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl.S + + +sig
+  type key
+  type 'a t
+  val create : int -> 'CCFlatHashtbl.S.t
+  val mem : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> bool
+  val find : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> 'a option
+  val find_exn : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> 'a
+  val get : CCFlatHashtbl.S.key -> 'CCFlatHashtbl.S.t -> 'a option
+  val get_exn : CCFlatHashtbl.S.key -> 'CCFlatHashtbl.S.t -> 'a
+  val add : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> '-> unit
+  val remove : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> unit
+  val size : 'CCFlatHashtbl.S.t -> int
+  val of_list : (CCFlatHashtbl.S.key * 'a) list -> 'CCFlatHashtbl.S.t
+  val to_list : 'CCFlatHashtbl.S.t -> (CCFlatHashtbl.S.key * 'a) list
+  val of_seq :
+    (CCFlatHashtbl.S.key * 'a) CCFlatHashtbl.sequence -> 'CCFlatHashtbl.S.t
+  val to_seq :
+    'CCFlatHashtbl.S.t -> (CCFlatHashtbl.S.key * 'a) CCFlatHashtbl.sequence
+  val keys :
+    'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key CCFlatHashtbl.sequence
+  val values : 'CCFlatHashtbl.S.t -> 'CCFlatHashtbl.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCFlatHashtbl.html b/0.17/type_CCFlatHashtbl.html new file mode 100644 index 00000000..1c08fc35 --- /dev/null +++ b/0.17/type_CCFlatHashtbl.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFlatHashtbl + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  module type S =
+    sig
+      type key
+      type 'a t
+      val create : int -> 'CCFlatHashtbl.S.t
+      val mem : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> bool
+      val find : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> 'a option
+      val find_exn : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> 'a
+      val get : CCFlatHashtbl.S.key -> 'CCFlatHashtbl.S.t -> 'a option
+      val get_exn : CCFlatHashtbl.S.key -> 'CCFlatHashtbl.S.t -> 'a
+      val add : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> '-> unit
+      val remove : 'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key -> unit
+      val size : 'CCFlatHashtbl.S.t -> int
+      val of_list : (CCFlatHashtbl.S.key * 'a) list -> 'CCFlatHashtbl.S.t
+      val to_list : 'CCFlatHashtbl.S.t -> (CCFlatHashtbl.S.key * 'a) list
+      val of_seq :
+        (CCFlatHashtbl.S.key * 'a) CCFlatHashtbl.sequence ->
+        'CCFlatHashtbl.S.t
+      val to_seq :
+        'CCFlatHashtbl.S.t ->
+        (CCFlatHashtbl.S.key * 'a) CCFlatHashtbl.sequence
+      val keys :
+        'CCFlatHashtbl.S.t -> CCFlatHashtbl.S.key CCFlatHashtbl.sequence
+      val values : 'CCFlatHashtbl.S.t -> 'CCFlatHashtbl.sequence
+    end
+  module type HASHABLE =
+    sig
+      type t
+      val equal :
+        CCFlatHashtbl.HASHABLE.t -> CCFlatHashtbl.HASHABLE.t -> bool
+      val hash : CCFlatHashtbl.HASHABLE.t -> int
+    end
+  module Make :
+    functor (X : HASHABLE->
+      sig
+        type key = X.t
+        type 'a t
+        val create : int -> 'a t
+        val mem : 'a t -> key -> bool
+        val find : 'a t -> key -> 'a option
+        val find_exn : 'a t -> key -> 'a
+        val get : key -> 'a t -> 'a option
+        val get_exn : key -> 'a t -> 'a
+        val add : 'a t -> key -> '-> unit
+        val remove : 'a t -> key -> unit
+        val size : 'a t -> int
+        val of_list : (key * 'a) list -> 'a t
+        val to_list : 'a t -> (key * 'a) list
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val keys : 'a t -> key sequence
+        val values : 'a t -> 'a sequence
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCFloat.Infix.html b/0.17/type_CCFloat.Infix.html new file mode 100644 index 00000000..2f5da848 --- /dev/null +++ b/0.17/type_CCFloat.Infix.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFloat.Infix + + +sig
+  val ( = ) : CCFloat.t -> CCFloat.t -> bool
+  val ( <> ) : CCFloat.t -> CCFloat.t -> bool
+  val ( < ) : CCFloat.t -> CCFloat.t -> bool
+  val ( > ) : CCFloat.t -> CCFloat.t -> bool
+  val ( <= ) : CCFloat.t -> CCFloat.t -> bool
+  val ( >= ) : CCFloat.t -> CCFloat.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCFloat.html b/0.17/type_CCFloat.html new file mode 100644 index 00000000..bd7eaa73 --- /dev/null +++ b/0.17/type_CCFloat.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFloat + + +sig
+  type t = float
+  type fpclass =
+    Pervasives.fpclass =
+      FP_normal
+    | FP_subnormal
+    | FP_zero
+    | FP_infinite
+    | FP_nan
+  val nan : CCFloat.t
+  val max_value : CCFloat.t
+  val min_value : CCFloat.t
+  val max_finite_value : CCFloat.t
+  val epsilon : float
+  val is_nan : CCFloat.t -> bool
+  val add : CCFloat.t -> CCFloat.t -> CCFloat.t
+  val sub : CCFloat.t -> CCFloat.t -> CCFloat.t
+  val neg : CCFloat.t -> CCFloat.t
+  val abs : CCFloat.t -> CCFloat.t
+  val scale : CCFloat.t -> CCFloat.t -> CCFloat.t
+  val min : CCFloat.t -> CCFloat.t -> CCFloat.t
+  val max : CCFloat.t -> CCFloat.t -> CCFloat.t
+  val equal : CCFloat.t -> CCFloat.t -> bool
+  val compare : float -> float -> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a random_gen = Random.State.t -> 'a
+  val pp : CCFloat.t CCFloat.printer
+  val print : CCFloat.t CCFloat.formatter
+  val hash : CCFloat.t -> int
+  val random : CCFloat.t -> CCFloat.t CCFloat.random_gen
+  val random_small : CCFloat.t CCFloat.random_gen
+  val random_range : CCFloat.t -> CCFloat.t -> CCFloat.t CCFloat.random_gen
+  val fsign : CCFloat.t -> float
+  exception TrapNaN of string
+  val sign_exn : CCFloat.t -> int
+  val to_int : CCFloat.t -> int
+  val of_int : int -> CCFloat.t
+  val to_string : CCFloat.t -> string
+  val of_string : string -> CCFloat.t
+  val equal_precision : epsilon:CCFloat.t -> CCFloat.t -> CCFloat.t -> bool
+  val classify : float -> CCFloat.fpclass
+  module Infix :
+    sig
+      val ( = ) : CCFloat.t -> CCFloat.t -> bool
+      val ( <> ) : CCFloat.t -> CCFloat.t -> bool
+      val ( < ) : CCFloat.t -> CCFloat.t -> bool
+      val ( > ) : CCFloat.t -> CCFloat.t -> bool
+      val ( <= ) : CCFloat.t -> CCFloat.t -> bool
+      val ( >= ) : CCFloat.t -> CCFloat.t -> bool
+    end
+  val ( = ) : t -> t -> bool
+  val ( <> ) : t -> t -> bool
+  val ( < ) : t -> t -> bool
+  val ( > ) : t -> t -> bool
+  val ( <= ) : t -> t -> bool
+  val ( >= ) : t -> t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCFormat.html b/0.17/type_CCFormat.html new file mode 100644 index 00000000..ecc9cbd1 --- /dev/null +++ b/0.17/type_CCFormat.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFormat + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type t = Format.formatter
+  type 'a printer = CCFormat.t -> '-> unit
+  val silent : 'CCFormat.printer
+  val unit : unit CCFormat.printer
+  val int : int CCFormat.printer
+  val string : string CCFormat.printer
+  val bool : bool CCFormat.printer
+  val float3 : float CCFormat.printer
+  val float : float CCFormat.printer
+  val char : char CCFormat.printer
+  val int32 : int32 CCFormat.printer
+  val int64 : int64 CCFormat.printer
+  val nativeint : nativeint CCFormat.printer
+  val string_quoted : string CCFormat.printer
+  val list :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCFormat.printer -> 'a list CCFormat.printer
+  val array :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCFormat.printer -> 'a array CCFormat.printer
+  val arrayi :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> (int * 'a) CCFormat.printer -> 'a array CCFormat.printer
+  val seq :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string ->
+    'CCFormat.printer -> 'CCFormat.sequence CCFormat.printer
+  val opt : 'CCFormat.printer -> 'a option CCFormat.printer
+  val pair :
+    ?sep:string ->
+    'CCFormat.printer -> 'CCFormat.printer -> ('a * 'b) CCFormat.printer
+  val triple :
+    ?sep:string ->
+    'CCFormat.printer ->
+    'CCFormat.printer ->
+    'CCFormat.printer -> ('a * 'b * 'c) CCFormat.printer
+  val quad :
+    ?sep:string ->
+    'CCFormat.printer ->
+    'CCFormat.printer ->
+    'CCFormat.printer ->
+    'CCFormat.printer -> ('a * 'b * 'c * 'd) CCFormat.printer
+  val within : string -> string -> 'CCFormat.printer -> 'CCFormat.printer
+  val map : ('-> 'b) -> 'CCFormat.printer -> 'CCFormat.printer
+  val vbox : ?i:int -> 'CCFormat.printer -> 'CCFormat.printer
+  val hvbox : ?i:int -> 'CCFormat.printer -> 'CCFormat.printer
+  val hovbox : ?i:int -> 'CCFormat.printer -> 'CCFormat.printer
+  val hbox : 'CCFormat.printer -> 'CCFormat.printer
+  val set_color_tag_handling : CCFormat.t -> unit
+  val set_color_default : bool -> unit
+  val with_color : string -> 'CCFormat.printer -> 'CCFormat.printer
+  val with_colorf :
+    string ->
+    CCFormat.t -> ('a, CCFormat.t, unit, unit) Pervasives.format4 -> 'a
+  val output : CCFormat.t -> 'CCFormat.printer -> '-> unit
+  val to_string : 'CCFormat.printer -> '-> string
+  val stdout : CCFormat.t
+  val stderr : CCFormat.t
+  val sprintf : ('a, CCFormat.t, unit, string) Pervasives.format4 -> 'a
+  val sprintf_no_color :
+    ('a, CCFormat.t, unit, string) Pervasives.format4 -> 'a
+  val fprintf : CCFormat.t -> ('a, CCFormat.t, unit) Pervasives.format -> 'a
+  val ksprintf :
+    f:(string -> 'b) ->
+    ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
+  val to_file :
+    string -> ('a, CCFormat.t, unit, unit) Pervasives.format4 -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCFun.Monad.html b/0.17/type_CCFun.Monad.html new file mode 100644 index 00000000..20400aff --- /dev/null +++ b/0.17/type_CCFun.Monad.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFun.Monad + + +functor (X : sig type t end->
+  sig
+    type 'a t = X.t -> 'a
+    val return : '-> 'CCFun.Monad.t
+    val ( >|= ) : 'CCFun.Monad.t -> ('-> 'b) -> 'CCFun.Monad.t
+    val ( >>= ) :
+      'CCFun.Monad.t -> ('-> 'CCFun.Monad.t) -> 'CCFun.Monad.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCFun.html b/0.17/type_CCFun.html new file mode 100644 index 00000000..139e0fd5 --- /dev/null +++ b/0.17/type_CCFun.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCFun + + +sig
+  val ( |> ) : '-> ('-> 'b) -> 'b
+  val compose : ('-> 'b) -> ('-> 'c) -> '-> 'c
+  val compose_binop : ('-> 'b) -> ('-> '-> 'c) -> '-> '-> 'c
+  val ( %> ) : ('-> 'b) -> ('-> 'c) -> '-> 'c
+  val ( @@ ) : ('-> 'b) -> '-> 'b
+  val id : '-> 'a
+  val const : '-> '-> 'a
+  val flip : ('-> '-> 'c) -> '-> '-> 'c
+  val curry : ('a * '-> 'c) -> '-> '-> 'c
+  val uncurry : ('-> '-> 'c) -> 'a * '-> 'c
+  val tap : ('-> 'b) -> '-> 'a
+  val ( % ) : ('-> 'c) -> ('-> 'b) -> '-> 'c
+  val lexicographic :
+    ('-> '-> int) -> ('-> '-> int) -> '-> '-> int
+  val finally : h:(unit -> 'b) -> f:(unit -> 'a) -> 'a
+  val finally1 : h:(unit -> 'c) -> ('-> 'b) -> '-> 'b
+  val finally2 : h:(unit -> 'd) -> ('-> '-> 'c) -> '-> '-> 'c
+  module Monad :
+    functor (X : sig type t end->
+      sig
+        type 'a t = X.t -> 'a
+        val return : '-> 'CCFun.Monad.t
+        val ( >|= ) : 'CCFun.Monad.t -> ('-> 'b) -> 'CCFun.Monad.t
+        val ( >>= ) :
+          'CCFun.Monad.t -> ('-> 'CCFun.Monad.t) -> 'CCFun.Monad.t
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.Dot.html b/0.17/type_CCGraph.Dot.html new file mode 100644 index 00000000..6e01aa2b --- /dev/null +++ b/0.17/type_CCGraph.Dot.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Dot + + +sig
+  type attribute =
+      [ `Color of string
+      | `Label of string
+      | `Other of string * string
+      | `Shape of string
+      | `Style of string
+      | `Weight of int ]
+  type vertex_state
+  val pp :
+    ?tbl:('v, CCGraph.Dot.vertex_state) CCGraph.table ->
+    ?eq:('-> '-> bool) ->
+    ?attrs_v:('-> CCGraph.Dot.attribute list) ->
+    ?attrs_e:('-> CCGraph.Dot.attribute list) ->
+    ?name:string ->
+    graph:('v, 'e) CCGraph.t -> Format.formatter -> '-> unit
+  val pp_seq :
+    ?tbl:('v, CCGraph.Dot.vertex_state) CCGraph.table ->
+    ?eq:('-> '-> bool) ->
+    ?attrs_v:('-> CCGraph.Dot.attribute list) ->
+    ?attrs_e:('-> CCGraph.Dot.attribute list) ->
+    ?name:string ->
+    graph:('v, 'e) CCGraph.t ->
+    Format.formatter -> 'CCGraph.sequence -> unit
+  val with_out : string -> (Format.formatter -> 'a) -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.LazyTree.html b/0.17/type_CCGraph.LazyTree.html new file mode 100644 index 00000000..f3949ddc --- /dev/null +++ b/0.17/type_CCGraph.LazyTree.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.LazyTree + + +sig
+  type ('v, 'e) t =
+      Vertex of 'v * ('e * ('v, 'e) CCGraph.LazyTree.t) list Lazy.t
+  val map_v :
+    ('-> 'b) -> ('a, 'e) CCGraph.LazyTree.t -> ('b, 'e) CCGraph.LazyTree.t
+  val fold_v :
+    ('acc -> '-> 'acc) -> 'acc -> ('v, 'a) CCGraph.LazyTree.t -> 'acc
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.MAP.html b/0.17/type_CCGraph.MAP.html new file mode 100644 index 00000000..0ed19efb --- /dev/null +++ b/0.17/type_CCGraph.MAP.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.MAP + + +sig
+  type vertex
+  type t
+  val as_graph :
+    CCGraph.MAP.t ->
+    (CCGraph.MAP.vertex, CCGraph.MAP.vertex * CCGraph.MAP.vertex)
+    CCGraph.graph
+  val empty : CCGraph.MAP.t
+  val add_edge :
+    CCGraph.MAP.vertex ->
+    CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+  val remove_edge :
+    CCGraph.MAP.vertex ->
+    CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+  val add : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+  val remove : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+  val union : CCGraph.MAP.t -> CCGraph.MAP.t -> CCGraph.MAP.t
+  val vertices : CCGraph.MAP.t -> CCGraph.MAP.vertex CCGraph.sequence
+  val vertices_l : CCGraph.MAP.t -> CCGraph.MAP.vertex list
+  val of_list :
+    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list -> CCGraph.MAP.t
+  val add_list :
+    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list ->
+    CCGraph.MAP.t -> CCGraph.MAP.t
+  val to_list :
+    CCGraph.MAP.t -> (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list
+  val of_seq :
+    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
+    CCGraph.MAP.t
+  val add_seq :
+    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
+    CCGraph.MAP.t -> CCGraph.MAP.t
+  val to_seq :
+    CCGraph.MAP.t ->
+    (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.Map.html b/0.17/type_CCGraph.Map.html new file mode 100644 index 00000000..b71d23a3 --- /dev/null +++ b/0.17/type_CCGraph.Map.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Map + + +functor (O : Map.OrderedType->
+  sig
+    type vertex = O.t
+    type t
+    val as_graph : t -> (vertex, vertex * vertex) graph
+    val empty : t
+    val add_edge : vertex -> vertex -> t -> t
+    val remove_edge : vertex -> vertex -> t -> t
+    val add : vertex -> t -> t
+    val remove : vertex -> t -> t
+    val union : t -> t -> t
+    val vertices : t -> vertex sequence
+    val vertices_l : t -> vertex list
+    val of_list : (vertex * vertex) list -> t
+    val add_list : (vertex * vertex) list -> t -> t
+    val to_list : t -> (vertex * vertex) list
+    val of_seq : (vertex * vertex) sequence -> t
+    val add_seq : (vertex * vertex) sequence -> t -> t
+    val to_seq : t -> (vertex * vertex) sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCGraph.Seq.html b/0.17/type_CCGraph.Seq.html new file mode 100644 index 00000000..9e3993ac --- /dev/null +++ b/0.17/type_CCGraph.Seq.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Seq + + +sig
+  type 'a t = 'CCGraph.sequence
+  val return : '-> 'CCGraph.sequence
+  val ( >>= ) :
+    'CCGraph.Seq.t -> ('-> 'CCGraph.Seq.t) -> 'CCGraph.Seq.t
+  val map : ('-> 'b) -> 'CCGraph.Seq.t -> 'CCGraph.Seq.t
+  val filter_map : ('-> 'b option) -> 'CCGraph.Seq.t -> 'CCGraph.Seq.t
+  val iter : ('-> unit) -> 'CCGraph.Seq.t -> unit
+  val fold : ('-> '-> 'b) -> '-> 'CCGraph.Seq.t -> 'b
+  val to_list : 'CCGraph.Seq.t -> 'a list
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.Traverse.Event.html b/0.17/type_CCGraph.Traverse.Event.html new file mode 100644 index 00000000..a783ae5c --- /dev/null +++ b/0.17/type_CCGraph.Traverse.Event.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Traverse.Event + + +sig
+  type edge_kind = [ `Back | `Cross | `Forward ]
+  type ('v, 'e) t =
+      [ `Edge of 'e * CCGraph.Traverse.Event.edge_kind
+      | `Enter of 'v * int * 'CCGraph.Traverse.path
+      | `Exit of 'v ]
+  val get_vertex :
+    ('v, 'e) CCGraph.Traverse.Event.t -> ('v * [ `Enter | `Exit ]) option
+  val get_enter : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+  val get_exit : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+  val get_edge : ('v, 'e) CCGraph.Traverse.Event.t -> 'e option
+  val get_edge_kind :
+    ('v, 'e) CCGraph.Traverse.Event.t ->
+    ('e * CCGraph.Traverse.Event.edge_kind) option
+  val dfs :
+    ?tbl:'CCGraph.set ->
+    ?eq:('-> '-> bool) ->
+    graph:('v, 'e) CCGraph.graph ->
+    'CCGraph.sequence ->
+    ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+  val dfs_tag :
+    ?eq:('-> '-> bool) ->
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.graph ->
+    'CCGraph.sequence ->
+    ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.Traverse.html b/0.17/type_CCGraph.Traverse.html new file mode 100644 index 00000000..aca70014 --- /dev/null +++ b/0.17/type_CCGraph.Traverse.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph.Traverse + + +sig
+  type 'e path = 'e list
+  val generic :
+    ?tbl:'CCGraph.set ->
+    bag:'CCGraph.bag ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val generic_tag :
+    tags:'CCGraph.tag_set ->
+    bag:'CCGraph.bag ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val dfs :
+    ?tbl:'CCGraph.set ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val dfs_tag :
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val bfs :
+    ?tbl:'CCGraph.set ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val bfs_tag :
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'CCGraph.sequence_once
+  val dijkstra :
+    ?tbl:'CCGraph.set ->
+    ?dist:('-> int) ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence ->
+    ('v * int * 'CCGraph.Traverse.path) CCGraph.sequence_once
+  val dijkstra_tag :
+    ?dist:('-> int) ->
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence ->
+    ('v * int * 'CCGraph.Traverse.path) CCGraph.sequence_once
+  module Event :
+    sig
+      type edge_kind = [ `Back | `Cross | `Forward ]
+      type ('v, 'e) t =
+          [ `Edge of 'e * CCGraph.Traverse.Event.edge_kind
+          | `Enter of 'v * int * 'CCGraph.Traverse.path
+          | `Exit of 'v ]
+      val get_vertex :
+        ('v, 'e) CCGraph.Traverse.Event.t -> ('v * [ `Enter | `Exit ]) option
+      val get_enter : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+      val get_exit : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+      val get_edge : ('v, 'e) CCGraph.Traverse.Event.t -> 'e option
+      val get_edge_kind :
+        ('v, 'e) CCGraph.Traverse.Event.t ->
+        ('e * CCGraph.Traverse.Event.edge_kind) option
+      val dfs :
+        ?tbl:'CCGraph.set ->
+        ?eq:('-> '-> bool) ->
+        graph:('v, 'e) CCGraph.graph ->
+        'CCGraph.sequence ->
+        ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+      val dfs_tag :
+        ?eq:('-> '-> bool) ->
+        tags:'CCGraph.tag_set ->
+        graph:('v, 'e) CCGraph.graph ->
+        'CCGraph.sequence ->
+        ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCGraph.html b/0.17/type_CCGraph.html new file mode 100644 index 00000000..de53f884 --- /dev/null +++ b/0.17/type_CCGraph.html @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCGraph + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a sequence_once = 'CCGraph.sequence
+  exception Sequence_once
+  module Seq :
+    sig
+      type 'a t = 'CCGraph.sequence
+      val return : '-> 'CCGraph.sequence
+      val ( >>= ) :
+        'CCGraph.Seq.t -> ('-> 'CCGraph.Seq.t) -> 'CCGraph.Seq.t
+      val map : ('-> 'b) -> 'CCGraph.Seq.t -> 'CCGraph.Seq.t
+      val filter_map :
+        ('-> 'b option) -> 'CCGraph.Seq.t -> 'CCGraph.Seq.t
+      val iter : ('-> unit) -> 'CCGraph.Seq.t -> unit
+      val fold : ('-> '-> 'b) -> '-> 'CCGraph.Seq.t -> 'b
+      val to_list : 'CCGraph.Seq.t -> 'a list
+    end
+  type ('v, 'e) t = {
+    children : '-> 'CCGraph.sequence;
+    origin : '-> 'v;
+    dest : '-> 'v;
+  }
+  type ('v, 'e) graph = ('v, 'e) CCGraph.t
+  val make :
+    origin:('-> 'v) ->
+    dest:('-> 'v) -> ('-> 'CCGraph.sequence) -> ('v, 'e) CCGraph.t
+  val make_labelled_tuple :
+    ('-> ('a * 'v) CCGraph.sequence) -> ('v, 'v * 'a * 'v) CCGraph.t
+  val make_tuple : ('-> 'CCGraph.sequence) -> ('v, 'v * 'v) CCGraph.t
+  type 'v tag_set = { get_tag : '-> bool; set_tag : '-> unit; }
+  type ('k, 'a) table = {
+    mem : '-> bool;
+    find : '-> 'a;
+    add : '-> '-> unit;
+  }
+  type 'a set = ('a, unit) CCGraph.table
+  val mk_table :
+    ?eq:('-> '-> bool) ->
+    ?hash:('-> int) -> int -> ('k, 'a) CCGraph.table
+  val mk_map : ?cmp:('-> '-> int) -> unit -> ('k, 'a) CCGraph.table
+  type 'a bag = {
+    push : '-> unit;
+    is_empty : unit -> bool;
+    pop : unit -> 'a;
+  }
+  val mk_queue : unit -> 'CCGraph.bag
+  val mk_stack : unit -> 'CCGraph.bag
+  val mk_heap : leq:('-> '-> bool) -> 'CCGraph.bag
+  module Traverse :
+    sig
+      type 'e path = 'e list
+      val generic :
+        ?tbl:'CCGraph.set ->
+        bag:'CCGraph.bag ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val generic_tag :
+        tags:'CCGraph.tag_set ->
+        bag:'CCGraph.bag ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val dfs :
+        ?tbl:'CCGraph.set ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val dfs_tag :
+        tags:'CCGraph.tag_set ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val bfs :
+        ?tbl:'CCGraph.set ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val bfs_tag :
+        tags:'CCGraph.tag_set ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence -> 'CCGraph.sequence_once
+      val dijkstra :
+        ?tbl:'CCGraph.set ->
+        ?dist:('-> int) ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence ->
+        ('v * int * 'CCGraph.Traverse.path) CCGraph.sequence_once
+      val dijkstra_tag :
+        ?dist:('-> int) ->
+        tags:'CCGraph.tag_set ->
+        graph:('v, 'e) CCGraph.t ->
+        'CCGraph.sequence ->
+        ('v * int * 'CCGraph.Traverse.path) CCGraph.sequence_once
+      module Event :
+        sig
+          type edge_kind = [ `Back | `Cross | `Forward ]
+          type ('v, 'e) t =
+              [ `Edge of 'e * CCGraph.Traverse.Event.edge_kind
+              | `Enter of 'v * int * 'CCGraph.Traverse.path
+              | `Exit of 'v ]
+          val get_vertex :
+            ('v, 'e) CCGraph.Traverse.Event.t ->
+            ('v * [ `Enter | `Exit ]) option
+          val get_enter : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+          val get_exit : ('v, 'e) CCGraph.Traverse.Event.t -> 'v option
+          val get_edge : ('v, 'e) CCGraph.Traverse.Event.t -> 'e option
+          val get_edge_kind :
+            ('v, 'e) CCGraph.Traverse.Event.t ->
+            ('e * CCGraph.Traverse.Event.edge_kind) option
+          val dfs :
+            ?tbl:'CCGraph.set ->
+            ?eq:('-> '-> bool) ->
+            graph:('v, 'e) CCGraph.graph ->
+            'CCGraph.sequence ->
+            ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+          val dfs_tag :
+            ?eq:('-> '-> bool) ->
+            tags:'CCGraph.tag_set ->
+            graph:('v, 'e) CCGraph.graph ->
+            'CCGraph.sequence ->
+            ('v, 'e) CCGraph.Traverse.Event.t CCGraph.sequence_once
+        end
+    end
+  exception Has_cycle
+  val topo_sort :
+    ?eq:('-> '-> bool) ->
+    ?rev:bool ->
+    ?tbl:'CCGraph.set ->
+    graph:('v, 'e) CCGraph.t -> 'CCGraph.sequence -> 'v list
+  val topo_sort_tag :
+    ?eq:('-> '-> bool) ->
+    ?rev:bool ->
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.t -> 'CCGraph.sequence -> 'v list
+  module LazyTree :
+    sig
+      type ('v, 'e) t =
+          Vertex of 'v * ('e * ('v, 'e) CCGraph.LazyTree.t) list Lazy.t
+      val map_v :
+        ('-> 'b) ->
+        ('a, 'e) CCGraph.LazyTree.t -> ('b, 'e) CCGraph.LazyTree.t
+      val fold_v :
+        ('acc -> '-> 'acc) -> 'acc -> ('v, 'a) CCGraph.LazyTree.t -> 'acc
+    end
+  val spanning_tree :
+    ?tbl:'CCGraph.set ->
+    graph:('v, 'e) CCGraph.t -> '-> ('v, 'e) CCGraph.LazyTree.t
+  val spanning_tree_tag :
+    tags:'CCGraph.tag_set ->
+    graph:('v, 'e) CCGraph.t -> '-> ('v, 'e) CCGraph.LazyTree.t
+  type 'v scc_state
+  val scc :
+    ?tbl:('v, 'CCGraph.scc_state) CCGraph.table ->
+    graph:('v, 'e) CCGraph.t ->
+    'CCGraph.sequence -> 'v list CCGraph.sequence_once
+  module Dot :
+    sig
+      type attribute =
+          [ `Color of string
+          | `Label of string
+          | `Other of string * string
+          | `Shape of string
+          | `Style of string
+          | `Weight of int ]
+      type vertex_state
+      val pp :
+        ?tbl:('v, CCGraph.Dot.vertex_state) CCGraph.table ->
+        ?eq:('-> '-> bool) ->
+        ?attrs_v:('-> CCGraph.Dot.attribute list) ->
+        ?attrs_e:('-> CCGraph.Dot.attribute list) ->
+        ?name:string ->
+        graph:('v, 'e) CCGraph.t -> Format.formatter -> '-> unit
+      val pp_seq :
+        ?tbl:('v, CCGraph.Dot.vertex_state) CCGraph.table ->
+        ?eq:('-> '-> bool) ->
+        ?attrs_v:('-> CCGraph.Dot.attribute list) ->
+        ?attrs_e:('-> CCGraph.Dot.attribute list) ->
+        ?name:string ->
+        graph:('v, 'e) CCGraph.t ->
+        Format.formatter -> 'CCGraph.sequence -> unit
+      val with_out : string -> (Format.formatter -> 'a) -> 'a
+    end
+  type ('v, 'e) mut_graph =
+      < add_edge : '-> unit; graph : ('v, 'e) CCGraph.t;
+        remove : '-> unit >
+  val mk_mut_tbl :
+    ?eq:('-> '-> bool) ->
+    ?hash:('-> int) -> int -> ('v, 'v * 'a * 'v) CCGraph.mut_graph
+  module type MAP =
+    sig
+      type vertex
+      type t
+      val as_graph :
+        CCGraph.MAP.t ->
+        (CCGraph.MAP.vertex, CCGraph.MAP.vertex * CCGraph.MAP.vertex)
+        CCGraph.graph
+      val empty : CCGraph.MAP.t
+      val add_edge :
+        CCGraph.MAP.vertex ->
+        CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+      val remove_edge :
+        CCGraph.MAP.vertex ->
+        CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+      val add : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+      val remove : CCGraph.MAP.vertex -> CCGraph.MAP.t -> CCGraph.MAP.t
+      val union : CCGraph.MAP.t -> CCGraph.MAP.t -> CCGraph.MAP.t
+      val vertices : CCGraph.MAP.t -> CCGraph.MAP.vertex CCGraph.sequence
+      val vertices_l : CCGraph.MAP.t -> CCGraph.MAP.vertex list
+      val of_list :
+        (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list -> CCGraph.MAP.t
+      val add_list :
+        (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list ->
+        CCGraph.MAP.t -> CCGraph.MAP.t
+      val to_list :
+        CCGraph.MAP.t -> (CCGraph.MAP.vertex * CCGraph.MAP.vertex) list
+      val of_seq :
+        (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
+        CCGraph.MAP.t
+      val add_seq :
+        (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence ->
+        CCGraph.MAP.t -> CCGraph.MAP.t
+      val to_seq :
+        CCGraph.MAP.t ->
+        (CCGraph.MAP.vertex * CCGraph.MAP.vertex) CCGraph.sequence
+    end
+  module Map :
+    functor (O : Map.OrderedType->
+      sig
+        type vertex = O.t
+        type t
+        val as_graph : t -> (vertex, vertex * vertex) graph
+        val empty : t
+        val add_edge : vertex -> vertex -> t -> t
+        val remove_edge : vertex -> vertex -> t -> t
+        val add : vertex -> t -> t
+        val remove : vertex -> t -> t
+        val union : t -> t -> t
+        val vertices : t -> vertex sequence
+        val vertices_l : t -> vertex list
+        val of_list : (vertex * vertex) list -> t
+        val add_list : (vertex * vertex) list -> t -> t
+        val to_list : t -> (vertex * vertex) list
+        val of_seq : (vertex * vertex) sequence -> t
+        val add_seq : (vertex * vertex) sequence -> t -> t
+        val to_seq : t -> (vertex * vertex) sequence
+      end
+  val of_list :
+    ?eq:('-> '-> bool) -> ('v * 'v) list -> ('v, 'v * 'v) CCGraph.t
+  val of_hashtbl : ('v, 'v list) Hashtbl.t -> ('v, 'v * 'v) CCGraph.t
+  val of_fun : ('-> 'v list) -> ('v, 'v * 'v) CCGraph.t
+  val divisors_graph : (int, int * int) CCGraph.t
+end
\ No newline at end of file diff --git a/0.17/type_CCHash.HASH.html b/0.17/type_CCHash.HASH.html new file mode 100644 index 00000000..fddcf218 --- /dev/null +++ b/0.17/type_CCHash.HASH.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.HASH + + +sig
+  type state
+  val int : int -> CCHash.HASH.state -> CCHash.HASH.state
+  val bool : bool -> CCHash.HASH.state -> CCHash.HASH.state
+  val char : char -> CCHash.HASH.state -> CCHash.HASH.state
+  val int32 : int32 -> CCHash.HASH.state -> CCHash.HASH.state
+  val int64 : int64 -> CCHash.HASH.state -> CCHash.HASH.state
+  val nativeint : nativeint -> CCHash.HASH.state -> CCHash.HASH.state
+  val slice : string -> int -> int -> CCHash.HASH.state -> CCHash.HASH.state
+end
\ No newline at end of file diff --git a/0.17/type_CCHash.Make.html b/0.17/type_CCHash.Make.html new file mode 100644 index 00000000..6b37ea45 --- /dev/null +++ b/0.17/type_CCHash.Make.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.Make + + +functor (H : HASH->
+  sig
+    type state = H.state
+    val int : int -> state -> state
+    val bool : bool -> state -> state
+    val char : char -> state -> state
+    val int32 : int32 -> state -> state
+    val int64 : int64 -> state -> state
+    val nativeint : nativeint -> state -> state
+    val slice : string -> int -> int -> state -> state
+    type 'a hash_fun = '-> state -> state
+    val string : string hash_fun
+    val list : 'a hash_fun -> 'a list hash_fun
+    val array : 'a hash_fun -> 'a array hash_fun
+    val opt : 'a hash_fun -> 'a option hash_fun
+    val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+    val triple :
+      'a hash_fun -> 'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
+    val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+    val seq : 'a hash_fun -> 'a sequence hash_fun
+    val gen : 'a hash_fun -> 'a gen hash_fun
+    val klist : 'a hash_fun -> 'a klist hash_fun
+  end
\ No newline at end of file diff --git a/0.17/type_CCHash.S.html b/0.17/type_CCHash.S.html new file mode 100644 index 00000000..4611e552 --- /dev/null +++ b/0.17/type_CCHash.S.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash.S + + +sig
+  type state
+  val int : int -> state -> state
+  val bool : bool -> state -> state
+  val char : char -> state -> state
+  val int32 : int32 -> state -> state
+  val int64 : int64 -> state -> state
+  val nativeint : nativeint -> state -> state
+  val slice : string -> int -> int -> state -> state
+  type 'a hash_fun = '-> CCHash.state -> CCHash.state
+  val string : string CCHash.S.hash_fun
+  val list : 'CCHash.S.hash_fun -> 'a list CCHash.S.hash_fun
+  val array : 'CCHash.S.hash_fun -> 'a array CCHash.S.hash_fun
+  val opt : 'CCHash.S.hash_fun -> 'a option CCHash.S.hash_fun
+  val pair :
+    'CCHash.S.hash_fun ->
+    'CCHash.S.hash_fun -> ('a * 'b) CCHash.S.hash_fun
+  val triple :
+    'CCHash.S.hash_fun ->
+    'CCHash.S.hash_fun ->
+    'CCHash.S.hash_fun -> ('a * 'b * 'c) CCHash.S.hash_fun
+  val if_ :
+    bool ->
+    'CCHash.S.hash_fun -> 'CCHash.S.hash_fun -> 'CCHash.S.hash_fun
+  val seq : 'CCHash.S.hash_fun -> 'CCHash.sequence CCHash.S.hash_fun
+  val gen : 'CCHash.S.hash_fun -> 'CCHash.gen CCHash.S.hash_fun
+  val klist : 'CCHash.S.hash_fun -> 'CCHash.klist CCHash.S.hash_fun
+end
\ No newline at end of file diff --git a/0.17/type_CCHash.html b/0.17/type_CCHash.html new file mode 100644 index 00000000..69fcdf46 --- /dev/null +++ b/0.17/type_CCHash.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHash + + +sig
+  type t = int
+  type state
+  type 'a hash_fun = '-> CCHash.state -> CCHash.state
+  val init : CCHash.state
+  val finish : CCHash.state -> int
+  val apply : 'CCHash.hash_fun -> '-> int
+  val bool_ : bool CCHash.hash_fun
+  val char_ : char CCHash.hash_fun
+  val int_ : int CCHash.hash_fun
+  val string_ : string CCHash.hash_fun
+  val int32_ : int32 CCHash.hash_fun
+  val int64_ : int64 CCHash.hash_fun
+  val nativeint_ : nativeint CCHash.hash_fun
+  val list_ : 'CCHash.hash_fun -> 'a list CCHash.hash_fun
+  val array_ : 'CCHash.hash_fun -> 'a array CCHash.hash_fun
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'CCHash.klist | `Nil ]
+  module type HASH =
+    sig
+      type state
+      val int : int -> CCHash.HASH.state -> CCHash.HASH.state
+      val bool : bool -> CCHash.HASH.state -> CCHash.HASH.state
+      val char : char -> CCHash.HASH.state -> CCHash.HASH.state
+      val int32 : int32 -> CCHash.HASH.state -> CCHash.HASH.state
+      val int64 : int64 -> CCHash.HASH.state -> CCHash.HASH.state
+      val nativeint : nativeint -> CCHash.HASH.state -> CCHash.HASH.state
+      val slice :
+        string -> int -> int -> CCHash.HASH.state -> CCHash.HASH.state
+    end
+  module type S =
+    sig
+      type state
+      val int : int -> state -> state
+      val bool : bool -> state -> state
+      val char : char -> state -> state
+      val int32 : int32 -> state -> state
+      val int64 : int64 -> state -> state
+      val nativeint : nativeint -> state -> state
+      val slice : string -> int -> int -> state -> state
+      type 'a hash_fun = '-> CCHash.state -> CCHash.state
+      val string : string CCHash.S.hash_fun
+      val list : 'CCHash.S.hash_fun -> 'a list CCHash.S.hash_fun
+      val array : 'CCHash.S.hash_fun -> 'a array CCHash.S.hash_fun
+      val opt : 'CCHash.S.hash_fun -> 'a option CCHash.S.hash_fun
+      val pair :
+        'CCHash.S.hash_fun ->
+        'CCHash.S.hash_fun -> ('a * 'b) CCHash.S.hash_fun
+      val triple :
+        'CCHash.S.hash_fun ->
+        'CCHash.S.hash_fun ->
+        'CCHash.S.hash_fun -> ('a * 'b * 'c) CCHash.S.hash_fun
+      val if_ :
+        bool ->
+        'CCHash.S.hash_fun -> 'CCHash.S.hash_fun -> 'CCHash.S.hash_fun
+      val seq : 'CCHash.S.hash_fun -> 'CCHash.sequence CCHash.S.hash_fun
+      val gen : 'CCHash.S.hash_fun -> 'CCHash.gen CCHash.S.hash_fun
+      val klist : 'CCHash.S.hash_fun -> 'CCHash.klist CCHash.S.hash_fun
+    end
+  module Make :
+    functor (H : HASH->
+      sig
+        type state = H.state
+        val int : int -> state -> state
+        val bool : bool -> state -> state
+        val char : char -> state -> state
+        val int32 : int32 -> state -> state
+        val int64 : int64 -> state -> state
+        val nativeint : nativeint -> state -> state
+        val slice : string -> int -> int -> state -> state
+        type 'a hash_fun = '-> state -> state
+        val string : string hash_fun
+        val list : 'a hash_fun -> 'a list hash_fun
+        val array : 'a hash_fun -> 'a array hash_fun
+        val opt : 'a hash_fun -> 'a option hash_fun
+        val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
+        val triple :
+          'a hash_fun ->
+          'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
+        val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun
+        val seq : 'a hash_fun -> 'a sequence hash_fun
+        val gen : 'a hash_fun -> 'a gen hash_fun
+        val klist : 'a hash_fun -> 'a klist hash_fun
+      end
+  val int : int -> state -> state
+  val bool : bool -> state -> state
+  val char : char -> state -> state
+  val int32 : int32 -> state -> state
+  val int64 : int64 -> state -> state
+  val nativeint : nativeint -> state -> state
+  val slice : string -> int -> int -> state -> state
+  val string : string hash_fun
+  val list : 'a hash_fun -> 'a list hash_fun
+  val array : 'a hash_fun -> 'a array hash_fun
+  val opt : 'CCHash.hash_fun -> 'a option CCHash.hash_fun
+  val pair :
+    'CCHash.hash_fun -> 'CCHash.hash_fun -> ('a * 'b) CCHash.hash_fun
+  val triple :
+    'CCHash.hash_fun ->
+    'CCHash.hash_fun ->
+    'CCHash.hash_fun -> ('a * 'b * 'c) CCHash.hash_fun
+  val if_ :
+    bool -> 'CCHash.hash_fun -> 'CCHash.hash_fun -> 'CCHash.hash_fun
+  val seq : 'CCHash.hash_fun -> 'CCHash.sequence CCHash.hash_fun
+  val gen : 'CCHash.hash_fun -> 'CCHash.gen CCHash.hash_fun
+  val klist : 'CCHash.hash_fun -> 'CCHash.klist CCHash.hash_fun
+end
\ No newline at end of file diff --git a/0.17/type_CCHashSet.ELEMENT.html b/0.17/type_CCHashSet.ELEMENT.html new file mode 100644 index 00000000..36d33d30 --- /dev/null +++ b/0.17/type_CCHashSet.ELEMENT.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.ELEMENT + + +sig
+  type t
+  val equal : CCHashSet.ELEMENT.t -> CCHashSet.ELEMENT.t -> bool
+  val hash : CCHashSet.ELEMENT.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCHashSet.Make.html b/0.17/type_CCHashSet.Make.html new file mode 100644 index 00000000..cc8beb8a --- /dev/null +++ b/0.17/type_CCHashSet.Make.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.Make + + +functor (E : ELEMENT->
+  sig
+    type t
+    type elt = E.t
+    val create : int -> t
+    val singleton : elt -> t
+    val clear : t -> unit
+    val copy : t -> t
+    val copy_into : into:t -> t -> unit
+    val insert : t -> elt -> unit
+    val remove : t -> elt -> unit
+    val cardinal : t -> int
+    val mem : t -> elt -> bool
+    val find_exn : t -> elt -> elt
+    val find : t -> elt -> elt option
+    val inter : t -> t -> t
+    val inter_mut : into:t -> t -> unit
+    val union : t -> t -> t
+    val union_mut : into:t -> t -> unit
+    val diff : t -> t -> t
+    val subset : t -> t -> bool
+    val equal : t -> t -> bool
+    val for_all : (elt -> bool) -> t -> bool
+    val exists : (elt -> bool) -> t -> bool
+    val iter : (elt -> unit) -> t -> unit
+    val fold : ('-> elt -> 'a) -> '-> t -> 'a
+    val elements : t -> elt list
+    val of_list : elt list -> t
+    val to_seq : t -> elt sequence
+    val of_seq : elt sequence -> t
+    val add_seq : t -> elt sequence -> unit
+    val pp : ?sep:string -> elt printer -> t printer
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashSet.S.html b/0.17/type_CCHashSet.S.html new file mode 100644 index 00000000..d0a504f2 --- /dev/null +++ b/0.17/type_CCHashSet.S.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet.S + + +sig
+  type t
+  type elt
+  val create : int -> CCHashSet.S.t
+  val singleton : CCHashSet.S.elt -> CCHashSet.S.t
+  val clear : CCHashSet.S.t -> unit
+  val copy : CCHashSet.S.t -> CCHashSet.S.t
+  val copy_into : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+  val insert : CCHashSet.S.t -> CCHashSet.S.elt -> unit
+  val remove : CCHashSet.S.t -> CCHashSet.S.elt -> unit
+  val cardinal : CCHashSet.S.t -> int
+  val mem : CCHashSet.S.t -> CCHashSet.S.elt -> bool
+  val find_exn : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt
+  val find : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt option
+  val inter : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+  val inter_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+  val union : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+  val union_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+  val diff : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+  val subset : CCHashSet.S.t -> CCHashSet.S.t -> bool
+  val equal : CCHashSet.S.t -> CCHashSet.S.t -> bool
+  val for_all : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool
+  val exists : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool
+  val iter : (CCHashSet.S.elt -> unit) -> CCHashSet.S.t -> unit
+  val fold : ('-> CCHashSet.S.elt -> 'a) -> '-> CCHashSet.S.t -> 'a
+  val elements : CCHashSet.S.t -> CCHashSet.S.elt list
+  val of_list : CCHashSet.S.elt list -> CCHashSet.S.t
+  val to_seq : CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence
+  val of_seq : CCHashSet.S.elt CCHashSet.sequence -> CCHashSet.S.t
+  val add_seq : CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence -> unit
+  val pp :
+    ?sep:string ->
+    CCHashSet.S.elt CCHashSet.printer -> CCHashSet.S.t CCHashSet.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCHashSet.html b/0.17/type_CCHashSet.html new file mode 100644 index 00000000..c6ffea83 --- /dev/null +++ b/0.17/type_CCHashSet.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashSet + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Format.formatter -> '-> unit
+  module type S =
+    sig
+      type t
+      type elt
+      val create : int -> CCHashSet.S.t
+      val singleton : CCHashSet.S.elt -> CCHashSet.S.t
+      val clear : CCHashSet.S.t -> unit
+      val copy : CCHashSet.S.t -> CCHashSet.S.t
+      val copy_into : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+      val insert : CCHashSet.S.t -> CCHashSet.S.elt -> unit
+      val remove : CCHashSet.S.t -> CCHashSet.S.elt -> unit
+      val cardinal : CCHashSet.S.t -> int
+      val mem : CCHashSet.S.t -> CCHashSet.S.elt -> bool
+      val find_exn : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt
+      val find : CCHashSet.S.t -> CCHashSet.S.elt -> CCHashSet.S.elt option
+      val inter : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+      val inter_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+      val union : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+      val union_mut : into:CCHashSet.S.t -> CCHashSet.S.t -> unit
+      val diff : CCHashSet.S.t -> CCHashSet.S.t -> CCHashSet.S.t
+      val subset : CCHashSet.S.t -> CCHashSet.S.t -> bool
+      val equal : CCHashSet.S.t -> CCHashSet.S.t -> bool
+      val for_all : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool
+      val exists : (CCHashSet.S.elt -> bool) -> CCHashSet.S.t -> bool
+      val iter : (CCHashSet.S.elt -> unit) -> CCHashSet.S.t -> unit
+      val fold : ('-> CCHashSet.S.elt -> 'a) -> '-> CCHashSet.S.t -> 'a
+      val elements : CCHashSet.S.t -> CCHashSet.S.elt list
+      val of_list : CCHashSet.S.elt list -> CCHashSet.S.t
+      val to_seq : CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence
+      val of_seq : CCHashSet.S.elt CCHashSet.sequence -> CCHashSet.S.t
+      val add_seq :
+        CCHashSet.S.t -> CCHashSet.S.elt CCHashSet.sequence -> unit
+      val pp :
+        ?sep:string ->
+        CCHashSet.S.elt CCHashSet.printer -> CCHashSet.S.t CCHashSet.printer
+    end
+  module type ELEMENT =
+    sig
+      type t
+      val equal : CCHashSet.ELEMENT.t -> CCHashSet.ELEMENT.t -> bool
+      val hash : CCHashSet.ELEMENT.t -> int
+    end
+  module Make :
+    functor (E : ELEMENT->
+      sig
+        type t
+        type elt = E.t
+        val create : int -> t
+        val singleton : elt -> t
+        val clear : t -> unit
+        val copy : t -> t
+        val copy_into : into:t -> t -> unit
+        val insert : t -> elt -> unit
+        val remove : t -> elt -> unit
+        val cardinal : t -> int
+        val mem : t -> elt -> bool
+        val find_exn : t -> elt -> elt
+        val find : t -> elt -> elt option
+        val inter : t -> t -> t
+        val inter_mut : into:t -> t -> unit
+        val union : t -> t -> t
+        val union_mut : into:t -> t -> unit
+        val diff : t -> t -> t
+        val subset : t -> t -> bool
+        val equal : t -> t -> bool
+        val for_all : (elt -> bool) -> t -> bool
+        val exists : (elt -> bool) -> t -> bool
+        val iter : (elt -> unit) -> t -> unit
+        val fold : ('-> elt -> 'a) -> '-> t -> 'a
+        val elements : t -> elt list
+        val of_list : elt list -> t
+        val to_seq : t -> elt sequence
+        val of_seq : elt sequence -> t
+        val add_seq : t -> elt sequence -> unit
+        val pp : ?sep:string -> elt printer -> t printer
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCHashTrie.KEY.html b/0.17/type_CCHashTrie.KEY.html new file mode 100644 index 00000000..c5750900 --- /dev/null +++ b/0.17/type_CCHashTrie.KEY.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.KEY + + +sig
+  type t
+  val equal : CCHashTrie.KEY.t -> CCHashTrie.KEY.t -> bool
+  val hash : CCHashTrie.KEY.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCHashTrie.Make.html b/0.17/type_CCHashTrie.Make.html new file mode 100644 index 00000000..faf39109 --- /dev/null +++ b/0.17/type_CCHashTrie.Make.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.Make + + +functor (K : KEY->
+  sig
+    type key = K.t
+    type 'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val singleton : key -> '-> 'a t
+    val add : key -> '-> 'a t -> 'a t
+    val mem : key -> 'a t -> bool
+    val get : key -> 'a t -> 'a option
+    val get_exn : key -> 'a t -> 'a
+    val remove : key -> 'a t -> 'a t
+    val update : key -> f:('a option -> 'a option) -> 'a t -> 'a t
+    val add_mut : id:Transient.t -> key -> '-> 'a t -> 'a t
+    val remove_mut : id:Transient.t -> key -> 'a t -> 'a t
+    val update_mut :
+      id:Transient.t -> key -> f:('a option -> 'a option) -> 'a t -> 'a t
+    val cardinal : 'a t -> int
+    val choose : 'a t -> (key * 'a) option
+    val choose_exn : 'a t -> key * 'a
+    val iter : f:(key -> '-> unit) -> 'a t -> unit
+    val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+    val to_list : 'a t -> (key * 'a) list
+    val add_list : 'a t -> (key * 'a) list -> 'a t
+    val add_list_mut : id:Transient.t -> 'a t -> (key * 'a) list -> 'a t
+    val of_list : (key * 'a) list -> 'a t
+    val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+    val add_seq_mut : id:Transient.t -> 'a t -> (key * 'a) sequence -> 'a t
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val add_gen : 'a t -> (key * 'a) gen -> 'a t
+    val add_gen_mut : id:Transient.t -> 'a t -> (key * 'a) gen -> 'a t
+    val of_gen : (key * 'a) gen -> 'a t
+    val to_gen : 'a t -> (key * 'a) gen
+    val print : key printer -> 'a printer -> 'a t printer
+    val as_tree : 'a t -> [ `L of int * (key * 'a) list | `N ] ktree
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashTrie.S.html b/0.17/type_CCHashTrie.S.html new file mode 100644 index 00000000..3fd7d88e --- /dev/null +++ b/0.17/type_CCHashTrie.S.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.S + + +sig
+  type key
+  type 'a t
+  val empty : 'CCHashTrie.S.t
+  val is_empty : 'CCHashTrie.S.t -> bool
+  val singleton : CCHashTrie.S.key -> '-> 'CCHashTrie.S.t
+  val add : CCHashTrie.S.key -> '-> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val mem : CCHashTrie.S.key -> 'CCHashTrie.S.t -> bool
+  val get : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'a option
+  val get_exn : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'a
+  val remove : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val update :
+    CCHashTrie.S.key ->
+    f:('a option -> 'a option) -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val add_mut :
+    id:CCHashTrie.Transient.t ->
+    CCHashTrie.S.key -> '-> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val remove_mut :
+    id:CCHashTrie.Transient.t ->
+    CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val update_mut :
+    id:CCHashTrie.Transient.t ->
+    CCHashTrie.S.key ->
+    f:('a option -> 'a option) -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+  val cardinal : 'CCHashTrie.S.t -> int
+  val choose : 'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) option
+  val choose_exn : 'CCHashTrie.S.t -> CCHashTrie.S.key * 'a
+  val iter : f:(CCHashTrie.S.key -> '-> unit) -> 'CCHashTrie.S.t -> unit
+  val fold :
+    f:('-> CCHashTrie.S.key -> '-> 'b) -> x:'-> 'CCHashTrie.S.t -> 'b
+  val to_list : 'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) list
+  val add_list :
+    'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+  val add_list_mut :
+    id:CCHashTrie.Transient.t ->
+    'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+  val of_list : (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+  val add_seq :
+    'CCHashTrie.S.t ->
+    (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+  val add_seq_mut :
+    id:CCHashTrie.Transient.t ->
+    'CCHashTrie.S.t ->
+    (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+  val of_seq :
+    (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+  val to_seq :
+    'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) CCHashTrie.sequence
+  val add_gen :
+    'CCHashTrie.S.t ->
+    (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+  val add_gen_mut :
+    id:CCHashTrie.Transient.t ->
+    'CCHashTrie.S.t ->
+    (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+  val of_gen : (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+  val to_gen : 'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) CCHashTrie.gen
+  val print :
+    CCHashTrie.S.key CCHashTrie.printer ->
+    'CCHashTrie.printer -> 'CCHashTrie.S.t CCHashTrie.printer
+  val as_tree :
+    'CCHashTrie.S.t ->
+    [ `L of int * (CCHashTrie.S.key * 'a) list | `N ] CCHashTrie.ktree
+end
\ No newline at end of file diff --git a/0.17/type_CCHashTrie.Transient.html b/0.17/type_CCHashTrie.Transient.html new file mode 100644 index 00000000..189b09be --- /dev/null +++ b/0.17/type_CCHashTrie.Transient.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie.Transient + + +sig
+  type t
+  val create : unit -> CCHashTrie.Transient.t
+  val equal : CCHashTrie.Transient.t -> CCHashTrie.Transient.t -> bool
+  val frozen : CCHashTrie.Transient.t -> bool
+  val active : CCHashTrie.Transient.t -> bool
+  val freeze : CCHashTrie.Transient.t -> unit
+  val with_ : (CCHashTrie.Transient.t -> 'a) -> 'a
+  exception Frozen
+end
\ No newline at end of file diff --git a/0.17/type_CCHashTrie.html b/0.17/type_CCHashTrie.html new file mode 100644 index 00000000..4b09f004 --- /dev/null +++ b/0.17/type_CCHashTrie.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashTrie + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a printer = Format.formatter -> '-> unit
+  type 'a ktree = unit -> [ `Nil | `Node of 'a * 'CCHashTrie.ktree list ]
+  module Transient :
+    sig
+      type t
+      val create : unit -> CCHashTrie.Transient.t
+      val equal : CCHashTrie.Transient.t -> CCHashTrie.Transient.t -> bool
+      val frozen : CCHashTrie.Transient.t -> bool
+      val active : CCHashTrie.Transient.t -> bool
+      val freeze : CCHashTrie.Transient.t -> unit
+      val with_ : (CCHashTrie.Transient.t -> 'a) -> 'a
+      exception Frozen
+    end
+  module type S =
+    sig
+      type key
+      type 'a t
+      val empty : 'CCHashTrie.S.t
+      val is_empty : 'CCHashTrie.S.t -> bool
+      val singleton : CCHashTrie.S.key -> '-> 'CCHashTrie.S.t
+      val add :
+        CCHashTrie.S.key -> '-> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val mem : CCHashTrie.S.key -> 'CCHashTrie.S.t -> bool
+      val get : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'a option
+      val get_exn : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'a
+      val remove : CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val update :
+        CCHashTrie.S.key ->
+        f:('a option -> 'a option) -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val add_mut :
+        id:CCHashTrie.Transient.t ->
+        CCHashTrie.S.key -> '-> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val remove_mut :
+        id:CCHashTrie.Transient.t ->
+        CCHashTrie.S.key -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val update_mut :
+        id:CCHashTrie.Transient.t ->
+        CCHashTrie.S.key ->
+        f:('a option -> 'a option) -> 'CCHashTrie.S.t -> 'CCHashTrie.S.t
+      val cardinal : 'CCHashTrie.S.t -> int
+      val choose : 'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) option
+      val choose_exn : 'CCHashTrie.S.t -> CCHashTrie.S.key * 'a
+      val iter :
+        f:(CCHashTrie.S.key -> '-> unit) -> 'CCHashTrie.S.t -> unit
+      val fold :
+        f:('-> CCHashTrie.S.key -> '-> 'b) ->
+        x:'-> 'CCHashTrie.S.t -> 'b
+      val to_list : 'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) list
+      val add_list :
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+      val add_list_mut :
+        id:CCHashTrie.Transient.t ->
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+      val of_list : (CCHashTrie.S.key * 'a) list -> 'CCHashTrie.S.t
+      val add_seq :
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+      val add_seq_mut :
+        id:CCHashTrie.Transient.t ->
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+      val of_seq :
+        (CCHashTrie.S.key * 'a) CCHashTrie.sequence -> 'CCHashTrie.S.t
+      val to_seq :
+        'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) CCHashTrie.sequence
+      val add_gen :
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+      val add_gen_mut :
+        id:CCHashTrie.Transient.t ->
+        'CCHashTrie.S.t ->
+        (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+      val of_gen :
+        (CCHashTrie.S.key * 'a) CCHashTrie.gen -> 'CCHashTrie.S.t
+      val to_gen :
+        'CCHashTrie.S.t -> (CCHashTrie.S.key * 'a) CCHashTrie.gen
+      val print :
+        CCHashTrie.S.key CCHashTrie.printer ->
+        'CCHashTrie.printer -> 'CCHashTrie.S.t CCHashTrie.printer
+      val as_tree :
+        'CCHashTrie.S.t ->
+        [ `L of int * (CCHashTrie.S.key * 'a) list | `N ] CCHashTrie.ktree
+    end
+  module type KEY =
+    sig
+      type t
+      val equal : CCHashTrie.KEY.t -> CCHashTrie.KEY.t -> bool
+      val hash : CCHashTrie.KEY.t -> int
+    end
+  module Make :
+    functor (K : KEY->
+      sig
+        type key = K.t
+        type 'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val singleton : key -> '-> 'a t
+        val add : key -> '-> 'a t -> 'a t
+        val mem : key -> 'a t -> bool
+        val get : key -> 'a t -> 'a option
+        val get_exn : key -> 'a t -> 'a
+        val remove : key -> 'a t -> 'a t
+        val update : key -> f:('a option -> 'a option) -> 'a t -> 'a t
+        val add_mut : id:Transient.t -> key -> '-> 'a t -> 'a t
+        val remove_mut : id:Transient.t -> key -> 'a t -> 'a t
+        val update_mut :
+          id:Transient.t -> key -> f:('a option -> 'a option) -> 'a t -> 'a t
+        val cardinal : 'a t -> int
+        val choose : 'a t -> (key * 'a) option
+        val choose_exn : 'a t -> key * 'a
+        val iter : f:(key -> '-> unit) -> 'a t -> unit
+        val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+        val to_list : 'a t -> (key * 'a) list
+        val add_list : 'a t -> (key * 'a) list -> 'a t
+        val add_list_mut : id:Transient.t -> 'a t -> (key * 'a) list -> 'a t
+        val of_list : (key * 'a) list -> 'a t
+        val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+        val add_seq_mut :
+          id:Transient.t -> 'a t -> (key * 'a) sequence -> 'a t
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val add_gen : 'a t -> (key * 'a) gen -> 'a t
+        val add_gen_mut : id:Transient.t -> 'a t -> (key * 'a) gen -> 'a t
+        val of_gen : (key * 'a) gen -> 'a t
+        val to_gen : 'a t -> (key * 'a) gen
+        val print : key printer -> 'a printer -> 'a t printer
+        val as_tree : 'a t -> [ `L of int * (key * 'a) list | `N ] ktree
+      end
+  val popcount : int -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCHashconsedSet.ELT.html b/0.17/type_CCHashconsedSet.ELT.html new file mode 100644 index 00000000..40c1a154 --- /dev/null +++ b/0.17/type_CCHashconsedSet.ELT.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.ELT + + +sig
+  type t
+  val compare : CCHashconsedSet.ELT.t -> CCHashconsedSet.ELT.t -> int
+  val hash : CCHashconsedSet.ELT.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCHashconsedSet.Make.html b/0.17/type_CCHashconsedSet.Make.html new file mode 100644 index 00000000..07d3006d --- /dev/null +++ b/0.17/type_CCHashconsedSet.Make.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.Make + + +functor (E : ELT->
+  sig
+    type elt = E.t
+    type t
+    val empty : t
+    val singleton : elt -> t
+    val doubleton : elt -> elt -> t
+    val mem : elt -> t -> bool
+    val equal : t -> t -> bool
+    val compare : t -> t -> int
+    val hash : t -> int
+    val add : elt -> t -> t
+    val remove : elt -> t -> t
+    val cardinal : t -> int
+    val iter : (elt -> unit) -> t -> unit
+    val fold : (elt -> '-> 'a) -> t -> '-> 'a
+    val choose : t -> elt option
+    val choose_exn : t -> elt
+    val union : t -> t -> t
+    val inter : t -> t -> t
+    val diff : t -> t -> t
+    type 'a sequence = ('-> unit) -> unit
+    type 'a gen = unit -> 'a option
+    val add_list : t -> elt list -> t
+    val of_list : elt list -> t
+    val to_list : t -> elt list
+    val add_seq : t -> elt sequence -> t
+    val of_seq : elt sequence -> t
+    val to_seq : t -> elt sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashconsedSet.S.html b/0.17/type_CCHashconsedSet.S.html new file mode 100644 index 00000000..021ffb72 --- /dev/null +++ b/0.17/type_CCHashconsedSet.S.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet.S + + +sig
+  type elt
+  type t
+  val empty : CCHashconsedSet.S.t
+  val singleton : CCHashconsedSet.S.elt -> CCHashconsedSet.S.t
+  val doubleton :
+    CCHashconsedSet.S.elt -> CCHashconsedSet.S.elt -> CCHashconsedSet.S.t
+  val mem : CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> bool
+  val equal : CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> bool
+  val compare : CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> int
+  val hash : CCHashconsedSet.S.t -> int
+  val add :
+    CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+  val remove :
+    CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+  val cardinal : CCHashconsedSet.S.t -> int
+  val iter : (CCHashconsedSet.S.elt -> unit) -> CCHashconsedSet.S.t -> unit
+  val fold :
+    (CCHashconsedSet.S.elt -> '-> 'a) -> CCHashconsedSet.S.t -> '-> 'a
+  val choose : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt option
+  val choose_exn : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt
+  val union :
+    CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+  val inter :
+    CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+  val diff :
+    CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  val add_list :
+    CCHashconsedSet.S.t -> CCHashconsedSet.S.elt list -> CCHashconsedSet.S.t
+  val of_list : CCHashconsedSet.S.elt list -> CCHashconsedSet.S.t
+  val to_list : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt list
+  val add_seq :
+    CCHashconsedSet.S.t ->
+    CCHashconsedSet.S.elt CCHashconsedSet.S.sequence -> CCHashconsedSet.S.t
+  val of_seq :
+    CCHashconsedSet.S.elt CCHashconsedSet.S.sequence -> CCHashconsedSet.S.t
+  val to_seq :
+    CCHashconsedSet.S.t -> CCHashconsedSet.S.elt CCHashconsedSet.S.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCHashconsedSet.html b/0.17/type_CCHashconsedSet.html new file mode 100644 index 00000000..cc8e6596 --- /dev/null +++ b/0.17/type_CCHashconsedSet.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashconsedSet + + +sig
+  module type ELT =
+    sig
+      type t
+      val compare : CCHashconsedSet.ELT.t -> CCHashconsedSet.ELT.t -> int
+      val hash : CCHashconsedSet.ELT.t -> int
+    end
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : CCHashconsedSet.S.t
+      val singleton : CCHashconsedSet.S.elt -> CCHashconsedSet.S.t
+      val doubleton :
+        CCHashconsedSet.S.elt -> CCHashconsedSet.S.elt -> CCHashconsedSet.S.t
+      val mem : CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> bool
+      val equal : CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> bool
+      val compare : CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> int
+      val hash : CCHashconsedSet.S.t -> int
+      val add :
+        CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+      val remove :
+        CCHashconsedSet.S.elt -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+      val cardinal : CCHashconsedSet.S.t -> int
+      val iter :
+        (CCHashconsedSet.S.elt -> unit) -> CCHashconsedSet.S.t -> unit
+      val fold :
+        (CCHashconsedSet.S.elt -> '-> 'a) ->
+        CCHashconsedSet.S.t -> '-> 'a
+      val choose : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt option
+      val choose_exn : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt
+      val union :
+        CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+      val inter :
+        CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+      val diff :
+        CCHashconsedSet.S.t -> CCHashconsedSet.S.t -> CCHashconsedSet.S.t
+      type 'a sequence = ('-> unit) -> unit
+      type 'a gen = unit -> 'a option
+      val add_list :
+        CCHashconsedSet.S.t ->
+        CCHashconsedSet.S.elt list -> CCHashconsedSet.S.t
+      val of_list : CCHashconsedSet.S.elt list -> CCHashconsedSet.S.t
+      val to_list : CCHashconsedSet.S.t -> CCHashconsedSet.S.elt list
+      val add_seq :
+        CCHashconsedSet.S.t ->
+        CCHashconsedSet.S.elt CCHashconsedSet.S.sequence ->
+        CCHashconsedSet.S.t
+      val of_seq :
+        CCHashconsedSet.S.elt CCHashconsedSet.S.sequence ->
+        CCHashconsedSet.S.t
+      val to_seq :
+        CCHashconsedSet.S.t ->
+        CCHashconsedSet.S.elt CCHashconsedSet.S.sequence
+    end
+  module Make :
+    functor (E : ELT->
+      sig
+        type elt = E.t
+        type t
+        val empty : t
+        val singleton : elt -> t
+        val doubleton : elt -> elt -> t
+        val mem : elt -> t -> bool
+        val equal : t -> t -> bool
+        val compare : t -> t -> int
+        val hash : t -> int
+        val add : elt -> t -> t
+        val remove : elt -> t -> t
+        val cardinal : t -> int
+        val iter : (elt -> unit) -> t -> unit
+        val fold : (elt -> '-> 'a) -> t -> '-> 'a
+        val choose : t -> elt option
+        val choose_exn : t -> elt
+        val union : t -> t -> t
+        val inter : t -> t -> t
+        val diff : t -> t -> t
+        type 'a sequence = ('-> unit) -> unit
+        type 'a gen = unit -> 'a option
+        val add_list : t -> elt list -> t
+        val of_list : elt list -> t
+        val to_list : t -> elt list
+        val add_seq : t -> elt sequence -> t
+        val of_seq : elt sequence -> t
+        val to_seq : t -> elt sequence
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.COUNTER.html b/0.17/type_CCHashtbl.COUNTER.html new file mode 100644 index 00000000..3e7cca2d --- /dev/null +++ b/0.17/type_CCHashtbl.COUNTER.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.COUNTER + + +sig
+  type elt
+  type t
+  val create : int -> CCHashtbl.COUNTER.t
+  val incr : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> unit
+  val incr_by : CCHashtbl.COUNTER.t -> int -> CCHashtbl.COUNTER.elt -> unit
+  val get : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> int
+  val decr : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> unit
+  val length : CCHashtbl.COUNTER.t -> int
+  val add_seq :
+    CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt CCHashtbl.sequence -> unit
+  val of_seq :
+    CCHashtbl.COUNTER.elt CCHashtbl.sequence -> CCHashtbl.COUNTER.t
+  val to_seq :
+    CCHashtbl.COUNTER.t -> (CCHashtbl.COUNTER.elt * int) CCHashtbl.sequence
+  val add_list :
+    CCHashtbl.COUNTER.t -> (CCHashtbl.COUNTER.elt * int) list -> unit
+  val of_list : (CCHashtbl.COUNTER.elt * int) list -> CCHashtbl.COUNTER.t
+  val to_list : CCHashtbl.COUNTER.t -> (CCHashtbl.COUNTER.elt * int) list
+end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.DEFAULT.html b/0.17/type_CCHashtbl.DEFAULT.html new file mode 100644 index 00000000..179532d5 --- /dev/null +++ b/0.17/type_CCHashtbl.DEFAULT.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.DEFAULT + + +sig
+  type key
+  type 'a t
+  val create : ?size:int -> '-> 'CCHashtbl.DEFAULT.t
+  val create_with :
+    ?size:int -> (CCHashtbl.DEFAULT.key -> 'a) -> 'CCHashtbl.DEFAULT.t
+  val get : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> 'a
+  val set : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> '-> unit
+  val remove : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> unit
+  val to_seq :
+    'CCHashtbl.DEFAULT.t -> (CCHashtbl.DEFAULT.key * 'a) CCHashtbl.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.Make.html b/0.17/type_CCHashtbl.Make.html new file mode 100644 index 00000000..eaaf371f --- /dev/null +++ b/0.17/type_CCHashtbl.Make.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.Make + + +functor (X : Hashtbl.HashedType->
+  sig
+    type key = X.t
+    type 'a t = 'Hashtbl.Make(X).t
+    val create : int -> 'a t
+    val clear : 'a t -> unit
+    val reset : 'a t -> unit
+    val copy : 'a t -> 'a t
+    val add : 'a t -> key -> '-> unit
+    val remove : 'a t -> key -> unit
+    val find : 'a t -> key -> 'a
+    val find_all : 'a t -> key -> 'a list
+    val replace : 'a t -> key -> '-> unit
+    val mem : 'a t -> key -> bool
+    val iter : (key -> '-> unit) -> 'a t -> unit
+    val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+    val length : 'a t -> int
+    val stats : 'a t -> Hashtbl.statistics
+    val get : 'a t -> key -> 'a option
+    val get_or : 'a t -> key -> or_:'-> 'a
+    val add_list : 'a list t -> key -> '-> unit
+    val incr : ?by:int -> int t -> key -> unit
+    val decr : ?by:int -> int t -> key -> unit
+    val keys : 'a t -> key sequence
+    val values : 'a t -> 'a sequence
+    val keys_list : 'a t -> key list
+    val values_list : 'a t -> 'a list
+    val map_list : (key -> '-> 'b) -> 'a t -> 'b list
+    val to_seq : 'a t -> (key * 'a) sequence
+    val of_seq : (key * 'a) sequence -> 'a t
+    val add_seq : 'a t -> (key * 'a) sequence -> unit
+    val add_seq_count : int t -> key sequence -> unit
+    val of_seq_count : key sequence -> int t
+    val to_list : 'a t -> (key * 'a) list
+    val of_list : (key * 'a) list -> 'a t
+    val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+    val print : key printer -> 'a printer -> 'a t printer
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.MakeCounter.html b/0.17/type_CCHashtbl.MakeCounter.html new file mode 100644 index 00000000..7a12d81a --- /dev/null +++ b/0.17/type_CCHashtbl.MakeCounter.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.MakeCounter + + +functor (X : Hashtbl.HashedType->
+  sig
+    type elt = X.t
+    type t = int Hashtbl.Make(X).t
+    val create : int -> t
+    val incr : t -> elt -> unit
+    val incr_by : t -> int -> elt -> unit
+    val get : t -> elt -> int
+    val decr : t -> elt -> unit
+    val length : t -> int
+    val add_seq : t -> elt sequence -> unit
+    val of_seq : elt sequence -> t
+    val to_seq : t -> (elt * int) sequence
+    val add_list : t -> (elt * int) list -> unit
+    val of_list : (elt * int) list -> t
+    val to_list : t -> (elt * int) list
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.MakeDefault.html b/0.17/type_CCHashtbl.MakeDefault.html new file mode 100644 index 00000000..871915f4 --- /dev/null +++ b/0.17/type_CCHashtbl.MakeDefault.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.MakeDefault + + +functor (X : Hashtbl.HashedType->
+  sig
+    type key = X.t
+    type 'a t
+    val create : ?size:int -> '-> 'a t
+    val create_with : ?size:int -> (key -> 'a) -> 'a t
+    val get : 'a t -> key -> 'a
+    val set : 'a t -> key -> '-> unit
+    val remove : 'a t -> key -> unit
+    val to_seq : 'a t -> (key * 'a) sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.S.html b/0.17/type_CCHashtbl.S.html new file mode 100644 index 00000000..77048e61 --- /dev/null +++ b/0.17/type_CCHashtbl.S.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl.S + + +sig
+  type key
+  type 'a t
+  val create : int -> 'a t
+  val clear : 'a t -> unit
+  val reset : 'a t -> unit
+  val copy : 'a t -> 'a t
+  val add : 'a t -> key -> '-> unit
+  val remove : 'a t -> key -> unit
+  val find : 'a t -> key -> 'a
+  val find_all : 'a t -> key -> 'a list
+  val replace : 'a t -> key -> '-> unit
+  val mem : 'a t -> key -> bool
+  val iter : (key -> '-> unit) -> 'a t -> unit
+  val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+  val length : 'a t -> int
+  val stats : 'a t -> Hashtbl.statistics
+  val get : 'a t -> key -> 'a option
+  val get_or : 'a t -> key -> or_:'-> 'a
+  val add_list : 'a list t -> key -> '-> unit
+  val incr : ?by:int -> int t -> key -> unit
+  val decr : ?by:int -> int t -> key -> unit
+  val keys : 'a t -> key CCHashtbl.sequence
+  val values : 'a t -> 'CCHashtbl.sequence
+  val keys_list : 'a t -> key list
+  val values_list : 'a t -> 'a list
+  val map_list : (key -> '-> 'b) -> 'a t -> 'b list
+  val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+  val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+  val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+  val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+  val of_seq_count : key CCHashtbl.sequence -> int t
+  val to_list : 'a t -> (key * 'a) list
+  val of_list : (key * 'a) list -> 'a t
+  val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+  val print :
+    key CCHashtbl.printer -> 'CCHashtbl.printer -> 'a t CCHashtbl.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCHashtbl.html b/0.17/type_CCHashtbl.html new file mode 100644 index 00000000..4e0e373a --- /dev/null +++ b/0.17/type_CCHashtbl.html @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHashtbl + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a eq = '-> '-> bool
+  type 'a hash = '-> int
+  type 'a printer = Format.formatter -> '-> unit
+  val get : ('a, 'b) Hashtbl.t -> '-> 'b option
+  val get_or : ('a, 'b) Hashtbl.t -> '-> or_:'-> 'b
+  val keys : ('a, 'b) Hashtbl.t -> 'CCHashtbl.sequence
+  val values : ('a, 'b) Hashtbl.t -> 'CCHashtbl.sequence
+  val keys_list : ('a, 'b) Hashtbl.t -> 'a list
+  val values_list : ('a, 'b) Hashtbl.t -> 'b list
+  val map_list : ('-> '-> 'c) -> ('a, 'b) Hashtbl.t -> 'c list
+  val incr : ?by:int -> ('a, int) Hashtbl.t -> '-> unit
+  val decr : ?by:int -> ('a, int) Hashtbl.t -> '-> unit
+  val to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequence
+  val add_list : ('a, 'b list) Hashtbl.t -> '-> '-> unit
+  val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) CCHashtbl.sequence -> unit
+  val of_seq : ('a * 'b) CCHashtbl.sequence -> ('a, 'b) Hashtbl.t
+  val add_seq_count : ('a, int) Hashtbl.t -> 'CCHashtbl.sequence -> unit
+  val of_seq_count : 'CCHashtbl.sequence -> ('a, int) Hashtbl.t
+  val to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list
+  val of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.t
+  val update :
+    ('a, 'b) Hashtbl.t -> f:('-> 'b option -> 'b option) -> k:'-> unit
+  val print :
+    'CCHashtbl.printer ->
+    'CCHashtbl.printer -> ('a, 'b) Hashtbl.t CCHashtbl.printer
+  module type S =
+    sig
+      type key
+      type 'a t
+      val create : int -> 'a t
+      val clear : 'a t -> unit
+      val reset : 'a t -> unit
+      val copy : 'a t -> 'a t
+      val add : 'a t -> key -> '-> unit
+      val remove : 'a t -> key -> unit
+      val find : 'a t -> key -> 'a
+      val find_all : 'a t -> key -> 'a list
+      val replace : 'a t -> key -> '-> unit
+      val mem : 'a t -> key -> bool
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+      val length : 'a t -> int
+      val stats : 'a t -> Hashtbl.statistics
+      val get : 'a t -> key -> 'a option
+      val get_or : 'a t -> key -> or_:'-> 'a
+      val add_list : 'a list t -> key -> '-> unit
+      val incr : ?by:int -> int t -> key -> unit
+      val decr : ?by:int -> int t -> key -> unit
+      val keys : 'a t -> key CCHashtbl.sequence
+      val values : 'a t -> 'CCHashtbl.sequence
+      val keys_list : 'a t -> key list
+      val values_list : 'a t -> 'a list
+      val map_list : (key -> '-> 'b) -> 'a t -> 'b list
+      val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence
+      val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t
+      val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit
+      val add_seq_count : int t -> key CCHashtbl.sequence -> unit
+      val of_seq_count : key CCHashtbl.sequence -> int t
+      val to_list : 'a t -> (key * 'a) list
+      val of_list : (key * 'a) list -> 'a t
+      val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+      val print :
+        key CCHashtbl.printer ->
+        'CCHashtbl.printer -> 'a t CCHashtbl.printer
+    end
+  module Make :
+    functor (X : Hashtbl.HashedType->
+      sig
+        type key = X.t
+        type 'a t = 'Hashtbl.Make(X).t
+        val create : int -> 'a t
+        val clear : 'a t -> unit
+        val reset : 'a t -> unit
+        val copy : 'a t -> 'a t
+        val add : 'a t -> key -> '-> unit
+        val remove : 'a t -> key -> unit
+        val find : 'a t -> key -> 'a
+        val find_all : 'a t -> key -> 'a list
+        val replace : 'a t -> key -> '-> unit
+        val mem : 'a t -> key -> bool
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+        val length : 'a t -> int
+        val stats : 'a t -> Hashtbl.statistics
+        val get : 'a t -> key -> 'a option
+        val get_or : 'a t -> key -> or_:'-> 'a
+        val add_list : 'a list t -> key -> '-> unit
+        val incr : ?by:int -> int t -> key -> unit
+        val decr : ?by:int -> int t -> key -> unit
+        val keys : 'a t -> key sequence
+        val values : 'a t -> 'a sequence
+        val keys_list : 'a t -> key list
+        val values_list : 'a t -> 'a list
+        val map_list : (key -> '-> 'b) -> 'a t -> 'b list
+        val to_seq : 'a t -> (key * 'a) sequence
+        val of_seq : (key * 'a) sequence -> 'a t
+        val add_seq : 'a t -> (key * 'a) sequence -> unit
+        val add_seq_count : int t -> key sequence -> unit
+        val of_seq_count : key sequence -> int t
+        val to_list : 'a t -> (key * 'a) list
+        val of_list : (key * 'a) list -> 'a t
+        val update :
+          'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit
+        val print : key printer -> 'a printer -> 'a t printer
+      end
+  module type DEFAULT =
+    sig
+      type key
+      type 'a t
+      val create : ?size:int -> '-> 'CCHashtbl.DEFAULT.t
+      val create_with :
+        ?size:int -> (CCHashtbl.DEFAULT.key -> 'a) -> 'CCHashtbl.DEFAULT.t
+      val get : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> 'a
+      val set : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> '-> unit
+      val remove : 'CCHashtbl.DEFAULT.t -> CCHashtbl.DEFAULT.key -> unit
+      val to_seq :
+        'CCHashtbl.DEFAULT.t ->
+        (CCHashtbl.DEFAULT.key * 'a) CCHashtbl.sequence
+    end
+  module MakeDefault :
+    functor (X : Hashtbl.HashedType->
+      sig
+        type key = X.t
+        type 'a t
+        val create : ?size:int -> '-> 'a t
+        val create_with : ?size:int -> (key -> 'a) -> 'a t
+        val get : 'a t -> key -> 'a
+        val set : 'a t -> key -> '-> unit
+        val remove : 'a t -> key -> unit
+        val to_seq : 'a t -> (key * 'a) sequence
+      end
+  module type COUNTER =
+    sig
+      type elt
+      type t
+      val create : int -> CCHashtbl.COUNTER.t
+      val incr : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> unit
+      val incr_by :
+        CCHashtbl.COUNTER.t -> int -> CCHashtbl.COUNTER.elt -> unit
+      val get : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> int
+      val decr : CCHashtbl.COUNTER.t -> CCHashtbl.COUNTER.elt -> unit
+      val length : CCHashtbl.COUNTER.t -> int
+      val add_seq :
+        CCHashtbl.COUNTER.t ->
+        CCHashtbl.COUNTER.elt CCHashtbl.sequence -> unit
+      val of_seq :
+        CCHashtbl.COUNTER.elt CCHashtbl.sequence -> CCHashtbl.COUNTER.t
+      val to_seq :
+        CCHashtbl.COUNTER.t ->
+        (CCHashtbl.COUNTER.elt * int) CCHashtbl.sequence
+      val add_list :
+        CCHashtbl.COUNTER.t -> (CCHashtbl.COUNTER.elt * int) list -> unit
+      val of_list : (CCHashtbl.COUNTER.elt * int) list -> CCHashtbl.COUNTER.t
+      val to_list : CCHashtbl.COUNTER.t -> (CCHashtbl.COUNTER.elt * int) list
+    end
+  module MakeCounter :
+    functor (X : Hashtbl.HashedType->
+      sig
+        type elt = X.t
+        type t = int Hashtbl.Make(X).t
+        val create : int -> t
+        val incr : t -> elt -> unit
+        val incr_by : t -> int -> elt -> unit
+        val get : t -> elt -> int
+        val decr : t -> elt -> unit
+        val length : t -> int
+        val add_seq : t -> elt sequence -> unit
+        val of_seq : elt sequence -> t
+        val to_seq : t -> (elt * int) sequence
+        val add_list : t -> (elt * int) list -> unit
+        val of_list : (elt * int) list -> t
+        val to_list : t -> (elt * int) list
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCHeap.Make.html b/0.17/type_CCHeap.Make.html new file mode 100644 index 00000000..c95abebb --- /dev/null +++ b/0.17/type_CCHeap.Make.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.Make + + +functor (E : PARTIAL_ORD->
+  sig
+    type elt = E.t
+    type t
+    val empty : t
+    val is_empty : t -> bool
+    exception Empty
+    val merge : t -> t -> t
+    val insert : elt -> t -> t
+    val add : t -> elt -> t
+    val filter : (elt -> bool) -> t -> t
+    val find_min : t -> elt option
+    val find_min_exn : t -> elt
+    val take : t -> (t * elt) option
+    val take_exn : t -> t * elt
+    val iter : (elt -> unit) -> t -> unit
+    val fold : ('-> elt -> 'a) -> '-> t -> 'a
+    val size : t -> int
+    val to_list : t -> elt list
+    val add_list : t -> elt list -> t
+    val of_list : elt list -> t
+    val add_seq : t -> elt sequence -> t
+    val of_seq : elt sequence -> t
+    val to_seq : t -> elt sequence
+    val add_klist : t -> elt klist -> t
+    val of_klist : elt klist -> t
+    val to_klist : t -> elt klist
+    val add_gen : t -> elt gen -> t
+    val of_gen : elt gen -> t
+    val to_gen : t -> elt gen
+    val to_tree : t -> elt ktree
+    val print : ?sep:string -> elt printer -> t printer
+  end
\ No newline at end of file diff --git a/0.17/type_CCHeap.PARTIAL_ORD.html b/0.17/type_CCHeap.PARTIAL_ORD.html new file mode 100644 index 00000000..de662584 --- /dev/null +++ b/0.17/type_CCHeap.PARTIAL_ORD.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.PARTIAL_ORD + + +sig type t val leq : CCHeap.PARTIAL_ORD.t -> CCHeap.PARTIAL_ORD.t -> bool end \ No newline at end of file diff --git a/0.17/type_CCHeap.S.html b/0.17/type_CCHeap.S.html new file mode 100644 index 00000000..61bff369 --- /dev/null +++ b/0.17/type_CCHeap.S.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap.S + + +sig
+  type elt
+  type t
+  val empty : CCHeap.S.t
+  val is_empty : CCHeap.S.t -> bool
+  exception Empty
+  val merge : CCHeap.S.t -> CCHeap.S.t -> CCHeap.S.t
+  val insert : CCHeap.S.elt -> CCHeap.S.t -> CCHeap.S.t
+  val add : CCHeap.S.t -> CCHeap.S.elt -> CCHeap.S.t
+  val filter : (CCHeap.S.elt -> bool) -> CCHeap.S.t -> CCHeap.S.t
+  val find_min : CCHeap.S.t -> CCHeap.S.elt option
+  val find_min_exn : CCHeap.S.t -> CCHeap.S.elt
+  val take : CCHeap.S.t -> (CCHeap.S.t * CCHeap.S.elt) option
+  val take_exn : CCHeap.S.t -> CCHeap.S.t * CCHeap.S.elt
+  val iter : (CCHeap.S.elt -> unit) -> CCHeap.S.t -> unit
+  val fold : ('-> CCHeap.S.elt -> 'a) -> '-> CCHeap.S.t -> 'a
+  val size : CCHeap.S.t -> int
+  val to_list : CCHeap.S.t -> CCHeap.S.elt list
+  val add_list : CCHeap.S.t -> CCHeap.S.elt list -> CCHeap.S.t
+  val of_list : CCHeap.S.elt list -> CCHeap.S.t
+  val add_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t
+  val of_seq : CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t
+  val to_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence
+  val add_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist -> CCHeap.S.t
+  val of_klist : CCHeap.S.elt CCHeap.klist -> CCHeap.S.t
+  val to_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist
+  val add_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen -> CCHeap.S.t
+  val of_gen : CCHeap.S.elt CCHeap.gen -> CCHeap.S.t
+  val to_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen
+  val to_tree : CCHeap.S.t -> CCHeap.S.elt CCHeap.ktree
+  val print :
+    ?sep:string -> CCHeap.S.elt CCHeap.printer -> CCHeap.S.t CCHeap.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCHeap.html b/0.17/type_CCHeap.html new file mode 100644 index 00000000..d9423e00 --- /dev/null +++ b/0.17/type_CCHeap.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHeap + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'CCHeap.klist | `Nil ]
+  type 'a ktree = unit -> [ `Nil | `Node of 'a * 'CCHeap.ktree list ]
+  type 'a printer = Format.formatter -> '-> unit
+  module type PARTIAL_ORD =
+    sig
+      type t
+      val leq : CCHeap.PARTIAL_ORD.t -> CCHeap.PARTIAL_ORD.t -> bool
+    end
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : CCHeap.S.t
+      val is_empty : CCHeap.S.t -> bool
+      exception Empty
+      val merge : CCHeap.S.t -> CCHeap.S.t -> CCHeap.S.t
+      val insert : CCHeap.S.elt -> CCHeap.S.t -> CCHeap.S.t
+      val add : CCHeap.S.t -> CCHeap.S.elt -> CCHeap.S.t
+      val filter : (CCHeap.S.elt -> bool) -> CCHeap.S.t -> CCHeap.S.t
+      val find_min : CCHeap.S.t -> CCHeap.S.elt option
+      val find_min_exn : CCHeap.S.t -> CCHeap.S.elt
+      val take : CCHeap.S.t -> (CCHeap.S.t * CCHeap.S.elt) option
+      val take_exn : CCHeap.S.t -> CCHeap.S.t * CCHeap.S.elt
+      val iter : (CCHeap.S.elt -> unit) -> CCHeap.S.t -> unit
+      val fold : ('-> CCHeap.S.elt -> 'a) -> '-> CCHeap.S.t -> 'a
+      val size : CCHeap.S.t -> int
+      val to_list : CCHeap.S.t -> CCHeap.S.elt list
+      val add_list : CCHeap.S.t -> CCHeap.S.elt list -> CCHeap.S.t
+      val of_list : CCHeap.S.elt list -> CCHeap.S.t
+      val add_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t
+      val of_seq : CCHeap.S.elt CCHeap.sequence -> CCHeap.S.t
+      val to_seq : CCHeap.S.t -> CCHeap.S.elt CCHeap.sequence
+      val add_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist -> CCHeap.S.t
+      val of_klist : CCHeap.S.elt CCHeap.klist -> CCHeap.S.t
+      val to_klist : CCHeap.S.t -> CCHeap.S.elt CCHeap.klist
+      val add_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen -> CCHeap.S.t
+      val of_gen : CCHeap.S.elt CCHeap.gen -> CCHeap.S.t
+      val to_gen : CCHeap.S.t -> CCHeap.S.elt CCHeap.gen
+      val to_tree : CCHeap.S.t -> CCHeap.S.elt CCHeap.ktree
+      val print :
+        ?sep:string ->
+        CCHeap.S.elt CCHeap.printer -> CCHeap.S.t CCHeap.printer
+    end
+  module Make :
+    functor (E : PARTIAL_ORD->
+      sig
+        type elt = E.t
+        type t
+        val empty : t
+        val is_empty : t -> bool
+        exception Empty
+        val merge : t -> t -> t
+        val insert : elt -> t -> t
+        val add : t -> elt -> t
+        val filter : (elt -> bool) -> t -> t
+        val find_min : t -> elt option
+        val find_min_exn : t -> elt
+        val take : t -> (t * elt) option
+        val take_exn : t -> t * elt
+        val iter : (elt -> unit) -> t -> unit
+        val fold : ('-> elt -> 'a) -> '-> t -> 'a
+        val size : t -> int
+        val to_list : t -> elt list
+        val add_list : t -> elt list -> t
+        val of_list : elt list -> t
+        val add_seq : t -> elt sequence -> t
+        val of_seq : elt sequence -> t
+        val to_seq : t -> elt sequence
+        val add_klist : t -> elt klist -> t
+        val of_klist : elt klist -> t
+        val to_klist : t -> elt klist
+        val add_gen : t -> elt gen -> t
+        val of_gen : elt gen -> t
+        val to_gen : t -> elt gen
+        val to_tree : t -> elt ktree
+        val print : ?sep:string -> elt printer -> t printer
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCHet.Key.html b/0.17/type_CCHet.Key.html new file mode 100644 index 00000000..dc2b5262 --- /dev/null +++ b/0.17/type_CCHet.Key.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Key + + +sig
+  type 'a t
+  val create : unit -> 'CCHet.Key.t
+  val equal : 'CCHet.Key.t -> 'CCHet.Key.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCHet.Map.html b/0.17/type_CCHet.Map.html new file mode 100644 index 00000000..37ae783a --- /dev/null +++ b/0.17/type_CCHet.Map.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Map + + +sig
+  type t
+  val empty : CCHet.Map.t
+  val mem : 'CCHet.Key.t -> CCHet.Map.t -> bool
+  val add : 'CCHet.Key.t -> '-> CCHet.Map.t -> CCHet.Map.t
+  val length : CCHet.Map.t -> int
+  val cardinal : CCHet.Map.t -> int
+  val find : 'CCHet.Key.t -> CCHet.Map.t -> 'a option
+  val find_exn : 'CCHet.Key.t -> CCHet.Map.t -> 'a
+  val iter : (CCHet.pair -> unit) -> CCHet.Map.t -> unit
+  val to_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence
+  val of_seq : CCHet.pair CCHet.sequence -> CCHet.Map.t
+  val add_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence -> CCHet.Map.t
+  val add_list : CCHet.Map.t -> CCHet.pair list -> CCHet.Map.t
+  val of_list : CCHet.pair list -> CCHet.Map.t
+  val to_list : CCHet.Map.t -> CCHet.pair list
+end
\ No newline at end of file diff --git a/0.17/type_CCHet.Tbl.html b/0.17/type_CCHet.Tbl.html new file mode 100644 index 00000000..056d2f46 --- /dev/null +++ b/0.17/type_CCHet.Tbl.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet.Tbl + + +sig
+  type t
+  val create : ?size:int -> unit -> CCHet.Tbl.t
+  val mem : CCHet.Tbl.t -> 'CCHet.Key.t -> bool
+  val add : CCHet.Tbl.t -> 'CCHet.Key.t -> '-> unit
+  val length : CCHet.Tbl.t -> int
+  val find : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a option
+  val find_exn : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a
+  val iter : (CCHet.pair -> unit) -> CCHet.Tbl.t -> unit
+  val to_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence
+  val of_seq : CCHet.pair CCHet.sequence -> CCHet.Tbl.t
+  val add_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence -> unit
+  val add_list : CCHet.Tbl.t -> CCHet.pair list -> unit
+  val of_list : CCHet.pair list -> CCHet.Tbl.t
+  val to_list : CCHet.Tbl.t -> CCHet.pair list
+end
\ No newline at end of file diff --git a/0.17/type_CCHet.html b/0.17/type_CCHet.html new file mode 100644 index 00000000..8560ab4c --- /dev/null +++ b/0.17/type_CCHet.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCHet + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  module Key :
+    sig
+      type 'a t
+      val create : unit -> 'CCHet.Key.t
+      val equal : 'CCHet.Key.t -> 'CCHet.Key.t -> bool
+    end
+  type pair = Pair : 'CCHet.Key.t * '-> CCHet.pair
+  module Tbl :
+    sig
+      type t
+      val create : ?size:int -> unit -> CCHet.Tbl.t
+      val mem : CCHet.Tbl.t -> 'CCHet.Key.t -> bool
+      val add : CCHet.Tbl.t -> 'CCHet.Key.t -> '-> unit
+      val length : CCHet.Tbl.t -> int
+      val find : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a option
+      val find_exn : CCHet.Tbl.t -> 'CCHet.Key.t -> 'a
+      val iter : (CCHet.pair -> unit) -> CCHet.Tbl.t -> unit
+      val to_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence
+      val of_seq : CCHet.pair CCHet.sequence -> CCHet.Tbl.t
+      val add_seq : CCHet.Tbl.t -> CCHet.pair CCHet.sequence -> unit
+      val add_list : CCHet.Tbl.t -> CCHet.pair list -> unit
+      val of_list : CCHet.pair list -> CCHet.Tbl.t
+      val to_list : CCHet.Tbl.t -> CCHet.pair list
+    end
+  module Map :
+    sig
+      type t
+      val empty : CCHet.Map.t
+      val mem : 'CCHet.Key.t -> CCHet.Map.t -> bool
+      val add : 'CCHet.Key.t -> '-> CCHet.Map.t -> CCHet.Map.t
+      val length : CCHet.Map.t -> int
+      val cardinal : CCHet.Map.t -> int
+      val find : 'CCHet.Key.t -> CCHet.Map.t -> 'a option
+      val find_exn : 'CCHet.Key.t -> CCHet.Map.t -> 'a
+      val iter : (CCHet.pair -> unit) -> CCHet.Map.t -> unit
+      val to_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence
+      val of_seq : CCHet.pair CCHet.sequence -> CCHet.Map.t
+      val add_seq : CCHet.Map.t -> CCHet.pair CCHet.sequence -> CCHet.Map.t
+      val add_list : CCHet.Map.t -> CCHet.pair list -> CCHet.Map.t
+      val of_list : CCHet.pair list -> CCHet.Map.t
+      val to_list : CCHet.Map.t -> CCHet.pair list
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCIO.File.html b/0.17/type_CCIO.File.html new file mode 100644 index 00000000..5bcf7358 --- /dev/null +++ b/0.17/type_CCIO.File.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIO.File + + +sig
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  type t = string
+  val to_string : CCIO.File.t -> string
+  val make : string -> CCIO.File.t
+  val exists : CCIO.File.t -> bool
+  val is_directory : CCIO.File.t -> bool
+  val remove_exn : CCIO.File.t -> unit
+  val remove : CCIO.File.t -> unit CCIO.File.or_error
+  val remove_noerr : CCIO.File.t -> unit
+  val read_dir : ?recurse:bool -> CCIO.File.t -> CCIO.File.t CCIO.gen
+  val read_exn : CCIO.File.t -> string
+  val read : CCIO.File.t -> string CCIO.File.or_error
+  val append_exn : CCIO.File.t -> string -> unit
+  val append : CCIO.File.t -> string -> unit CCIO.File.or_error
+  val write_exn : CCIO.File.t -> string -> unit
+  val write : CCIO.File.t -> string -> unit CCIO.File.or_error
+  type walk_item = [ `Dir | `File ] * CCIO.File.t
+  val walk : CCIO.File.t -> CCIO.File.walk_item CCIO.gen
+  val show_walk_item : CCIO.File.walk_item -> string
+  val with_temp :
+    ?temp_dir:string ->
+    prefix:string -> suffix:string -> (string -> 'a) -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCIO.html b/0.17/type_CCIO.html new file mode 100644 index 00000000..3ec3d06c --- /dev/null +++ b/0.17/type_CCIO.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIO + + +sig
+  type 'a gen = unit -> 'a option
+  val with_in :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> (Pervasives.in_channel -> 'a) -> 'a
+  val read_chunks : ?size:int -> Pervasives.in_channel -> string CCIO.gen
+  val read_line : Pervasives.in_channel -> string option
+  val read_lines : Pervasives.in_channel -> string CCIO.gen
+  val read_lines_l : Pervasives.in_channel -> string list
+  val read_all : ?size:int -> Pervasives.in_channel -> string
+  val read_all_bytes : ?size:int -> Pervasives.in_channel -> Bytes.t
+  val with_out :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> (Pervasives.out_channel -> 'a) -> 'a
+  val with_out_a :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> (Pervasives.out_channel -> 'a) -> 'a
+  val write_line : Pervasives.out_channel -> string -> unit
+  val write_gen :
+    ?sep:string -> Pervasives.out_channel -> string CCIO.gen -> unit
+  val write_lines : Pervasives.out_channel -> string CCIO.gen -> unit
+  val write_lines_l : Pervasives.out_channel -> string list -> unit
+  val with_in_out :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> (Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> 'a
+  val tee : ('-> unit) list -> 'CCIO.gen -> 'CCIO.gen
+  module File :
+    sig
+      type 'a or_error = [ `Error of string | `Ok of 'a ]
+      type t = string
+      val to_string : CCIO.File.t -> string
+      val make : string -> CCIO.File.t
+      val exists : CCIO.File.t -> bool
+      val is_directory : CCIO.File.t -> bool
+      val remove_exn : CCIO.File.t -> unit
+      val remove : CCIO.File.t -> unit CCIO.File.or_error
+      val remove_noerr : CCIO.File.t -> unit
+      val read_dir : ?recurse:bool -> CCIO.File.t -> CCIO.File.t CCIO.gen
+      val read_exn : CCIO.File.t -> string
+      val read : CCIO.File.t -> string CCIO.File.or_error
+      val append_exn : CCIO.File.t -> string -> unit
+      val append : CCIO.File.t -> string -> unit CCIO.File.or_error
+      val write_exn : CCIO.File.t -> string -> unit
+      val write : CCIO.File.t -> string -> unit CCIO.File.or_error
+      type walk_item = [ `Dir | `File ] * CCIO.File.t
+      val walk : CCIO.File.t -> CCIO.File.walk_item CCIO.gen
+      val show_walk_item : CCIO.File.walk_item -> string
+      val with_temp :
+        ?temp_dir:string ->
+        prefix:string -> suffix:string -> (string -> 'a) -> 'a
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCImmutArray.html b/0.17/type_CCImmutArray.html new file mode 100644 index 00000000..6d67a6ba --- /dev/null +++ b/0.17/type_CCImmutArray.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCImmutArray + + +sig
+  type 'a t
+  val empty : 'CCImmutArray.t
+  val length : 'CCImmutArray.t -> int
+  val singleton : '-> 'CCImmutArray.t
+  val doubleton : '-> '-> 'CCImmutArray.t
+  val make : int -> '-> 'CCImmutArray.t
+  val init : int -> (int -> 'a) -> 'CCImmutArray.t
+  val get : 'CCImmutArray.t -> int -> 'a
+  val set : 'CCImmutArray.t -> int -> '-> 'CCImmutArray.t
+  val map : ('-> 'b) -> 'CCImmutArray.t -> 'CCImmutArray.t
+  val mapi : (int -> '-> 'b) -> 'CCImmutArray.t -> 'CCImmutArray.t
+  val append : 'CCImmutArray.t -> 'CCImmutArray.t -> 'CCImmutArray.t
+  val iter : ('-> unit) -> 'CCImmutArray.t -> unit
+  val iteri : (int -> '-> unit) -> 'CCImmutArray.t -> unit
+  val foldi : ('-> int -> '-> 'a) -> '-> 'CCImmutArray.t -> 'a
+  val fold : ('-> '-> 'a) -> '-> 'CCImmutArray.t -> 'a
+  val for_all : ('-> bool) -> 'CCImmutArray.t -> bool
+  val exists : ('-> bool) -> 'CCImmutArray.t -> bool
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  val of_list : 'a list -> 'CCImmutArray.t
+  val to_list : 'CCImmutArray.t -> 'a list
+  val of_array_unsafe : 'a array -> 'CCImmutArray.t
+  val to_seq : 'CCImmutArray.t -> 'CCImmutArray.sequence
+  val of_seq : 'CCImmutArray.sequence -> 'CCImmutArray.t
+  val of_gen : 'CCImmutArray.gen -> 'CCImmutArray.t
+  val to_gen : 'CCImmutArray.t -> 'CCImmutArray.gen
+  type 'a printer = Format.formatter -> '-> unit
+  val print :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string ->
+    'CCImmutArray.printer -> 'CCImmutArray.t CCImmutArray.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCInt.Infix.html b/0.17/type_CCInt.Infix.html new file mode 100644 index 00000000..2474b4ed --- /dev/null +++ b/0.17/type_CCInt.Infix.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt.Infix + + +sig
+  val ( = ) : CCInt.t -> CCInt.t -> bool
+  val ( <> ) : CCInt.t -> CCInt.t -> bool
+  val ( < ) : CCInt.t -> CCInt.t -> bool
+  val ( > ) : CCInt.t -> CCInt.t -> bool
+  val ( <= ) : CCInt.t -> CCInt.t -> bool
+  val ( >= ) : CCInt.t -> CCInt.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCInt.html b/0.17/type_CCInt.html new file mode 100644 index 00000000..9dd5930d --- /dev/null +++ b/0.17/type_CCInt.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt + + +sig
+  type t = int
+  val compare : CCInt.t -> CCInt.t -> int
+  val equal : CCInt.t -> CCInt.t -> bool
+  val hash : CCInt.t -> int
+  val sign : CCInt.t -> int
+  val neg : CCInt.t -> CCInt.t
+  val pow : CCInt.t -> CCInt.t -> CCInt.t
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a random_gen = Random.State.t -> 'a
+  val random : int -> CCInt.t CCInt.random_gen
+  val random_small : CCInt.t CCInt.random_gen
+  val random_range : int -> int -> CCInt.t CCInt.random_gen
+  val pp : CCInt.t CCInt.printer
+  val print : CCInt.t CCInt.formatter
+  val to_string : CCInt.t -> string
+  val of_string : string -> CCInt.t option
+  val min : CCInt.t -> CCInt.t -> CCInt.t
+  val max : CCInt.t -> CCInt.t -> CCInt.t
+  module Infix :
+    sig
+      val ( = ) : CCInt.t -> CCInt.t -> bool
+      val ( <> ) : CCInt.t -> CCInt.t -> bool
+      val ( < ) : CCInt.t -> CCInt.t -> bool
+      val ( > ) : CCInt.t -> CCInt.t -> bool
+      val ( <= ) : CCInt.t -> CCInt.t -> bool
+      val ( >= ) : CCInt.t -> CCInt.t -> bool
+    end
+  val ( = ) : t -> t -> bool
+  val ( <> ) : t -> t -> bool
+  val ( < ) : t -> t -> bool
+  val ( > ) : t -> t -> bool
+  val ( <= ) : t -> t -> bool
+  val ( >= ) : t -> t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCInt64.html b/0.17/type_CCInt64.html new file mode 100644 index 00000000..f1ffa390 --- /dev/null +++ b/0.17/type_CCInt64.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCInt64 + + +sig
+  type t = int64
+  val ( + ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( - ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( ~- ) : CCInt64.t -> CCInt64.t
+  val ( * ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( / ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( mod ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val abs : CCInt64.t -> CCInt64.t
+  val max_int : CCInt64.t
+  val min_int : CCInt64.t
+  val ( land ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( lor ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val ( lxor ) : CCInt64.t -> CCInt64.t -> CCInt64.t
+  val lnot : CCInt64.t -> CCInt64.t
+  val ( lsl ) : CCInt64.t -> int -> CCInt64.t
+  val ( lsr ) : CCInt64.t -> int -> CCInt64.t
+  val ( asr ) : CCInt64.t -> int -> CCInt64.t
+  val equal : CCInt64.t -> CCInt64.t -> bool
+  val compare : CCInt64.t -> CCInt64.t -> int
+  val hash : CCInt64.t -> int
+  val to_int : CCInt64.t -> int
+  val of_int : int -> CCInt64.t option
+  val of_int_exn : int -> CCInt64.t
+  val to_int32 : CCInt64.t -> int32
+  val of_int32 : int32 -> CCInt64.t option
+  val of_int32_exn : int32 -> CCInt64.t
+  val to_nativeint : CCInt64.t -> nativeint
+  val of_nativeint : nativeint -> CCInt64.t option
+  val of_nativeint_exn : nativeint -> CCInt64.t
+  val to_float : CCInt64.t -> float
+  val of_float : float -> CCInt64.t option
+  val of_float_exn : float -> CCInt64.t
+  val to_string : CCInt64.t -> string
+  val of_string : string -> CCInt64.t option
+  val of_string_exn : string -> CCInt64.t
+end
\ No newline at end of file diff --git a/0.17/type_CCIntMap.html b/0.17/type_CCIntMap.html new file mode 100644 index 00000000..fc306ea8 --- /dev/null +++ b/0.17/type_CCIntMap.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCIntMap + + +sig
+  type 'a t
+  val empty : 'CCIntMap.t
+  val singleton : int -> '-> 'CCIntMap.t
+  val doubleton : int -> '-> int -> '-> 'CCIntMap.t
+  val mem : int -> 'CCIntMap.t -> bool
+  val find : int -> 'CCIntMap.t -> 'a option
+  val find_exn : int -> 'CCIntMap.t -> 'a
+  val add : int -> '-> 'CCIntMap.t -> 'CCIntMap.t
+  val remove : int -> 'CCIntMap.t -> 'CCIntMap.t
+  val equal : eq:('-> '-> bool) -> 'CCIntMap.t -> 'CCIntMap.t -> bool
+  val compare :
+    cmp:('-> '-> int) -> 'CCIntMap.t -> 'CCIntMap.t -> int
+  val update :
+    int -> ('a option -> 'a option) -> 'CCIntMap.t -> 'CCIntMap.t
+  val cardinal : 'CCIntMap.t -> int
+  val iter : (int -> '-> unit) -> 'CCIntMap.t -> unit
+  val fold : (int -> '-> '-> 'b) -> 'CCIntMap.t -> '-> 'b
+  val mapi : (int -> '-> 'b) -> 'CCIntMap.t -> 'CCIntMap.t
+  val map : ('-> 'b) -> 'CCIntMap.t -> 'CCIntMap.t
+  val choose : 'CCIntMap.t -> (int * 'a) option
+  val choose_exn : 'CCIntMap.t -> int * 'a
+  val union :
+    (int -> '-> '-> 'a) ->
+    'CCIntMap.t -> 'CCIntMap.t -> 'CCIntMap.t
+  val inter :
+    (int -> '-> '-> 'a) ->
+    'CCIntMap.t -> 'CCIntMap.t -> 'CCIntMap.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'CCIntMap.klist | `Nil ]
+  val add_list : 'CCIntMap.t -> (int * 'a) list -> 'CCIntMap.t
+  val of_list : (int * 'a) list -> 'CCIntMap.t
+  val to_list : 'CCIntMap.t -> (int * 'a) list
+  val add_seq :
+    'CCIntMap.t -> (int * 'a) CCIntMap.sequence -> 'CCIntMap.t
+  val of_seq : (int * 'a) CCIntMap.sequence -> 'CCIntMap.t
+  val to_seq : 'CCIntMap.t -> (int * 'a) CCIntMap.sequence
+  val keys : 'CCIntMap.t -> int CCIntMap.sequence
+  val values : 'CCIntMap.t -> 'CCIntMap.sequence
+  val add_gen : 'CCIntMap.t -> (int * 'a) CCIntMap.gen -> 'CCIntMap.t
+  val of_gen : (int * 'a) CCIntMap.gen -> 'CCIntMap.t
+  val to_gen : 'CCIntMap.t -> (int * 'a) CCIntMap.gen
+  val add_klist : 'CCIntMap.t -> (int * 'a) CCIntMap.klist -> 'CCIntMap.t
+  val of_klist : (int * 'a) CCIntMap.klist -> 'CCIntMap.t
+  val to_klist : 'CCIntMap.t -> (int * 'a) CCIntMap.klist
+  type 'a tree = unit -> [ `Nil | `Node of 'a * 'CCIntMap.tree list ]
+  val as_tree :
+    'CCIntMap.t -> [ `Leaf of int * '| `Node of int * int ] CCIntMap.tree
+  type 'a printer = Format.formatter -> '-> unit
+  val print : 'CCIntMap.printer -> 'CCIntMap.t CCIntMap.printer
+  module Bit :
+    sig
+      type t = private int
+      val min_int : CCIntMap.Bit.t
+      val highest : int -> CCIntMap.Bit.t
+    end
+  val check_invariants : 'CCIntMap.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCKList.Infix.html b/0.17/type_CCKList.Infix.html new file mode 100644 index 00000000..2f84a505 --- /dev/null +++ b/0.17/type_CCKList.Infix.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.Infix + + +sig
+  val ( >>= ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+  val ( >|= ) : 'CCKList.t -> ('-> 'b) -> 'CCKList.t
+  val ( <*> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val ( >>- ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+  val ( <.> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val ( -- ) : int -> int -> int CCKList.t
+  val ( --^ ) : int -> int -> int CCKList.t
+end
\ No newline at end of file diff --git a/0.17/type_CCKList.MONAD.html b/0.17/type_CCKList.MONAD.html new file mode 100644 index 00000000..92270943 --- /dev/null +++ b/0.17/type_CCKList.MONAD.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.MONAD + + +sig
+  type 'a t
+  val return : '-> 'CCKList.MONAD.t
+  val ( >>= ) :
+    'CCKList.MONAD.t -> ('-> 'CCKList.MONAD.t) -> 'CCKList.MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCKList.Traverse.html b/0.17/type_CCKList.Traverse.html new file mode 100644 index 00000000..74aa12f5 --- /dev/null +++ b/0.17/type_CCKList.Traverse.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList.Traverse + + +functor (M : MONAD->
+  sig
+    val sequence_m : 'M.t CCKList.t -> 'CCKList.t M.t
+    val fold_m : ('-> '-> 'M.t) -> '-> 'CCKList.t -> 'M.t
+    val map_m : ('-> 'M.t) -> 'CCKList.t -> 'CCKList.t M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCKList.html b/0.17/type_CCKList.html new file mode 100644 index 00000000..9f27e908 --- /dev/null +++ b/0.17/type_CCKList.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKList + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a t = unit -> [ `Cons of 'a * 'CCKList.t | `Nil ]
+  val nil : 'CCKList.t
+  val empty : 'CCKList.t
+  val cons : '-> 'CCKList.t -> 'CCKList.t
+  val singleton : '-> 'CCKList.t
+  val repeat : ?n:int -> '-> 'CCKList.t
+  val cycle : 'CCKList.t -> 'CCKList.t
+  val unfold : ('-> ('a * 'b) option) -> '-> 'CCKList.t
+  val is_empty : 'CCKList.t -> bool
+  val head : 'CCKList.t -> 'a option
+  val head_exn : 'CCKList.t -> 'a
+  val tail : 'CCKList.t -> 'CCKList.t option
+  val tail_exn : 'CCKList.t -> 'CCKList.t
+  val equal : 'CCKList.equal -> 'CCKList.t CCKList.equal
+  val compare : 'CCKList.ord -> 'CCKList.t CCKList.ord
+  val fold : ('-> '-> 'a) -> '-> 'CCKList.t -> 'a
+  val iter : ('-> unit) -> 'CCKList.t -> unit
+  val iteri : (int -> '-> unit) -> 'CCKList.t -> unit
+  val length : 'CCKList.t -> int
+  val take : int -> 'CCKList.t -> 'CCKList.t
+  val take_while : ('-> bool) -> 'CCKList.t -> 'CCKList.t
+  val drop : int -> 'CCKList.t -> 'CCKList.t
+  val drop_while : ('-> bool) -> 'CCKList.t -> 'CCKList.t
+  val map : ('-> 'b) -> 'CCKList.t -> 'CCKList.t
+  val mapi : (int -> '-> 'b) -> 'CCKList.t -> 'CCKList.t
+  val fmap : ('-> 'b option) -> 'CCKList.t -> 'CCKList.t
+  val filter : ('-> bool) -> 'CCKList.t -> 'CCKList.t
+  val append : 'CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val product_with :
+    ('-> '-> 'c) -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val product : 'CCKList.t -> 'CCKList.t -> ('a * 'b) CCKList.t
+  val group : 'CCKList.equal -> 'CCKList.t -> 'CCKList.t CCKList.t
+  val uniq : 'CCKList.equal -> 'CCKList.t -> 'CCKList.t
+  val flat_map : ('-> 'CCKList.t) -> 'CCKList.t -> 'CCKList.t
+  val filter_map : ('-> 'b option) -> 'CCKList.t -> 'CCKList.t
+  val flatten : 'CCKList.t CCKList.t -> 'CCKList.t
+  val range : int -> int -> int CCKList.t
+  val ( -- ) : int -> int -> int CCKList.t
+  val ( --^ ) : int -> int -> int CCKList.t
+  val fold2 :
+    ('acc -> '-> '-> 'acc) ->
+    'acc -> 'CCKList.t -> 'CCKList.t -> 'acc
+  val map2 : ('-> '-> 'c) -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val iter2 : ('-> '-> unit) -> 'CCKList.t -> 'CCKList.t -> unit
+  val for_all2 : ('-> '-> bool) -> 'CCKList.t -> 'CCKList.t -> bool
+  val exists2 : ('-> '-> bool) -> 'CCKList.t -> 'CCKList.t -> bool
+  val merge : 'CCKList.ord -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val zip : 'CCKList.t -> 'CCKList.t -> ('a * 'b) CCKList.t
+  val unzip : ('a * 'b) CCKList.t -> 'CCKList.t * 'CCKList.t
+  val sort : ?cmp:'CCKList.ord -> 'CCKList.t -> 'CCKList.t
+  val sort_uniq : ?cmp:'CCKList.ord -> 'CCKList.t -> 'CCKList.t
+  val memoize : 'CCKList.t -> 'CCKList.t
+  val interleave : 'CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val fair_flat_map : ('-> 'CCKList.t) -> 'CCKList.t -> 'CCKList.t
+  val fair_app : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val return : '-> 'CCKList.t
+  val pure : '-> 'CCKList.t
+  val ( >>= ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+  val ( >|= ) : 'CCKList.t -> ('-> 'b) -> 'CCKList.t
+  val ( <*> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+  val ( >>- ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+  val ( <.> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+  module Infix :
+    sig
+      val ( >>= ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+      val ( >|= ) : 'CCKList.t -> ('-> 'b) -> 'CCKList.t
+      val ( <*> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+      val ( >>- ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t
+      val ( <.> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t
+      val ( -- ) : int -> int -> int CCKList.t
+      val ( --^ ) : int -> int -> int CCKList.t
+    end
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'CCKList.MONAD.t
+      val ( >>= ) :
+        'CCKList.MONAD.t ->
+        ('-> 'CCKList.MONAD.t) -> 'CCKList.MONAD.t
+    end
+  module Traverse :
+    functor (M : MONAD->
+      sig
+        val sequence_m : 'M.t CCKList.t -> 'CCKList.t M.t
+        val fold_m : ('-> '-> 'M.t) -> '-> 'CCKList.t -> 'M.t
+        val map_m : ('-> 'M.t) -> 'CCKList.t -> 'CCKList.t M.t
+      end
+  val of_list : 'a list -> 'CCKList.t
+  val to_list : 'CCKList.t -> 'a list
+  val of_array : 'a array -> 'CCKList.t
+  val to_array : 'CCKList.t -> 'a array
+  val to_rev_list : 'CCKList.t -> 'a list
+  val to_seq : 'CCKList.t -> 'CCKList.sequence
+  val to_gen : 'CCKList.t -> 'CCKList.gen
+  val of_gen : 'CCKList.gen -> 'CCKList.t
+  val pp : ?sep:string -> 'CCKList.printer -> 'CCKList.t CCKList.printer
+  val print :
+    ?sep:string -> 'CCKList.formatter -> 'CCKList.t CCKList.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCKMP.Make.html b/0.17/type_CCKMP.Make.html new file mode 100644 index 00000000..8288930f --- /dev/null +++ b/0.17/type_CCKMP.Make.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.Make + + +functor (Str : STRING->
+  sig
+    type string = Str.t
+    type pattern
+    val compile : string -> pattern
+    val find : pattern:pattern -> string -> int -> int option
+    val search : pattern:pattern -> string -> int option
+    val find_all : pattern:pattern -> string -> int -> int gen
+    val seq : pattern:pattern -> string -> int -> int sequence
+    val search' : pattern:string -> string -> int option
+    val find_all' : pattern:string -> string -> int gen
+    val seq' : pattern:string -> string -> int sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCKMP.S.html b/0.17/type_CCKMP.S.html new file mode 100644 index 00000000..7d2f8c96 --- /dev/null +++ b/0.17/type_CCKMP.S.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.S + + +sig
+  type string
+  type pattern
+  val compile : CCKMP.S.string -> CCKMP.S.pattern
+  val find : pattern:CCKMP.S.pattern -> CCKMP.S.string -> int -> int option
+  val search : pattern:CCKMP.S.pattern -> CCKMP.S.string -> int option
+  val find_all :
+    pattern:CCKMP.S.pattern -> CCKMP.S.string -> int -> int CCKMP.gen
+  val seq :
+    pattern:CCKMP.S.pattern -> CCKMP.S.string -> int -> int CCKMP.sequence
+  val search' : pattern:CCKMP.S.string -> CCKMP.S.string -> int option
+  val find_all' : pattern:CCKMP.S.string -> CCKMP.S.string -> int CCKMP.gen
+  val seq' : pattern:CCKMP.S.string -> CCKMP.S.string -> int CCKMP.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCKMP.STRING.html b/0.17/type_CCKMP.STRING.html new file mode 100644 index 00000000..c9178641 --- /dev/null +++ b/0.17/type_CCKMP.STRING.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP.STRING + + +sig
+  type t
+  type char
+  val length : CCKMP.STRING.t -> int
+  val get : CCKMP.STRING.t -> int -> CCKMP.STRING.char
+  val char_equal : CCKMP.STRING.char -> CCKMP.STRING.char -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCKMP.html b/0.17/type_CCKMP.html new file mode 100644 index 00000000..aa2f8173 --- /dev/null +++ b/0.17/type_CCKMP.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKMP + + +sig
+  module type STRING =
+    sig
+      type t
+      type char
+      val length : CCKMP.STRING.t -> int
+      val get : CCKMP.STRING.t -> int -> CCKMP.STRING.char
+      val char_equal : CCKMP.STRING.char -> CCKMP.STRING.char -> bool
+    end
+  type 'a gen = unit -> 'a option
+  type 'a sequence = ('-> unit) -> unit
+  module type S =
+    sig
+      type string
+      type pattern
+      val compile : CCKMP.S.string -> CCKMP.S.pattern
+      val find :
+        pattern:CCKMP.S.pattern -> CCKMP.S.string -> int -> int option
+      val search : pattern:CCKMP.S.pattern -> CCKMP.S.string -> int option
+      val find_all :
+        pattern:CCKMP.S.pattern -> CCKMP.S.string -> int -> int CCKMP.gen
+      val seq :
+        pattern:CCKMP.S.pattern ->
+        CCKMP.S.string -> int -> int CCKMP.sequence
+      val search' : pattern:CCKMP.S.string -> CCKMP.S.string -> int option
+      val find_all' :
+        pattern:CCKMP.S.string -> CCKMP.S.string -> int CCKMP.gen
+      val seq' :
+        pattern:CCKMP.S.string -> CCKMP.S.string -> int CCKMP.sequence
+    end
+  module Make :
+    functor (Str : STRING->
+      sig
+        type string = Str.t
+        type pattern
+        val compile : string -> pattern
+        val find : pattern:pattern -> string -> int -> int option
+        val search : pattern:pattern -> string -> int option
+        val find_all : pattern:pattern -> string -> int -> int gen
+        val seq : pattern:pattern -> string -> int -> int sequence
+        val search' : pattern:string -> string -> int option
+        val find_all' : pattern:string -> string -> int gen
+        val seq' : pattern:string -> string -> int sequence
+      end
+  type string = string
+  type pattern
+  val compile : string -> pattern
+  val find : pattern:pattern -> string -> int -> int option
+  val search : pattern:pattern -> string -> int option
+  val find_all : pattern:pattern -> string -> int -> int gen
+  val seq : pattern:pattern -> string -> int -> int sequence
+  val search' : pattern:string -> string -> int option
+  val find_all' : pattern:string -> string -> int gen
+  val seq' : pattern:string -> string -> int sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCKTree.Dot.html b/0.17/type_CCKTree.Dot.html new file mode 100644 index 00000000..de86d7b2 --- /dev/null +++ b/0.17/type_CCKTree.Dot.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree.Dot + + +sig
+  type attribute =
+      [ `Color of string
+      | `Id of string
+      | `Label of string
+      | `Other of string * string
+      | `Shape of string
+      | `Style of string
+      | `Weight of int ]
+  type graph = string * CCKTree.Dot.attribute list CCKTree.t list
+  val mk_id :
+    ('a, Buffer.t, unit, CCKTree.Dot.attribute) Pervasives.format4 -> 'a
+  val mk_label :
+    ('a, Buffer.t, unit, CCKTree.Dot.attribute) Pervasives.format4 -> 'a
+  val make :
+    name:string ->
+    CCKTree.Dot.attribute list CCKTree.t list -> CCKTree.Dot.graph
+  val singleton :
+    name:string -> CCKTree.Dot.attribute list CCKTree.t -> CCKTree.Dot.graph
+  val pp : CCKTree.Dot.graph CCKTree.printer
+  val pp_single :
+    string -> CCKTree.Dot.attribute list CCKTree.t CCKTree.printer
+  val print : CCKTree.Dot.graph CCKTree.formatter
+  val print_to_file : string -> CCKTree.Dot.graph -> unit
+  val to_file :
+    ?name:string ->
+    string -> CCKTree.Dot.attribute list CCKTree.t list -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCKTree.html b/0.17/type_CCKTree.html new file mode 100644 index 00000000..fc6f3213 --- /dev/null +++ b/0.17/type_CCKTree.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'CCKTree.klist | `Nil ]
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a t = unit -> [ `Nil | `Node of 'a * 'CCKTree.t list ]
+  val empty : 'CCKTree.t
+  val is_empty : 'CCKTree.t -> bool
+  val singleton : '-> 'CCKTree.t
+  val node : '-> 'CCKTree.t list -> 'CCKTree.t
+  val node1 : '-> 'CCKTree.t -> 'CCKTree.t
+  val node2 : '-> 'CCKTree.t -> 'CCKTree.t -> 'CCKTree.t
+  val fold : ('-> '-> 'a) -> '-> 'CCKTree.t -> 'a
+  val iter : ('-> unit) -> 'CCKTree.t -> unit
+  val size : 'CCKTree.t -> int
+  val height : 'CCKTree.t -> int
+  val map : ('-> 'b) -> 'CCKTree.t -> 'CCKTree.t
+  val ( >|= ) : 'CCKTree.t -> ('-> 'b) -> 'CCKTree.t
+  val cut_depth : int -> 'CCKTree.t -> 'CCKTree.t
+  class type ['a] pset =
+    object method add : '-> 'CCKTree.pset method mem : '-> bool end
+  val set_of_cmp : ?cmp:('-> '-> int) -> unit -> 'CCKTree.pset
+  val dfs :
+    ?pset:'CCKTree.pset ->
+    'CCKTree.t -> [ `Enter of '| `Exit of 'a ] CCKTree.klist
+  val bfs : ?pset:'CCKTree.pset -> 'CCKTree.t -> 'CCKTree.klist
+  val force : 'CCKTree.t -> ([ `Nil | `Node of 'a * 'b list ] as 'b)
+  val find :
+    ?pset:'CCKTree.pset -> ('-> 'b option) -> 'CCKTree.t -> 'b option
+  val print : 'CCKTree.formatter -> 'CCKTree.t CCKTree.formatter
+  module Dot :
+    sig
+      type attribute =
+          [ `Color of string
+          | `Id of string
+          | `Label of string
+          | `Other of string * string
+          | `Shape of string
+          | `Style of string
+          | `Weight of int ]
+      type graph = string * CCKTree.Dot.attribute list CCKTree.t list
+      val mk_id :
+        ('a, Buffer.t, unit, CCKTree.Dot.attribute) Pervasives.format4 -> 'a
+      val mk_label :
+        ('a, Buffer.t, unit, CCKTree.Dot.attribute) Pervasives.format4 -> 'a
+      val make :
+        name:string ->
+        CCKTree.Dot.attribute list CCKTree.t list -> CCKTree.Dot.graph
+      val singleton :
+        name:string ->
+        CCKTree.Dot.attribute list CCKTree.t -> CCKTree.Dot.graph
+      val pp : CCKTree.Dot.graph CCKTree.printer
+      val pp_single :
+        string -> CCKTree.Dot.attribute list CCKTree.t CCKTree.printer
+      val print : CCKTree.Dot.graph CCKTree.formatter
+      val print_to_file : string -> CCKTree.Dot.graph -> unit
+      val to_file :
+        ?name:string ->
+        string -> CCKTree.Dot.attribute list CCKTree.t list -> unit
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCKTree.pset.html b/0.17/type_CCKTree.pset.html new file mode 100644 index 00000000..10b6ff75 --- /dev/null +++ b/0.17/type_CCKTree.pset.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCKTree.pset + + +object method add : '-> 'CCKTree.pset method mem : '-> bool end \ No newline at end of file diff --git a/0.17/type_CCLazy_list.Infix.html b/0.17/type_CCLazy_list.Infix.html new file mode 100644 index 00000000..63971fab --- /dev/null +++ b/0.17/type_CCLazy_list.Infix.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLazy_list.Infix + + +sig
+  val ( >|= ) : 'CCLazy_list.t -> ('-> 'b) -> 'CCLazy_list.t
+  val ( >>= ) :
+    'CCLazy_list.t -> ('-> 'CCLazy_list.t) -> 'CCLazy_list.t
+end
\ No newline at end of file diff --git a/0.17/type_CCLazy_list.html b/0.17/type_CCLazy_list.html new file mode 100644 index 00000000..3e5452ac --- /dev/null +++ b/0.17/type_CCLazy_list.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLazy_list + + +sig
+  type 'a t = 'CCLazy_list.node lazy_t
+  and 'a node = Nil | Cons of 'a * 'CCLazy_list.t
+  val empty : 'CCLazy_list.t
+  val return : '-> 'CCLazy_list.t
+  val is_empty : 'CCLazy_list.t -> bool
+  val length : 'CCLazy_list.t -> int
+  val cons : '-> 'CCLazy_list.t -> 'CCLazy_list.t
+  val head : 'CCLazy_list.t -> ('a * 'CCLazy_list.t) option
+  val map : f:('-> 'b) -> 'CCLazy_list.t -> 'CCLazy_list.t
+  val append : 'CCLazy_list.t -> 'CCLazy_list.t -> 'CCLazy_list.t
+  val flat_map :
+    f:('-> 'CCLazy_list.t) -> 'CCLazy_list.t -> 'CCLazy_list.t
+  module Infix :
+    sig
+      val ( >|= ) : 'CCLazy_list.t -> ('-> 'b) -> 'CCLazy_list.t
+      val ( >>= ) :
+        'CCLazy_list.t -> ('-> 'CCLazy_list.t) -> 'CCLazy_list.t
+    end
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  type 'a gen = unit -> 'a option
+  val of_gen : 'CCLazy_list.gen -> 'CCLazy_list.t
+  val of_list : 'a list -> 'CCLazy_list.t
+  val to_list : 'CCLazy_list.t -> 'a list
+  val to_list_rev : 'CCLazy_list.t -> 'a list
+  val to_gen : 'CCLazy_list.t -> 'CCLazy_list.gen
+end
\ No newline at end of file diff --git a/0.17/type_CCLevenshtein.Make.html b/0.17/type_CCLevenshtein.Make.html new file mode 100644 index 00000000..f0f08d6f --- /dev/null +++ b/0.17/type_CCLevenshtein.Make.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.Make + + +functor (Str : STRING->
+  sig
+    type char_ = Str.char_
+    type string_ = Str.t
+    val edit_distance : string_ -> string_ -> int
+    type automaton
+    val of_string : limit:int -> string_ -> automaton
+    val of_list : limit:int -> char_ list -> automaton
+    val debug_print :
+      (out_channel -> char_ -> unit) -> out_channel -> automaton -> unit
+    val match_with : automaton -> string_ -> bool
+    module Index :
+      sig
+        type 'b t
+        val empty : 'b t
+        val is_empty : 'a t -> bool
+        val add : 'b t -> string_ -> '-> 'b t
+        val cardinal : 'a t -> int
+        val remove : 'b t -> string_ -> 'b t
+        val retrieve : limit:int -> 'b t -> string_ -> 'b klist
+        val of_list : (string_ * 'b) list -> 'b t
+        val to_list : 'b t -> (string_ * 'b) list
+        val add_seq : 'a t -> (string_ * 'a) sequence -> 'a t
+        val of_seq : (string_ * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (string_ * 'a) sequence
+        val add_gen : 'a t -> (string_ * 'a) gen -> 'a t
+        val of_gen : (string_ * 'a) gen -> 'a t
+        val to_gen : 'a t -> (string_ * 'a) gen
+        val fold : ('-> string_ -> '-> 'a) -> '-> 'b t -> 'a
+        val iter : (string_ -> '-> unit) -> 'b t -> unit
+        val to_klist : 'b t -> (string_ * 'b) klist
+      end
+  end
\ No newline at end of file diff --git a/0.17/type_CCLevenshtein.S.Index.html b/0.17/type_CCLevenshtein.S.Index.html new file mode 100644 index 00000000..e0597d3b --- /dev/null +++ b/0.17/type_CCLevenshtein.S.Index.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.S.Index + + +sig
+  type 'b t
+  val empty : 'CCLevenshtein.S.Index.t
+  val is_empty : 'CCLevenshtein.S.Index.t -> bool
+  val add :
+    'CCLevenshtein.S.Index.t ->
+    CCLevenshtein.S.string_ -> '-> 'CCLevenshtein.S.Index.t
+  val cardinal : 'CCLevenshtein.S.Index.t -> int
+  val remove :
+    'CCLevenshtein.S.Index.t ->
+    CCLevenshtein.S.string_ -> 'CCLevenshtein.S.Index.t
+  val retrieve :
+    limit:int ->
+    'CCLevenshtein.S.Index.t ->
+    CCLevenshtein.S.string_ -> 'CCLevenshtein.klist
+  val of_list :
+    (CCLevenshtein.S.string_ * 'b) list -> 'CCLevenshtein.S.Index.t
+  val to_list :
+    'CCLevenshtein.S.Index.t -> (CCLevenshtein.S.string_ * 'b) list
+  val add_seq :
+    'CCLevenshtein.S.Index.t ->
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+    'CCLevenshtein.S.Index.t
+  val of_seq :
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+    'CCLevenshtein.S.Index.t
+  val to_seq :
+    'CCLevenshtein.S.Index.t ->
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence
+  val add_gen :
+    'CCLevenshtein.S.Index.t ->
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+    'CCLevenshtein.S.Index.t
+  val of_gen :
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+    'CCLevenshtein.S.Index.t
+  val to_gen :
+    'CCLevenshtein.S.Index.t ->
+    (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen
+  val fold :
+    ('-> CCLevenshtein.S.string_ -> '-> 'a) ->
+    '-> 'CCLevenshtein.S.Index.t -> 'a
+  val iter :
+    (CCLevenshtein.S.string_ -> '-> unit) ->
+    'CCLevenshtein.S.Index.t -> unit
+  val to_klist :
+    'CCLevenshtein.S.Index.t ->
+    (CCLevenshtein.S.string_ * 'b) CCLevenshtein.klist
+end
\ No newline at end of file diff --git a/0.17/type_CCLevenshtein.S.html b/0.17/type_CCLevenshtein.S.html new file mode 100644 index 00000000..e66d95a6 --- /dev/null +++ b/0.17/type_CCLevenshtein.S.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.S + + +sig
+  type char_
+  type string_
+  val edit_distance :
+    CCLevenshtein.S.string_ -> CCLevenshtein.S.string_ -> int
+  type automaton
+  val of_string :
+    limit:int -> CCLevenshtein.S.string_ -> CCLevenshtein.S.automaton
+  val of_list :
+    limit:int -> CCLevenshtein.S.char_ list -> CCLevenshtein.S.automaton
+  val debug_print :
+    (Pervasives.out_channel -> CCLevenshtein.S.char_ -> unit) ->
+    Pervasives.out_channel -> CCLevenshtein.S.automaton -> unit
+  val match_with :
+    CCLevenshtein.S.automaton -> CCLevenshtein.S.string_ -> bool
+  module Index :
+    sig
+      type 'b t
+      val empty : 'CCLevenshtein.S.Index.t
+      val is_empty : 'CCLevenshtein.S.Index.t -> bool
+      val add :
+        'CCLevenshtein.S.Index.t ->
+        CCLevenshtein.S.string_ -> '-> 'CCLevenshtein.S.Index.t
+      val cardinal : 'CCLevenshtein.S.Index.t -> int
+      val remove :
+        'CCLevenshtein.S.Index.t ->
+        CCLevenshtein.S.string_ -> 'CCLevenshtein.S.Index.t
+      val retrieve :
+        limit:int ->
+        'CCLevenshtein.S.Index.t ->
+        CCLevenshtein.S.string_ -> 'CCLevenshtein.klist
+      val of_list :
+        (CCLevenshtein.S.string_ * 'b) list -> 'CCLevenshtein.S.Index.t
+      val to_list :
+        'CCLevenshtein.S.Index.t -> (CCLevenshtein.S.string_ * 'b) list
+      val add_seq :
+        'CCLevenshtein.S.Index.t ->
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+        'CCLevenshtein.S.Index.t
+      val of_seq :
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+        'CCLevenshtein.S.Index.t
+      val to_seq :
+        'CCLevenshtein.S.Index.t ->
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence
+      val add_gen :
+        'CCLevenshtein.S.Index.t ->
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+        'CCLevenshtein.S.Index.t
+      val of_gen :
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+        'CCLevenshtein.S.Index.t
+      val to_gen :
+        'CCLevenshtein.S.Index.t ->
+        (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen
+      val fold :
+        ('-> CCLevenshtein.S.string_ -> '-> 'a) ->
+        '-> 'CCLevenshtein.S.Index.t -> 'a
+      val iter :
+        (CCLevenshtein.S.string_ -> '-> unit) ->
+        'CCLevenshtein.S.Index.t -> unit
+      val to_klist :
+        'CCLevenshtein.S.Index.t ->
+        (CCLevenshtein.S.string_ * 'b) CCLevenshtein.klist
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCLevenshtein.STRING.html b/0.17/type_CCLevenshtein.STRING.html new file mode 100644 index 00000000..94c974e4 --- /dev/null +++ b/0.17/type_CCLevenshtein.STRING.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein.STRING + + +sig
+  type char_
+  type t
+  val of_list : CCLevenshtein.STRING.char_ list -> CCLevenshtein.STRING.t
+  val get : CCLevenshtein.STRING.t -> int -> CCLevenshtein.STRING.char_
+  val length : CCLevenshtein.STRING.t -> int
+  val compare_char :
+    CCLevenshtein.STRING.char_ -> CCLevenshtein.STRING.char_ -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCLevenshtein.html b/0.17/type_CCLevenshtein.html new file mode 100644 index 00000000..123bbb6e --- /dev/null +++ b/0.17/type_CCLevenshtein.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLevenshtein + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  module type STRING =
+    sig
+      type char_
+      type t
+      val of_list : CCLevenshtein.STRING.char_ list -> CCLevenshtein.STRING.t
+      val get : CCLevenshtein.STRING.t -> int -> CCLevenshtein.STRING.char_
+      val length : CCLevenshtein.STRING.t -> int
+      val compare_char :
+        CCLevenshtein.STRING.char_ -> CCLevenshtein.STRING.char_ -> int
+    end
+  type 'a klist = unit -> [ `Cons of 'a * 'CCLevenshtein.klist | `Nil ]
+  val klist_to_list : 'CCLevenshtein.klist -> 'a list
+  module type S =
+    sig
+      type char_
+      type string_
+      val edit_distance :
+        CCLevenshtein.S.string_ -> CCLevenshtein.S.string_ -> int
+      type automaton
+      val of_string :
+        limit:int -> CCLevenshtein.S.string_ -> CCLevenshtein.S.automaton
+      val of_list :
+        limit:int -> CCLevenshtein.S.char_ list -> CCLevenshtein.S.automaton
+      val debug_print :
+        (Pervasives.out_channel -> CCLevenshtein.S.char_ -> unit) ->
+        Pervasives.out_channel -> CCLevenshtein.S.automaton -> unit
+      val match_with :
+        CCLevenshtein.S.automaton -> CCLevenshtein.S.string_ -> bool
+      module Index :
+        sig
+          type 'b t
+          val empty : 'CCLevenshtein.S.Index.t
+          val is_empty : 'CCLevenshtein.S.Index.t -> bool
+          val add :
+            'CCLevenshtein.S.Index.t ->
+            CCLevenshtein.S.string_ -> '-> 'CCLevenshtein.S.Index.t
+          val cardinal : 'CCLevenshtein.S.Index.t -> int
+          val remove :
+            'CCLevenshtein.S.Index.t ->
+            CCLevenshtein.S.string_ -> 'CCLevenshtein.S.Index.t
+          val retrieve :
+            limit:int ->
+            'CCLevenshtein.S.Index.t ->
+            CCLevenshtein.S.string_ -> 'CCLevenshtein.klist
+          val of_list :
+            (CCLevenshtein.S.string_ * 'b) list -> 'CCLevenshtein.S.Index.t
+          val to_list :
+            'CCLevenshtein.S.Index.t -> (CCLevenshtein.S.string_ * 'b) list
+          val add_seq :
+            'CCLevenshtein.S.Index.t ->
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+            'CCLevenshtein.S.Index.t
+          val of_seq :
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence ->
+            'CCLevenshtein.S.Index.t
+          val to_seq :
+            'CCLevenshtein.S.Index.t ->
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.sequence
+          val add_gen :
+            'CCLevenshtein.S.Index.t ->
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+            'CCLevenshtein.S.Index.t
+          val of_gen :
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen ->
+            'CCLevenshtein.S.Index.t
+          val to_gen :
+            'CCLevenshtein.S.Index.t ->
+            (CCLevenshtein.S.string_ * 'a) CCLevenshtein.gen
+          val fold :
+            ('-> CCLevenshtein.S.string_ -> '-> 'a) ->
+            '-> 'CCLevenshtein.S.Index.t -> 'a
+          val iter :
+            (CCLevenshtein.S.string_ -> '-> unit) ->
+            'CCLevenshtein.S.Index.t -> unit
+          val to_klist :
+            'CCLevenshtein.S.Index.t ->
+            (CCLevenshtein.S.string_ * 'b) CCLevenshtein.klist
+        end
+    end
+  module Make :
+    functor (Str : STRING->
+      sig
+        type char_ = Str.char_
+        type string_ = Str.t
+        val edit_distance : string_ -> string_ -> int
+        type automaton
+        val of_string : limit:int -> string_ -> automaton
+        val of_list : limit:int -> char_ list -> automaton
+        val debug_print :
+          (out_channel -> char_ -> unit) -> out_channel -> automaton -> unit
+        val match_with : automaton -> string_ -> bool
+        module Index :
+          sig
+            type 'b t
+            val empty : 'b t
+            val is_empty : 'a t -> bool
+            val add : 'b t -> string_ -> '-> 'b t
+            val cardinal : 'a t -> int
+            val remove : 'b t -> string_ -> 'b t
+            val retrieve : limit:int -> 'b t -> string_ -> 'b klist
+            val of_list : (string_ * 'b) list -> 'b t
+            val to_list : 'b t -> (string_ * 'b) list
+            val add_seq : 'a t -> (string_ * 'a) sequence -> 'a t
+            val of_seq : (string_ * 'a) sequence -> 'a t
+            val to_seq : 'a t -> (string_ * 'a) sequence
+            val add_gen : 'a t -> (string_ * 'a) gen -> 'a t
+            val of_gen : (string_ * 'a) gen -> 'a t
+            val to_gen : 'a t -> (string_ * 'a) gen
+            val fold : ('-> string_ -> '-> 'a) -> '-> 'b t -> 'a
+            val iter : (string_ -> '-> unit) -> 'b t -> unit
+            val to_klist : 'b t -> (string_ * 'b) klist
+          end
+      end
+  type char_ = char
+  type string_ = string
+  val edit_distance : string_ -> string_ -> int
+  type automaton
+  val of_string : limit:int -> string_ -> automaton
+  val of_list : limit:int -> char_ list -> automaton
+  val match_with : automaton -> string_ -> bool
+  module Index :
+    sig
+      type 'b t
+      val empty : 'b t
+      val is_empty : 'a t -> bool
+      val add : 'b t -> string_ -> '-> 'b t
+      val cardinal : 'a t -> int
+      val remove : 'b t -> string_ -> 'b t
+      val retrieve : limit:int -> 'b t -> string_ -> 'b klist
+      val of_list : (string_ * 'b) list -> 'b t
+      val to_list : 'b t -> (string_ * 'b) list
+      val add_seq : 'a t -> (string_ * 'a) sequence -> 'a t
+      val of_seq : (string_ * 'a) sequence -> 'a t
+      val to_seq : 'a t -> (string_ * 'a) sequence
+      val add_gen : 'a t -> (string_ * 'a) gen -> 'a t
+      val of_gen : (string_ * 'a) gen -> 'a t
+      val to_gen : 'a t -> (string_ * 'a) gen
+      val fold : ('-> string_ -> '-> 'a) -> '-> 'b t -> 'a
+      val iter : (string_ -> '-> unit) -> 'b t -> unit
+      val to_klist : 'b t -> (string_ * 'b) klist
+    end
+  val debug_print : Pervasives.out_channel -> automaton -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.AdaptMap.html b/0.17/type_CCLinq.AdaptMap.html new file mode 100644 index 00000000..03c0c52a --- /dev/null +++ b/0.17/type_CCLinq.AdaptMap.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.AdaptMap + + +functor (M : Map.S->
+  sig
+    val of_map : 'M.t -> (M.key * 'a) CCLinq.t
+    val to_pmap : 'M.t -> (M.key, 'a) CCLinq.PMap.t
+    val to_map : (M.key * 'a) CCLinq.t -> 'M.t CCLinq.t
+    val run : (M.key * 'a) CCLinq.t -> 'M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCLinq.AdaptSet.html b/0.17/type_CCLinq.AdaptSet.html new file mode 100644 index 00000000..ae48560a --- /dev/null +++ b/0.17/type_CCLinq.AdaptSet.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.AdaptSet + + +functor (S : Set.S->
+  sig
+    val of_set : S.t -> S.elt CCLinq.t
+    val to_set : S.elt CCLinq.t -> S.t CCLinq.t
+    val run : S.elt CCLinq.t -> S.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCLinq.Array.html b/0.17/type_CCLinq.Array.html new file mode 100644 index 00000000..29cdfa0a --- /dev/null +++ b/0.17/type_CCLinq.Array.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.Array + + +sig
+  val of_array : 'a array -> 'CCLinq.t
+  val to_array : 'CCLinq.t -> 'a array CCLinq.t
+  val run : 'CCLinq.t -> 'a array
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.IO.html b/0.17/type_CCLinq.IO.html new file mode 100644 index 00000000..d264cdc3 --- /dev/null +++ b/0.17/type_CCLinq.IO.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.IO + + +sig
+  val slurp : Pervasives.in_channel -> string CCLinq.t
+  val slurp_file : string -> string CCLinq.t
+  val lines : string CCLinq.t -> string CCLinq.t
+  val lines' : string CCLinq.t -> string list CCLinq.t
+  val join : string -> string CCLinq.t -> string CCLinq.t
+  val unlines : string CCLinq.t -> string CCLinq.t
+  val out : Pervasives.out_channel -> string CCLinq.t -> unit
+  val out_lines : Pervasives.out_channel -> string CCLinq.t -> unit
+  val to_file : string -> string CCLinq.t -> unit CCLinq.with_err
+  val to_file_exn : string -> string CCLinq.t -> unit
+  val to_file_lines : string -> string CCLinq.t -> unit CCLinq.with_err
+  val to_file_lines_exn : string -> string CCLinq.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.Infix.html b/0.17/type_CCLinq.Infix.html new file mode 100644 index 00000000..d74d6c57 --- /dev/null +++ b/0.17/type_CCLinq.Infix.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.Infix + + +sig
+  val ( >>= ) : 'CCLinq.t -> ('-> 'CCLinq.t) -> 'CCLinq.t
+  val ( >|= ) : 'CCLinq.t -> ('-> 'b) -> 'CCLinq.t
+  val ( <*> ) : ('-> 'b) CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val ( -- ) : int -> int -> int CCLinq.t
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.List.html b/0.17/type_CCLinq.List.html new file mode 100644 index 00000000..844982e7 --- /dev/null +++ b/0.17/type_CCLinq.List.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.List + + +sig
+  val of_list : 'a list -> 'CCLinq.t
+  val to_list : 'CCLinq.t -> 'a list CCLinq.t
+  val run : 'CCLinq.t -> 'a list
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.PMap.html b/0.17/type_CCLinq.PMap.html new file mode 100644 index 00000000..3c6faaf4 --- /dev/null +++ b/0.17/type_CCLinq.PMap.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq.PMap + + +sig
+  type ('a, 'b) t
+  val get : ('a, 'b) CCLinq.PMap.t -> '-> 'b option
+  val size : ('a, 'b) CCLinq.PMap.t -> int
+  val to_seq : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+  val map : ('-> 'c) -> ('a, 'b) CCLinq.PMap.t -> ('a, 'c) CCLinq.PMap.t
+  val to_list : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) list
+  val reverse :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    unit -> ('a, 'b) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
+  val reverse_multimap :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    unit -> ('a, 'b list) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
+  val fold :
+    ('acc -> '-> '-> 'acc) -> 'acc -> ('a, 'b) CCLinq.PMap.t -> 'acc
+  val fold_multimap :
+    ('acc -> '-> '-> 'acc) -> 'acc -> ('a, 'b list) CCLinq.PMap.t -> 'acc
+  val get_seq : '-> ('a, 'b) CCLinq.PMap.t -> 'CCLinq.sequence
+  val iter : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+  val flatten :
+    ('a, 'CCLinq.sequence) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+  val flatten_l : ('a, 'b list) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCLinq.html b/0.17/type_CCLinq.html new file mode 100644 index 00000000..fabeaf24 --- /dev/null +++ b/0.17/type_CCLinq.html @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLinq + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a hash = '-> int
+  type 'a with_err = [ `Error of string | `Ok of 'a ]
+  module PMap :
+    sig
+      type ('a, 'b) t
+      val get : ('a, 'b) CCLinq.PMap.t -> '-> 'b option
+      val size : ('a, 'b) CCLinq.PMap.t -> int
+      val to_seq : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+      val map :
+        ('-> 'c) -> ('a, 'b) CCLinq.PMap.t -> ('a, 'c) CCLinq.PMap.t
+      val to_list : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) list
+      val reverse :
+        ?cmp:'CCLinq.ord ->
+        ?eq:'CCLinq.equal ->
+        ?hash:'CCLinq.hash ->
+        unit -> ('a, 'b) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
+      val reverse_multimap :
+        ?cmp:'CCLinq.ord ->
+        ?eq:'CCLinq.equal ->
+        ?hash:'CCLinq.hash ->
+        unit -> ('a, 'b list) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
+      val fold :
+        ('acc -> '-> '-> 'acc) -> 'acc -> ('a, 'b) CCLinq.PMap.t -> 'acc
+      val fold_multimap :
+        ('acc -> '-> '-> 'acc) ->
+        'acc -> ('a, 'b list) CCLinq.PMap.t -> 'acc
+      val get_seq : '-> ('a, 'b) CCLinq.PMap.t -> 'CCLinq.sequence
+      val iter : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+      val flatten :
+        ('a, 'CCLinq.sequence) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+      val flatten_l :
+        ('a, 'b list) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
+    end
+  type 'a t
+  val empty : 'CCLinq.t
+  val start : '-> 'CCLinq.t
+  val return : '-> 'CCLinq.t
+  val of_list : 'a list -> 'CCLinq.t
+  val of_array : 'a array -> 'CCLinq.t
+  val of_array_i : 'a array -> (int * 'a) CCLinq.t
+  val range : int -> int -> int CCLinq.t
+  val ( -- ) : int -> int -> int CCLinq.t
+  val of_hashtbl : ('a, 'b) Hashtbl.t -> ('a * 'b) CCLinq.t
+  val of_seq : 'CCLinq.sequence -> 'CCLinq.t
+  val of_queue : 'Queue.t -> 'CCLinq.t
+  val of_stack : 'Stack.t -> 'CCLinq.t
+  val of_string : string -> char CCLinq.t
+  val run : ?limit:int -> 'CCLinq.t -> 'CCLinq.sequence
+  val run1 : 'CCLinq.t -> 'a
+  val run_no_optim : ?limit:int -> 'CCLinq.t -> 'CCLinq.sequence
+  val map : ('-> 'b) -> 'CCLinq.t -> 'CCLinq.t
+  val ( >|= ) : 'CCLinq.t -> ('-> 'b) -> 'CCLinq.t
+  val filter : ('-> bool) -> 'CCLinq.t -> 'CCLinq.t
+  val size : 'CCLinq.t -> int CCLinq.t
+  val choose : 'CCLinq.t -> 'CCLinq.t
+  val filter_map : ('-> 'b option) -> 'CCLinq.t -> 'CCLinq.t
+  val flat_map : ('-> 'CCLinq.sequence) -> 'CCLinq.t -> 'CCLinq.t
+  val flat_map_l : ('-> 'b list) -> 'CCLinq.t -> 'CCLinq.t
+  val flatten : 'a list CCLinq.t -> 'CCLinq.t
+  val flatten_seq : 'CCLinq.sequence CCLinq.t -> 'CCLinq.t
+  val take : int -> 'CCLinq.t -> 'CCLinq.t
+  val take_while : ('-> bool) -> 'CCLinq.t -> 'CCLinq.t
+  val sort : ?cmp:'CCLinq.ord -> unit -> 'CCLinq.t -> 'CCLinq.t
+  val distinct : ?cmp:'CCLinq.ord -> unit -> 'CCLinq.t -> 'CCLinq.t
+  val group_by :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    ('-> 'b) -> 'CCLinq.t -> ('b, 'a list) CCLinq.PMap.t CCLinq.t
+  val group_by' :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    ('-> 'b) -> 'CCLinq.t -> ('b * 'a list) CCLinq.t
+  val count :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    unit -> 'CCLinq.t -> ('a, int) CCLinq.PMap.t CCLinq.t
+  val count' :
+    ?cmp:'CCLinq.ord -> unit -> 'CCLinq.t -> ('a * int) CCLinq.t
+  val fold : ('-> '-> 'b) -> '-> 'CCLinq.t -> 'CCLinq.t
+  val reduce :
+    ('-> 'b) ->
+    ('-> '-> 'b) -> ('-> 'c) -> 'CCLinq.t -> 'CCLinq.t
+  val is_empty : 'CCLinq.t -> bool CCLinq.t
+  val sum : int CCLinq.t -> int CCLinq.t
+  val contains : ?eq:'CCLinq.equal -> '-> 'CCLinq.t -> bool CCLinq.t
+  val average : int CCLinq.t -> int CCLinq.t
+  val max : int CCLinq.t -> int CCLinq.t
+  val min : int CCLinq.t -> int CCLinq.t
+  val for_all : ('-> bool) -> 'CCLinq.t -> bool CCLinq.t
+  val exists : ('-> bool) -> 'CCLinq.t -> bool CCLinq.t
+  val find : ('-> bool) -> 'CCLinq.t -> 'a option CCLinq.t
+  val find_map : ('-> 'b option) -> 'CCLinq.t -> 'b option CCLinq.t
+  val join :
+    ?cmp:'key CCLinq.ord ->
+    ?eq:'key CCLinq.equal ->
+    ?hash:'key CCLinq.hash ->
+    ('-> 'key) ->
+    ('-> 'key) ->
+    merge:('key -> '-> '-> 'c option) ->
+    'CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val group_join :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash ->
+    ('-> 'a) ->
+    'CCLinq.t -> 'CCLinq.t -> ('a, 'b list) CCLinq.PMap.t CCLinq.t
+  val product : 'CCLinq.t -> 'CCLinq.t -> ('a * 'b) CCLinq.t
+  val append : 'CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val inter :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash -> unit -> 'CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val union :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash -> unit -> 'CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val diff :
+    ?cmp:'CCLinq.ord ->
+    ?eq:'CCLinq.equal ->
+    ?hash:'CCLinq.hash -> unit -> 'CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val fst : ('a * 'b) CCLinq.t -> 'CCLinq.t
+  val snd : ('a * 'b) CCLinq.t -> 'CCLinq.t
+  val map1 : ('-> 'b) -> ('a * 'c) CCLinq.t -> ('b * 'c) CCLinq.t
+  val map2 : ('-> 'b) -> ('c * 'a) CCLinq.t -> ('c * 'b) CCLinq.t
+  val flatten_opt : 'a option CCLinq.t -> 'CCLinq.t
+  val pure : '-> 'CCLinq.t
+  val app : ('-> 'b) CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val ( <*> ) : ('-> 'b) CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+  val bind : ('-> 'CCLinq.t) -> 'CCLinq.t -> 'CCLinq.t
+  val ( >>= ) : 'CCLinq.t -> ('-> 'CCLinq.t) -> 'CCLinq.t
+  val lazy_ : 'a lazy_t CCLinq.t -> 'CCLinq.t
+  val opt_unwrap : 'a option CCLinq.t -> 'CCLinq.t
+  val reflect : 'CCLinq.t -> 'CCLinq.sequence CCLinq.t
+  module Infix :
+    sig
+      val ( >>= ) : 'CCLinq.t -> ('-> 'CCLinq.t) -> 'CCLinq.t
+      val ( >|= ) : 'CCLinq.t -> ('-> 'b) -> 'CCLinq.t
+      val ( <*> ) : ('-> 'b) CCLinq.t -> 'CCLinq.t -> 'CCLinq.t
+      val ( -- ) : int -> int -> int CCLinq.t
+    end
+  val to_seq : 'CCLinq.t -> 'CCLinq.sequence CCLinq.t
+  val to_hashtbl : ('a * 'b) CCLinq.t -> ('a, 'b) Hashtbl.t CCLinq.t
+  val to_queue : 'CCLinq.t -> 'Queue.t CCLinq.t
+  val to_stack : 'CCLinq.t -> 'Stack.t CCLinq.t
+  module List :
+    sig
+      val of_list : 'a list -> 'CCLinq.t
+      val to_list : 'CCLinq.t -> 'a list CCLinq.t
+      val run : 'CCLinq.t -> 'a list
+    end
+  module Array :
+    sig
+      val of_array : 'a array -> 'CCLinq.t
+      val to_array : 'CCLinq.t -> 'a array CCLinq.t
+      val run : 'CCLinq.t -> 'a array
+    end
+  module AdaptSet :
+    functor (S : Set.S->
+      sig
+        val of_set : S.t -> S.elt CCLinq.t
+        val to_set : S.elt CCLinq.t -> S.t CCLinq.t
+        val run : S.elt CCLinq.t -> S.t
+      end
+  module AdaptMap :
+    functor (M : Map.S->
+      sig
+        val of_map : 'M.t -> (M.key * 'a) CCLinq.t
+        val to_pmap : 'M.t -> (M.key, 'a) CCLinq.PMap.t
+        val to_map : (M.key * 'a) CCLinq.t -> 'M.t CCLinq.t
+        val run : (M.key * 'a) CCLinq.t -> 'M.t
+      end
+  module IO :
+    sig
+      val slurp : Pervasives.in_channel -> string CCLinq.t
+      val slurp_file : string -> string CCLinq.t
+      val lines : string CCLinq.t -> string CCLinq.t
+      val lines' : string CCLinq.t -> string list CCLinq.t
+      val join : string -> string CCLinq.t -> string CCLinq.t
+      val unlines : string CCLinq.t -> string CCLinq.t
+      val out : Pervasives.out_channel -> string CCLinq.t -> unit
+      val out_lines : Pervasives.out_channel -> string CCLinq.t -> unit
+      val to_file : string -> string CCLinq.t -> unit CCLinq.with_err
+      val to_file_exn : string -> string CCLinq.t -> unit
+      val to_file_lines : string -> string CCLinq.t -> unit CCLinq.with_err
+      val to_file_lines_exn : string -> string CCLinq.t -> unit
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Assoc.html b/0.17/type_CCList.Assoc.html new file mode 100644 index 00000000..febbe509 --- /dev/null +++ b/0.17/type_CCList.Assoc.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Assoc + + +sig
+  type ('a, 'b) t = ('a * 'b) list
+  val get :
+    ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> 'b option
+  val get_exn : ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> 'b
+  val set :
+    ?eq:('-> '-> bool) ->
+    ('a, 'b) CCList.Assoc.t -> '-> '-> ('a, 'b) CCList.Assoc.t
+  val mem : ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> bool
+  val update :
+    ?eq:('-> '-> bool) ->
+    ('a, 'b) CCList.Assoc.t ->
+    '-> f:('b option -> 'b option) -> ('a, 'b) CCList.Assoc.t
+  val remove :
+    ?eq:('-> '-> bool) ->
+    ('a, 'b) CCList.Assoc.t -> '-> ('a, 'b) CCList.Assoc.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Idx.html b/0.17/type_CCList.Idx.html new file mode 100644 index 00000000..4eb386a6 --- /dev/null +++ b/0.17/type_CCList.Idx.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Idx + + +sig
+  val mapi : (int -> '-> 'b) -> 'CCList.t -> 'CCList.t
+  val iteri : (int -> '-> unit) -> 'CCList.t -> unit
+  val foldi : ('-> int -> '-> 'b) -> '-> 'CCList.t -> 'b
+  val get : 'CCList.t -> int -> 'a option
+  val get_exn : 'CCList.t -> int -> 'a
+  val set : 'CCList.t -> int -> '-> 'CCList.t
+  val insert : 'CCList.t -> int -> '-> 'CCList.t
+  val remove : 'CCList.t -> int -> 'CCList.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Infix.html b/0.17/type_CCList.Infix.html new file mode 100644 index 00000000..e946e495 --- /dev/null +++ b/0.17/type_CCList.Infix.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Infix + + +sig
+  val ( >|= ) : 'CCList.t -> ('-> 'b) -> 'CCList.t
+  val ( @ ) : 'CCList.t -> 'CCList.t -> 'CCList.t
+  val ( <*> ) : ('-> 'b) CCList.t -> 'CCList.t -> 'CCList.t
+  val ( <$> ) : ('-> 'b) -> 'CCList.t -> 'CCList.t
+  val ( >>= ) : 'CCList.t -> ('-> 'CCList.t) -> 'CCList.t
+  val ( -- ) : int -> int -> int CCList.t
+  val ( --^ ) : int -> int -> int CCList.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.MONAD.html b/0.17/type_CCList.MONAD.html new file mode 100644 index 00000000..8be12a1d --- /dev/null +++ b/0.17/type_CCList.MONAD.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.MONAD + + +sig
+  type 'a t
+  val return : '-> 'CCList.MONAD.t
+  val ( >>= ) :
+    'CCList.MONAD.t -> ('-> 'CCList.MONAD.t) -> 'CCList.MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Ref.html b/0.17/type_CCList.Ref.html new file mode 100644 index 00000000..3c5d0935 --- /dev/null +++ b/0.17/type_CCList.Ref.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Ref + + +sig
+  type 'a t = 'a list Pervasives.ref
+  val push : 'CCList.Ref.t -> '-> unit
+  val pop : 'CCList.Ref.t -> 'a option
+  val pop_exn : 'CCList.Ref.t -> 'a
+  val create : unit -> 'CCList.Ref.t
+  val clear : 'CCList.Ref.t -> unit
+  val lift : ('a list -> 'b) -> 'CCList.Ref.t -> 'b
+  val push_list : 'CCList.Ref.t -> 'a list -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Set.html b/0.17/type_CCList.Set.html new file mode 100644 index 00000000..ec982676 --- /dev/null +++ b/0.17/type_CCList.Set.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Set + + +sig
+  val add : ?eq:('-> '-> bool) -> '-> 'CCList.t -> 'CCList.t
+  val remove : ?eq:('-> '-> bool) -> '-> 'CCList.t -> 'CCList.t
+  val mem : ?eq:('-> '-> bool) -> '-> 'CCList.t -> bool
+  val subset : ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> bool
+  val uniq : ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t
+  val union :
+    ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> 'CCList.t
+  val inter :
+    ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> 'CCList.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.Traverse.html b/0.17/type_CCList.Traverse.html new file mode 100644 index 00000000..7fe9d797 --- /dev/null +++ b/0.17/type_CCList.Traverse.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Traverse + + +functor (M : MONAD->
+  sig
+    val sequence_m : 'M.t CCList.t -> 'CCList.t M.t
+    val fold_m : ('-> '-> 'M.t) -> '-> 'CCList.t -> 'M.t
+    val map_m : ('-> 'M.t) -> 'CCList.t -> 'CCList.t M.t
+    val map_m_par : ('-> 'M.t) -> 'CCList.t -> 'CCList.t M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCList.Zipper.html b/0.17/type_CCList.Zipper.html new file mode 100644 index 00000000..4fadb0f5 --- /dev/null +++ b/0.17/type_CCList.Zipper.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList.Zipper + + +sig
+  type 'a t = 'a list * 'a list
+  val empty : 'CCList.Zipper.t
+  val is_empty : 'CCList.Zipper.t -> bool
+  val to_list : 'CCList.Zipper.t -> 'a list
+  val to_rev_list : 'CCList.Zipper.t -> 'a list
+  val make : 'a list -> 'CCList.Zipper.t
+  val left : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val left_exn : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val right : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val right_exn : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val modify :
+    ('a option -> 'a option) -> 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val insert : '-> 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val remove : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val is_focused : 'CCList.Zipper.t -> bool
+  val focused : 'CCList.Zipper.t -> 'a option
+  val focused_exn : 'CCList.Zipper.t -> 'a
+  val drop_before : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val drop_after : 'CCList.Zipper.t -> 'CCList.Zipper.t
+  val drop_after_and_focused : 'CCList.Zipper.t -> 'CCList.Zipper.t
+end
\ No newline at end of file diff --git a/0.17/type_CCList.html b/0.17/type_CCList.html new file mode 100644 index 00000000..2945f5af --- /dev/null +++ b/0.17/type_CCList.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCList + + +sig
+  type 'a t = 'a list
+  val empty : 'CCList.t
+  val is_empty : 'CCList.t -> bool
+  val map : ('-> 'b) -> 'CCList.t -> 'CCList.t
+  val ( >|= ) : 'CCList.t -> ('-> 'b) -> 'CCList.t
+  val cons : '-> 'CCList.t -> 'CCList.t
+  val append : 'CCList.t -> 'CCList.t -> 'CCList.t
+  val cons_maybe : 'a option -> 'CCList.t -> 'CCList.t
+  val ( @ ) : 'CCList.t -> 'CCList.t -> 'CCList.t
+  val filter : ('-> bool) -> 'CCList.t -> 'CCList.t
+  val fold_right : ('-> '-> 'b) -> 'CCList.t -> '-> 'b
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'CCList.t -> 'a
+  val fold_map :
+    ('acc -> '-> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list
+  val fold_map2 :
+    ('acc -> '-> '-> 'acc * 'c) ->
+    'acc -> 'a list -> 'b list -> 'acc * 'c list
+  val fold_filter_map :
+    ('acc -> '-> 'acc * 'b option) -> 'acc -> 'a list -> 'acc * 'b list
+  val fold_flat_map :
+    ('acc -> '-> 'acc * 'b list) -> 'acc -> 'a list -> 'acc * 'b list
+  val init : int -> (int -> 'a) -> 'CCList.t
+  val compare : ('-> '-> int) -> 'CCList.t -> 'CCList.t -> int
+  val equal : ('-> '-> bool) -> 'CCList.t -> 'CCList.t -> bool
+  val flat_map : ('-> 'CCList.t) -> 'CCList.t -> 'CCList.t
+  val flatten : 'CCList.t CCList.t -> 'CCList.t
+  val product : ('-> '-> 'c) -> 'CCList.t -> 'CCList.t -> 'CCList.t
+  val fold_product :
+    ('-> '-> '-> 'c) -> '-> 'CCList.t -> 'CCList.t -> 'c
+  val diagonal : 'CCList.t -> ('a * 'a) CCList.t
+  val partition_map :
+    ('-> [< `Drop | `Left of '| `Right of 'c ]) ->
+    'a list -> 'b list * 'c list
+  val pure : '-> 'CCList.t
+  val ( <*> ) : ('-> 'b) CCList.t -> 'CCList.t -> 'CCList.t
+  val ( <$> ) : ('-> 'b) -> 'CCList.t -> 'CCList.t
+  val return : '-> 'CCList.t
+  val ( >>= ) : 'CCList.t -> ('-> 'CCList.t) -> 'CCList.t
+  val take : int -> 'CCList.t -> 'CCList.t
+  val drop : int -> 'CCList.t -> 'CCList.t
+  val hd_tl : 'CCList.t -> 'a * 'CCList.t
+  val take_drop : int -> 'CCList.t -> 'CCList.t * 'CCList.t
+  val take_while : ('-> bool) -> 'CCList.t -> 'CCList.t
+  val drop_while : ('-> bool) -> 'CCList.t -> 'CCList.t
+  val split : int -> 'CCList.t -> 'CCList.t * 'CCList.t
+  val last : int -> 'CCList.t -> 'CCList.t
+  val find_pred : ('-> bool) -> 'CCList.t -> 'a option
+  val find_pred_exn : ('-> bool) -> 'CCList.t -> 'a
+  val find_map : ('-> 'b option) -> 'CCList.t -> 'b option
+  val find : ('-> 'b option) -> 'a list -> 'b option
+  val find_mapi : (int -> '-> 'b option) -> 'CCList.t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'CCList.t -> 'b option
+  val find_idx : ('-> bool) -> 'CCList.t -> (int * 'a) option
+  val remove : ?eq:('-> '-> bool) -> x:'-> 'CCList.t -> 'CCList.t
+  val filter_map : ('-> 'b option) -> 'CCList.t -> 'CCList.t
+  val sorted_merge : ?cmp:('-> '-> int) -> 'a list -> 'a list -> 'a list
+  val sort_uniq : ?cmp:('-> '-> int) -> 'a list -> 'a list
+  val sorted_merge_uniq :
+    ?cmp:('-> '-> int) -> 'a list -> 'a list -> 'a list
+  val is_sorted : ?cmp:('-> '-> int) -> 'a list -> bool
+  val sorted_insert :
+    ?cmp:('-> '-> int) -> ?uniq:bool -> '-> 'a list -> 'a list
+  val uniq_succ : ?eq:('-> '-> bool) -> 'a list -> 'a list
+  val group_succ : ?eq:('-> '-> bool) -> 'a list -> 'a list list
+  module Idx :
+    sig
+      val mapi : (int -> '-> 'b) -> 'CCList.t -> 'CCList.t
+      val iteri : (int -> '-> unit) -> 'CCList.t -> unit
+      val foldi : ('-> int -> '-> 'b) -> '-> 'CCList.t -> 'b
+      val get : 'CCList.t -> int -> 'a option
+      val get_exn : 'CCList.t -> int -> 'a
+      val set : 'CCList.t -> int -> '-> 'CCList.t
+      val insert : 'CCList.t -> int -> '-> 'CCList.t
+      val remove : 'CCList.t -> int -> 'CCList.t
+    end
+  module Set :
+    sig
+      val add : ?eq:('-> '-> bool) -> '-> 'CCList.t -> 'CCList.t
+      val remove : ?eq:('-> '-> bool) -> '-> 'CCList.t -> 'CCList.t
+      val mem : ?eq:('-> '-> bool) -> '-> 'CCList.t -> bool
+      val subset :
+        ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> bool
+      val uniq : ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t
+      val union :
+        ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> 'CCList.t
+      val inter :
+        ?eq:('-> '-> bool) -> 'CCList.t -> 'CCList.t -> 'CCList.t
+    end
+  val range : int -> int -> int CCList.t
+  val range' : int -> int -> int CCList.t
+  val ( -- ) : int -> int -> int CCList.t
+  val ( --^ ) : int -> int -> int CCList.t
+  val replicate : int -> '-> 'CCList.t
+  val repeat : int -> 'CCList.t -> 'CCList.t
+  module Assoc :
+    sig
+      type ('a, 'b) t = ('a * 'b) list
+      val get :
+        ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> 'b option
+      val get_exn :
+        ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> 'b
+      val set :
+        ?eq:('-> '-> bool) ->
+        ('a, 'b) CCList.Assoc.t -> '-> '-> ('a, 'b) CCList.Assoc.t
+      val mem :
+        ?eq:('-> '-> bool) -> ('a, 'b) CCList.Assoc.t -> '-> bool
+      val update :
+        ?eq:('-> '-> bool) ->
+        ('a, 'b) CCList.Assoc.t ->
+        '-> f:('b option -> 'b option) -> ('a, 'b) CCList.Assoc.t
+      val remove :
+        ?eq:('-> '-> bool) ->
+        ('a, 'b) CCList.Assoc.t -> '-> ('a, 'b) CCList.Assoc.t
+    end
+  module Zipper :
+    sig
+      type 'a t = 'a list * 'a list
+      val empty : 'CCList.Zipper.t
+      val is_empty : 'CCList.Zipper.t -> bool
+      val to_list : 'CCList.Zipper.t -> 'a list
+      val to_rev_list : 'CCList.Zipper.t -> 'a list
+      val make : 'a list -> 'CCList.Zipper.t
+      val left : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val left_exn : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val right : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val right_exn : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val modify :
+        ('a option -> 'a option) -> 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val insert : '-> 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val remove : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val is_focused : 'CCList.Zipper.t -> bool
+      val focused : 'CCList.Zipper.t -> 'a option
+      val focused_exn : 'CCList.Zipper.t -> 'a
+      val drop_before : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val drop_after : 'CCList.Zipper.t -> 'CCList.Zipper.t
+      val drop_after_and_focused : 'CCList.Zipper.t -> 'CCList.Zipper.t
+    end
+  module Ref :
+    sig
+      type 'a t = 'a list Pervasives.ref
+      val push : 'CCList.Ref.t -> '-> unit
+      val pop : 'CCList.Ref.t -> 'a option
+      val pop_exn : 'CCList.Ref.t -> 'a
+      val create : unit -> 'CCList.Ref.t
+      val clear : 'CCList.Ref.t -> unit
+      val lift : ('a list -> 'b) -> 'CCList.Ref.t -> 'b
+      val push_list : 'CCList.Ref.t -> 'a list -> unit
+    end
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'CCList.MONAD.t
+      val ( >>= ) :
+        'CCList.MONAD.t -> ('-> 'CCList.MONAD.t) -> 'CCList.MONAD.t
+    end
+  module Traverse :
+    functor (M : MONAD->
+      sig
+        val sequence_m : 'M.t CCList.t -> 'CCList.t M.t
+        val fold_m : ('-> '-> 'M.t) -> '-> 'CCList.t -> 'M.t
+        val map_m : ('-> 'M.t) -> 'CCList.t -> 'CCList.t M.t
+        val map_m_par : ('-> 'M.t) -> 'CCList.t -> 'CCList.t M.t
+      end
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'CCList.klist | `Nil ]
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a random_gen = Random.State.t -> 'a
+  val random : 'CCList.random_gen -> 'CCList.t CCList.random_gen
+  val random_non_empty :
+    'CCList.random_gen -> 'CCList.t CCList.random_gen
+  val random_len :
+    int -> 'CCList.random_gen -> 'CCList.t CCList.random_gen
+  val random_choose : 'CCList.t -> 'CCList.random_gen
+  val random_sequence :
+    'CCList.random_gen CCList.t -> 'CCList.t CCList.random_gen
+  val to_seq : 'CCList.t -> 'CCList.sequence
+  val of_seq : 'CCList.sequence -> 'CCList.t
+  val to_gen : 'CCList.t -> 'CCList.gen
+  val of_gen : 'CCList.gen -> 'CCList.t
+  val to_klist : 'CCList.t -> 'CCList.klist
+  val of_klist : 'CCList.klist -> 'CCList.t
+  module Infix :
+    sig
+      val ( >|= ) : 'CCList.t -> ('-> 'b) -> 'CCList.t
+      val ( @ ) : 'CCList.t -> 'CCList.t -> 'CCList.t
+      val ( <*> ) : ('-> 'b) CCList.t -> 'CCList.t -> 'CCList.t
+      val ( <$> ) : ('-> 'b) -> 'CCList.t -> 'CCList.t
+      val ( >>= ) : 'CCList.t -> ('-> 'CCList.t) -> 'CCList.t
+      val ( -- ) : int -> int -> int CCList.t
+      val ( --^ ) : int -> int -> int CCList.t
+    end
+  val pp :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCList.printer -> 'CCList.t CCList.printer
+  val print :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCList.formatter -> 'CCList.t CCList.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCLock.LockRef.html b/0.17/type_CCLock.LockRef.html new file mode 100644 index 00000000..142b27f3 --- /dev/null +++ b/0.17/type_CCLock.LockRef.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLock.LockRef + + +sig
+  type 'a t
+  val get : 'CCLock.LockRef.t -> 'a
+  val set : 'CCLock.LockRef.t -> '-> unit
+  val update : 'CCLock.LockRef.t -> ('-> 'a) -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCLock.html b/0.17/type_CCLock.html new file mode 100644 index 00000000..78c48d59 --- /dev/null +++ b/0.17/type_CCLock.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCLock + + +sig
+  type 'a t
+  val create : '-> 'CCLock.t
+  val with_lock : 'CCLock.t -> ('-> 'b) -> 'b
+  module LockRef :
+    sig
+      type 'a t
+      val get : 'CCLock.LockRef.t -> 'a
+      val set : 'CCLock.LockRef.t -> '-> unit
+      val update : 'CCLock.LockRef.t -> ('-> 'a) -> unit
+    end
+  val with_lock_as_ref : 'CCLock.t -> f:('CCLock.LockRef.t -> 'b) -> 'b
+  val update : 'CCLock.t -> ('-> 'a) -> unit
+  val update_map : 'CCLock.t -> ('-> 'a * 'b) -> 'b
+  val mutex : 'CCLock.t -> Mutex.t
+  val get : 'CCLock.t -> 'a
+  val set : 'CCLock.t -> '-> unit
+  val incr : int CCLock.t -> unit
+  val decr : int CCLock.t -> unit
+  val incr_then_get : int CCLock.t -> int
+  val get_then_incr : int CCLock.t -> int
+  val decr_then_get : int CCLock.t -> int
+  val get_then_decr : int CCLock.t -> int
+  val get_then_set : bool CCLock.t -> bool
+  val get_then_clear : bool CCLock.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCMap.Make.html b/0.17/type_CCMap.Make.html new file mode 100644 index 00000000..0621e7bb --- /dev/null +++ b/0.17/type_CCMap.Make.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap.Make + + +functor (O : Map.OrderedType->
+  sig
+    type key = O.t
+    type 'a t = 'Map.Make(O).t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val mem : key -> 'a t -> bool
+    val add : key -> '-> 'a t -> 'a t
+    val singleton : key -> '-> 'a t
+    val remove : key -> 'a t -> 'a t
+    val merge :
+      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+    val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+    val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+    val iter : (key -> '-> unit) -> 'a t -> unit
+    val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+    val for_all : (key -> '-> bool) -> 'a t -> bool
+    val exists : (key -> '-> bool) -> 'a t -> bool
+    val filter : (key -> '-> bool) -> 'a t -> 'a t
+    val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
+    val cardinal : 'a t -> int
+    val bindings : 'a t -> (key * 'a) list
+    val min_binding : 'a t -> key * 'a
+    val max_binding : 'a t -> key * 'a
+    val choose : 'a t -> key * 'a
+    val split : key -> 'a t -> 'a t * 'a option * 'a t
+    val find : key -> 'a t -> 'a
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+    val get : key -> 'a t -> 'a option
+    val get_or : key -> 'a t -> or_:'-> 'a
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val merge_safe :
+      f:(key ->
+         [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+      'a t -> 'b t -> 'c t
+    val of_seq : (key * 'a) sequence -> 'a t
+    val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val of_list : (key * 'a) list -> 'a t
+    val add_list : 'a t -> (key * 'a) list -> 'a t
+    val keys : 'a t -> key sequence
+    val values : 'a t -> 'a sequence
+    val to_list : 'a t -> (key * 'a) list
+    val pp :
+      ?start:string ->
+      ?stop:string ->
+      ?arrow:string ->
+      ?sep:string -> key printer -> 'a printer -> 'a t printer
+    val print :
+      ?start:string ->
+      ?stop:string ->
+      ?arrow:string ->
+      ?sep:string -> key formatter -> 'a formatter -> 'a t formatter
+  end
\ No newline at end of file diff --git a/0.17/type_CCMap.S.html b/0.17/type_CCMap.S.html new file mode 100644 index 00000000..3605ebdb --- /dev/null +++ b/0.17/type_CCMap.S.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap.S + + +sig
+  type key
+  type +'a t
+  val empty : 'a t
+  val is_empty : 'a t -> bool
+  val mem : key -> 'a t -> bool
+  val add : key -> '-> 'a t -> 'a t
+  val singleton : key -> '-> 'a t
+  val remove : key -> 'a t -> 'a t
+  val merge :
+    (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+  val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+  val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val iter : (key -> '-> unit) -> 'a t -> unit
+  val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+  val for_all : (key -> '-> bool) -> 'a t -> bool
+  val exists : (key -> '-> bool) -> 'a t -> bool
+  val filter : (key -> '-> bool) -> 'a t -> 'a t
+  val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
+  val cardinal : 'a t -> int
+  val bindings : 'a t -> (key * 'a) list
+  val min_binding : 'a t -> key * 'a
+  val max_binding : 'a t -> key * 'a
+  val choose : 'a t -> key * 'a
+  val split : key -> 'a t -> 'a t * 'a option * 'a t
+  val find : key -> 'a t -> 'a
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+  val get : key -> 'a t -> 'a option
+  val get_or : key -> 'a t -> or_:'-> 'a
+  val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+  val merge_safe :
+    f:(key -> [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+    'a t -> 'b t -> 'c t
+  val of_seq : (key * 'a) CCMap.sequence -> 'a t
+  val add_seq : 'a t -> (key * 'a) CCMap.sequence -> 'a t
+  val to_seq : 'a t -> (key * 'a) CCMap.sequence
+  val of_list : (key * 'a) list -> 'a t
+  val add_list : 'a t -> (key * 'a) list -> 'a t
+  val keys : 'a t -> key CCMap.sequence
+  val values : 'a t -> 'CCMap.sequence
+  val to_list : 'a t -> (key * 'a) list
+  val pp :
+    ?start:string ->
+    ?stop:string ->
+    ?arrow:string ->
+    ?sep:string ->
+    key CCMap.printer -> 'CCMap.printer -> 'a t CCMap.printer
+  val print :
+    ?start:string ->
+    ?stop:string ->
+    ?arrow:string ->
+    ?sep:string ->
+    key CCMap.formatter -> 'CCMap.formatter -> 'a t CCMap.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCMap.html b/0.17/type_CCMap.html new file mode 100644 index 00000000..60b86cbd --- /dev/null +++ b/0.17/type_CCMap.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMap + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  module type S =
+    sig
+      type key
+      type +'a t
+      val empty : 'a t
+      val is_empty : 'a t -> bool
+      val mem : key -> 'a t -> bool
+      val add : key -> '-> 'a t -> 'a t
+      val singleton : key -> '-> 'a t
+      val remove : key -> 'a t -> 'a t
+      val merge :
+        (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+      val for_all : (key -> '-> bool) -> 'a t -> bool
+      val exists : (key -> '-> bool) -> 'a t -> bool
+      val filter : (key -> '-> bool) -> 'a t -> 'a t
+      val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
+      val cardinal : 'a t -> int
+      val bindings : 'a t -> (key * 'a) list
+      val min_binding : 'a t -> key * 'a
+      val max_binding : 'a t -> key * 'a
+      val choose : 'a t -> key * 'a
+      val split : key -> 'a t -> 'a t * 'a option * 'a t
+      val find : key -> 'a t -> 'a
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+      val get : key -> 'a t -> 'a option
+      val get_or : key -> 'a t -> or_:'-> 'a
+      val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+      val merge_safe :
+        f:(key ->
+           [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+        'a t -> 'b t -> 'c t
+      val of_seq : (key * 'a) CCMap.sequence -> 'a t
+      val add_seq : 'a t -> (key * 'a) CCMap.sequence -> 'a t
+      val to_seq : 'a t -> (key * 'a) CCMap.sequence
+      val of_list : (key * 'a) list -> 'a t
+      val add_list : 'a t -> (key * 'a) list -> 'a t
+      val keys : 'a t -> key CCMap.sequence
+      val values : 'a t -> 'CCMap.sequence
+      val to_list : 'a t -> (key * 'a) list
+      val pp :
+        ?start:string ->
+        ?stop:string ->
+        ?arrow:string ->
+        ?sep:string ->
+        key CCMap.printer -> 'CCMap.printer -> 'a t CCMap.printer
+      val print :
+        ?start:string ->
+        ?stop:string ->
+        ?arrow:string ->
+        ?sep:string ->
+        key CCMap.formatter -> 'CCMap.formatter -> 'a t CCMap.formatter
+    end
+  module Make :
+    functor (O : Map.OrderedType->
+      sig
+        type key = O.t
+        type 'a t = 'Map.Make(O).t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val mem : key -> 'a t -> bool
+        val add : key -> '-> 'a t -> 'a t
+        val singleton : key -> '-> 'a t
+        val remove : key -> 'a t -> 'a t
+        val merge :
+          (key -> 'a option -> 'b option -> 'c option) ->
+          'a t -> 'b t -> 'c t
+        val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+        val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+        val for_all : (key -> '-> bool) -> 'a t -> bool
+        val exists : (key -> '-> bool) -> 'a t -> bool
+        val filter : (key -> '-> bool) -> 'a t -> 'a t
+        val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
+        val cardinal : 'a t -> int
+        val bindings : 'a t -> (key * 'a) list
+        val min_binding : 'a t -> key * 'a
+        val max_binding : 'a t -> key * 'a
+        val choose : 'a t -> key * 'a
+        val split : key -> 'a t -> 'a t * 'a option * 'a t
+        val find : key -> 'a t -> 'a
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+        val get : key -> 'a t -> 'a option
+        val get_or : key -> 'a t -> or_:'-> 'a
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val merge_safe :
+          f:(key ->
+             [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+          'a t -> 'b t -> 'c t
+        val of_seq : (key * 'a) sequence -> 'a t
+        val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val of_list : (key * 'a) list -> 'a t
+        val add_list : 'a t -> (key * 'a) list -> 'a t
+        val keys : 'a t -> key sequence
+        val values : 'a t -> 'a sequence
+        val to_list : 'a t -> (key * 'a) list
+        val pp :
+          ?start:string ->
+          ?stop:string ->
+          ?arrow:string ->
+          ?sep:string -> key printer -> 'a printer -> 'a t printer
+        val print :
+          ?start:string ->
+          ?stop:string ->
+          ?arrow:string ->
+          ?sep:string -> key formatter -> 'a formatter -> 'a t formatter
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCMixmap.Make.html b/0.17/type_CCMixmap.Make.html new file mode 100644 index 00000000..8ac198e3 --- /dev/null +++ b/0.17/type_CCMixmap.Make.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.Make + + +functor (X : ORD->
+  sig
+    type key = X.t
+    type t
+    val empty : t
+    val get : inj:'a injection -> key -> t -> 'a option
+    val add : inj:'a injection -> key -> '-> t -> t
+    val find : inj:'a injection -> key -> t -> 'a
+    val cardinal : t -> int
+    val remove : key -> t -> t
+    val mem : inj:'a injection -> key -> t -> bool
+    val iter_keys : f:(key -> unit) -> t -> unit
+    val fold_keys : f:('-> key -> 'a) -> x:'-> t -> 'a
+    type 'a sequence = ('-> unit) -> unit
+    val keys_seq : t -> key sequence
+    val bindings_of : inj:'a injection -> t -> (key * 'a) sequence
+    type value = Value : ('a injection -> 'a option) -> value
+    val bindings : t -> (key * value) sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCMixmap.ORD.html b/0.17/type_CCMixmap.ORD.html new file mode 100644 index 00000000..5db8573e --- /dev/null +++ b/0.17/type_CCMixmap.ORD.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.ORD + + +sig type t val compare : CCMixmap.ORD.t -> CCMixmap.ORD.t -> int end \ No newline at end of file diff --git a/0.17/type_CCMixmap.S.html b/0.17/type_CCMixmap.S.html new file mode 100644 index 00000000..ece84c46 --- /dev/null +++ b/0.17/type_CCMixmap.S.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap.S + + +sig
+  type key
+  type t
+  val empty : CCMixmap.S.t
+  val get :
+    inj:'CCMixmap.injection -> CCMixmap.S.key -> CCMixmap.S.t -> 'a option
+  val add :
+    inj:'CCMixmap.injection ->
+    CCMixmap.S.key -> '-> CCMixmap.S.t -> CCMixmap.S.t
+  val find :
+    inj:'CCMixmap.injection -> CCMixmap.S.key -> CCMixmap.S.t -> 'a
+  val cardinal : CCMixmap.S.t -> int
+  val remove : CCMixmap.S.key -> CCMixmap.S.t -> CCMixmap.S.t
+  val mem :
+    inj:'CCMixmap.injection -> CCMixmap.S.key -> CCMixmap.S.t -> bool
+  val iter_keys : f:(CCMixmap.S.key -> unit) -> CCMixmap.S.t -> unit
+  val fold_keys :
+    f:('-> CCMixmap.S.key -> 'a) -> x:'-> CCMixmap.S.t -> 'a
+  type 'a sequence = ('-> unit) -> unit
+  val keys_seq : CCMixmap.S.t -> CCMixmap.S.key CCMixmap.S.sequence
+  val bindings_of :
+    inj:'CCMixmap.injection ->
+    CCMixmap.S.t -> (CCMixmap.S.key * 'a) CCMixmap.S.sequence
+  type value =
+      Value : ('CCMixmap.injection -> 'a option) -> CCMixmap.S.value
+  val bindings :
+    CCMixmap.S.t -> (CCMixmap.S.key * CCMixmap.S.value) CCMixmap.S.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCMixmap.html b/0.17/type_CCMixmap.html new file mode 100644 index 00000000..7a711654 --- /dev/null +++ b/0.17/type_CCMixmap.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixmap + + +sig
+  type 'a injection
+  val create_inj : unit -> 'CCMixmap.injection
+  module type S =
+    sig
+      type key
+      type t
+      val empty : CCMixmap.S.t
+      val get :
+        inj:'CCMixmap.injection ->
+        CCMixmap.S.key -> CCMixmap.S.t -> 'a option
+      val add :
+        inj:'CCMixmap.injection ->
+        CCMixmap.S.key -> '-> CCMixmap.S.t -> CCMixmap.S.t
+      val find :
+        inj:'CCMixmap.injection -> CCMixmap.S.key -> CCMixmap.S.t -> 'a
+      val cardinal : CCMixmap.S.t -> int
+      val remove : CCMixmap.S.key -> CCMixmap.S.t -> CCMixmap.S.t
+      val mem :
+        inj:'CCMixmap.injection -> CCMixmap.S.key -> CCMixmap.S.t -> bool
+      val iter_keys : f:(CCMixmap.S.key -> unit) -> CCMixmap.S.t -> unit
+      val fold_keys :
+        f:('-> CCMixmap.S.key -> 'a) -> x:'-> CCMixmap.S.t -> 'a
+      type 'a sequence = ('-> unit) -> unit
+      val keys_seq : CCMixmap.S.t -> CCMixmap.S.key CCMixmap.S.sequence
+      val bindings_of :
+        inj:'CCMixmap.injection ->
+        CCMixmap.S.t -> (CCMixmap.S.key * 'a) CCMixmap.S.sequence
+      type value =
+          Value : ('CCMixmap.injection -> 'a option) -> CCMixmap.S.value
+      val bindings :
+        CCMixmap.S.t ->
+        (CCMixmap.S.key * CCMixmap.S.value) CCMixmap.S.sequence
+    end
+  module type ORD =
+    sig type t val compare : CCMixmap.ORD.t -> CCMixmap.ORD.t -> int end
+  module Make :
+    functor (X : ORD->
+      sig
+        type key = X.t
+        type t
+        val empty : t
+        val get : inj:'a injection -> key -> t -> 'a option
+        val add : inj:'a injection -> key -> '-> t -> t
+        val find : inj:'a injection -> key -> t -> 'a
+        val cardinal : t -> int
+        val remove : key -> t -> t
+        val mem : inj:'a injection -> key -> t -> bool
+        val iter_keys : f:(key -> unit) -> t -> unit
+        val fold_keys : f:('-> key -> 'a) -> x:'-> t -> 'a
+        type 'a sequence = ('-> unit) -> unit
+        val keys_seq : t -> key sequence
+        val bindings_of : inj:'a injection -> t -> (key * 'a) sequence
+        type value = Value : ('a injection -> 'a option) -> value
+        val bindings : t -> (key * value) sequence
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCMixset.html b/0.17/type_CCMixset.html new file mode 100644 index 00000000..b0a541a0 --- /dev/null +++ b/0.17/type_CCMixset.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixset + + +sig
+  type t
+  type 'a key
+  val newkey : unit -> 'CCMixset.key
+  val empty : CCMixset.t
+  val set : key:'CCMixset.key -> '-> CCMixset.t -> CCMixset.t
+  val get : key:'CCMixset.key -> CCMixset.t -> 'a option
+  val get_exn : key:'CCMixset.key -> CCMixset.t -> 'a
+  val cardinal : CCMixset.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCMixtbl.html b/0.17/type_CCMixtbl.html new file mode 100644 index 00000000..7b11f170 --- /dev/null +++ b/0.17/type_CCMixtbl.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMixtbl + + +sig
+  type 'a t
+  type 'b injection
+  val create : int -> 'CCMixtbl.t
+  val create_inj : unit -> 'CCMixtbl.injection
+  val get : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> 'b option
+  val set : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> '-> unit
+  val find : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> 'b
+  val length : 'CCMixtbl.t -> int
+  val clear : 'CCMixtbl.t -> unit
+  val remove : 'CCMixtbl.t -> '-> unit
+  val copy : 'CCMixtbl.t -> 'CCMixtbl.t
+  val mem : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> bool
+  val iter_keys : 'CCMixtbl.t -> ('-> unit) -> unit
+  val fold_keys : 'CCMixtbl.t -> '-> ('-> '-> 'b) -> 'b
+  type 'a sequence = ('-> unit) -> unit
+  val keys_seq : 'CCMixtbl.t -> 'CCMixtbl.sequence
+  val bindings_of :
+    inj:'CCMixtbl.injection -> 'CCMixtbl.t -> ('a * 'b) CCMixtbl.sequence
+  type value = Value : ('CCMixtbl.injection -> 'b option) -> CCMixtbl.value
+  val bindings : 'CCMixtbl.t -> ('a * CCMixtbl.value) CCMixtbl.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCMonadIO.File.html b/0.17/type_CCMonadIO.File.html new file mode 100644 index 00000000..cf475caa --- /dev/null +++ b/0.17/type_CCMonadIO.File.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.File + + +sig
+  type t = string
+  val to_string : CCMonadIO.File.t -> string
+  val make : string -> CCMonadIO.File.t
+  val exists : CCMonadIO.File.t -> bool CCMonadIO.io
+  val is_directory : CCMonadIO.File.t -> bool CCMonadIO.io
+  val remove : CCMonadIO.File.t -> unit CCMonadIO.io
+  val read_dir :
+    ?recurse:bool ->
+    CCMonadIO.File.t -> CCMonadIO.File.t CCMonadIO.Seq.t CCMonadIO.io
+  val walk :
+    CCMonadIO.File.t ->
+    ([ `Dir | `File ] * CCMonadIO.File.t) CCMonadIO.Seq.t CCMonadIO.io
+end
\ No newline at end of file diff --git a/0.17/type_CCMonadIO.Raw.html b/0.17/type_CCMonadIO.Raw.html new file mode 100644 index 00000000..39f066c9 --- /dev/null +++ b/0.17/type_CCMonadIO.Raw.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.Raw + + +sig val wrap : (unit -> 'a) -> 'CCMonadIO.t end \ No newline at end of file diff --git a/0.17/type_CCMonadIO.Seq.html b/0.17/type_CCMonadIO.Seq.html new file mode 100644 index 00000000..dee1f008 --- /dev/null +++ b/0.17/type_CCMonadIO.Seq.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO.Seq + + +sig
+  type 'a t
+  val map :
+    ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val map_pure : ('-> 'b) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val filter_map :
+    ('-> 'b option) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val filter : ('-> bool) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val flat_map :
+    ('-> 'CCMonadIO.Seq.t CCMonadIO.io) ->
+    'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val take : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val drop : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val take_while :
+    ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val drop_while :
+    ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val general_iter :
+    ('-> '-> [ `Continue of 'b * 'c option | `Stop ] CCMonadIO.io) ->
+    '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val tee :
+    ('-> unit CCMonadIO.io) list ->
+    'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val iter :
+    ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> unit CCMonadIO.io
+  val length : 'CCMonadIO.Seq.t -> int CCMonadIO.io
+  val fold :
+    ('-> '-> 'CCMonadIO.io) ->
+    '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
+  val fold_pure :
+    ('-> '-> 'b) -> '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
+  type 'a step_result = Yield of '| Stop
+  type 'a gen = unit -> 'CCMonadIO.Seq.step_result CCMonadIO.io
+  val of_fun : 'CCMonadIO.Seq.gen -> 'CCMonadIO.Seq.t
+  val empty : 'CCMonadIO.Seq.t
+  val singleton : '-> 'CCMonadIO.Seq.t
+  val cons : '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+  val of_list : 'a list -> 'CCMonadIO.Seq.t
+  val of_array : 'a array -> 'CCMonadIO.Seq.t
+  val chunks : size:int -> Pervasives.in_channel -> string CCMonadIO.Seq.t
+  val lines : Pervasives.in_channel -> string CCMonadIO.Seq.t
+  val words : string CCMonadIO.Seq.t -> string CCMonadIO.Seq.t
+  val output :
+    ?sep:string ->
+    Pervasives.out_channel -> string CCMonadIO.Seq.t -> unit CCMonadIO.io
+end
\ No newline at end of file diff --git a/0.17/type_CCMonadIO.html b/0.17/type_CCMonadIO.html new file mode 100644 index 00000000..9ad5b94d --- /dev/null +++ b/0.17/type_CCMonadIO.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMonadIO + + +sig
+  type 'a t
+  type 'a io = 'CCMonadIO.t
+  type 'a with_finalizer
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  val ( >>= ) : 'CCMonadIO.t -> ('-> 'CCMonadIO.t) -> 'CCMonadIO.t
+  val return : '-> 'CCMonadIO.t
+  val repeat : int -> 'CCMonadIO.t -> 'a list CCMonadIO.t
+  val repeat' : int -> 'CCMonadIO.t -> unit CCMonadIO.t
+  val map : ('-> 'b) -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val ( >|= ) : 'CCMonadIO.t -> ('-> 'b) -> 'CCMonadIO.t
+  val bind :
+    ?finalize:unit CCMonadIO.t ->
+    ('-> 'CCMonadIO.t) -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val pure : '-> 'CCMonadIO.t
+  val ( <*> ) : ('-> 'b) CCMonadIO.t -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val lift : ('-> 'b) -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val lift2 :
+    ('-> '-> 'c) -> 'CCMonadIO.t -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val lift3 :
+    ('-> '-> '-> 'd) ->
+    'CCMonadIO.t -> 'CCMonadIO.t -> 'CCMonadIO.t -> 'CCMonadIO.t
+  val sequence : 'CCMonadIO.t list -> 'a list CCMonadIO.t
+  val sequence_map : ('-> 'CCMonadIO.t) -> 'a list -> 'b list CCMonadIO.t
+  val fail : string -> 'CCMonadIO.t
+  val ( >>>= ) :
+    'CCMonadIO.with_finalizer -> ('-> 'CCMonadIO.t) -> 'CCMonadIO.t
+  val run : 'CCMonadIO.t -> 'CCMonadIO.or_error
+  exception IO_error of string
+  val run_exn : 'CCMonadIO.t -> 'a
+  val register_printer : (exn -> string option) -> unit
+  val with_in :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> Pervasives.in_channel CCMonadIO.with_finalizer
+  val read :
+    Pervasives.in_channel -> Bytes.t -> int -> int -> int CCMonadIO.t
+  val read_line : Pervasives.in_channel -> string option CCMonadIO.t
+  val read_lines : Pervasives.in_channel -> string list CCMonadIO.t
+  val read_all : Pervasives.in_channel -> string CCMonadIO.t
+  val with_out :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> Pervasives.out_channel CCMonadIO.with_finalizer
+  val with_out_a :
+    ?mode:int ->
+    ?flags:Pervasives.open_flag list ->
+    string -> Pervasives.out_channel CCMonadIO.with_finalizer
+  val write :
+    Pervasives.out_channel -> string -> int -> int -> unit CCMonadIO.t
+  val write_str : Pervasives.out_channel -> string -> unit CCMonadIO.t
+  val write_buf : Pervasives.out_channel -> Buffer.t -> unit CCMonadIO.t
+  val write_line : Pervasives.out_channel -> string -> unit CCMonadIO.t
+  val flush : Pervasives.out_channel -> unit CCMonadIO.t
+  module Seq :
+    sig
+      type 'a t
+      val map :
+        ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val map_pure : ('-> 'b) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val filter_map :
+        ('-> 'b option) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val filter : ('-> bool) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val flat_map :
+        ('-> 'CCMonadIO.Seq.t CCMonadIO.io) ->
+        'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val take : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val drop : int -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val take_while :
+        ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val drop_while :
+        ('-> bool CCMonadIO.io) -> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val general_iter :
+        ('-> '-> [ `Continue of 'b * 'c option | `Stop ] CCMonadIO.io) ->
+        '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val tee :
+        ('-> unit CCMonadIO.io) list ->
+        'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val iter :
+        ('-> 'CCMonadIO.io) -> 'CCMonadIO.Seq.t -> unit CCMonadIO.io
+      val length : 'CCMonadIO.Seq.t -> int CCMonadIO.io
+      val fold :
+        ('-> '-> 'CCMonadIO.io) ->
+        '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
+      val fold_pure :
+        ('-> '-> 'b) -> '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.io
+      type 'a step_result = Yield of '| Stop
+      type 'a gen = unit -> 'CCMonadIO.Seq.step_result CCMonadIO.io
+      val of_fun : 'CCMonadIO.Seq.gen -> 'CCMonadIO.Seq.t
+      val empty : 'CCMonadIO.Seq.t
+      val singleton : '-> 'CCMonadIO.Seq.t
+      val cons : '-> 'CCMonadIO.Seq.t -> 'CCMonadIO.Seq.t
+      val of_list : 'a list -> 'CCMonadIO.Seq.t
+      val of_array : 'a array -> 'CCMonadIO.Seq.t
+      val chunks :
+        size:int -> Pervasives.in_channel -> string CCMonadIO.Seq.t
+      val lines : Pervasives.in_channel -> string CCMonadIO.Seq.t
+      val words : string CCMonadIO.Seq.t -> string CCMonadIO.Seq.t
+      val output :
+        ?sep:string ->
+        Pervasives.out_channel -> string CCMonadIO.Seq.t -> unit CCMonadIO.io
+    end
+  module File :
+    sig
+      type t = string
+      val to_string : CCMonadIO.File.t -> string
+      val make : string -> CCMonadIO.File.t
+      val exists : CCMonadIO.File.t -> bool CCMonadIO.io
+      val is_directory : CCMonadIO.File.t -> bool CCMonadIO.io
+      val remove : CCMonadIO.File.t -> unit CCMonadIO.io
+      val read_dir :
+        ?recurse:bool ->
+        CCMonadIO.File.t -> CCMonadIO.File.t CCMonadIO.Seq.t CCMonadIO.io
+      val walk :
+        CCMonadIO.File.t ->
+        ([ `Dir | `File ] * CCMonadIO.File.t) CCMonadIO.Seq.t CCMonadIO.io
+    end
+  module Raw : sig val wrap : (unit -> 'a) -> 'CCMonadIO.t end
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.BIDIR.html b/0.17/type_CCMultiMap.BIDIR.html new file mode 100644 index 00000000..26e23b91 --- /dev/null +++ b/0.17/type_CCMultiMap.BIDIR.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.BIDIR + + +sig
+  type t
+  type left
+  type right
+  val empty : CCMultiMap.BIDIR.t
+  val is_empty : CCMultiMap.BIDIR.t -> bool
+  val add :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+  val remove :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+  val cardinal_left : CCMultiMap.BIDIR.t -> int
+  val cardinal_right : CCMultiMap.BIDIR.t -> int
+  val remove_left :
+    CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.t
+  val remove_right :
+    CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+  val mem_left : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> bool
+  val mem_right : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> bool
+  val find_left :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right CCMultiMap.sequence
+  val find_right :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left CCMultiMap.sequence
+  val find1_left :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right option
+  val find1_right :
+    CCMultiMap.BIDIR.t ->
+    CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left option
+  val fold :
+    ('-> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> 'a) ->
+    '-> CCMultiMap.BIDIR.t -> 'a
+  val pairs :
+    CCMultiMap.BIDIR.t ->
+    (CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence
+  val add_pairs :
+    CCMultiMap.BIDIR.t ->
+    (CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence ->
+    CCMultiMap.BIDIR.t
+  val seq_left :
+    CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left CCMultiMap.sequence
+  val seq_right :
+    CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right CCMultiMap.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.Make.html b/0.17/type_CCMultiMap.Make.html new file mode 100644 index 00000000..01376a4d --- /dev/null +++ b/0.17/type_CCMultiMap.Make.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.Make + + +functor (K : OrderedType) (V : OrderedType->
+  sig
+    type key = K.t
+    type value = V.t
+    type t
+    val empty : t
+    val is_empty : t -> bool
+    val add : t -> key -> value -> t
+    val remove : t -> key -> value -> t
+    val remove_all : t -> key -> t
+    val mem : t -> key -> bool
+    val find : t -> key -> value list
+    val find_iter : t -> key -> (value -> unit) -> unit
+    val count : t -> key -> int
+    val iter : t -> (key -> value -> unit) -> unit
+    val fold : t -> '-> ('-> key -> value -> 'a) -> 'a
+    val size : t -> int
+    val union : t -> t -> t
+    val inter : t -> t -> t
+    val diff : t -> t -> t
+    val equal : t -> t -> bool
+    val compare : t -> t -> int
+    val submap : t -> t -> bool
+    val to_seq : t -> (key * value) sequence
+    val of_seq : ?init:t -> (key * value) sequence -> t
+    val keys : t -> key sequence
+    val values : t -> value sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.MakeBidir.html b/0.17/type_CCMultiMap.MakeBidir.html new file mode 100644 index 00000000..dbe28625 --- /dev/null +++ b/0.17/type_CCMultiMap.MakeBidir.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.MakeBidir + + +functor (L : OrderedType) (R : OrderedType->
+  sig
+    type t
+    type left = L.t
+    type right = R.t
+    val empty : t
+    val is_empty : t -> bool
+    val add : t -> left -> right -> t
+    val remove : t -> left -> right -> t
+    val cardinal_left : t -> int
+    val cardinal_right : t -> int
+    val remove_left : t -> left -> t
+    val remove_right : t -> right -> t
+    val mem_left : t -> left -> bool
+    val mem_right : t -> right -> bool
+    val find_left : t -> left -> right sequence
+    val find_right : t -> right -> left sequence
+    val find1_left : t -> left -> right option
+    val find1_right : t -> right -> left option
+    val fold : ('-> left -> right -> 'a) -> '-> t -> 'a
+    val pairs : t -> (left * right) sequence
+    val add_pairs : t -> (left * right) sequence -> t
+    val seq_left : t -> left sequence
+    val seq_right : t -> right sequence
+  end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.OrderedType.html b/0.17/type_CCMultiMap.OrderedType.html new file mode 100644 index 00000000..707d59ca --- /dev/null +++ b/0.17/type_CCMultiMap.OrderedType.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.OrderedType + + +sig
+  type t
+  val compare : CCMultiMap.OrderedType.t -> CCMultiMap.OrderedType.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.S.html b/0.17/type_CCMultiMap.S.html new file mode 100644 index 00000000..6017840a --- /dev/null +++ b/0.17/type_CCMultiMap.S.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap.S + + +sig
+  type key
+  type value
+  type t
+  val empty : CCMultiMap.S.t
+  val is_empty : CCMultiMap.S.t -> bool
+  val add :
+    CCMultiMap.S.t ->
+    CCMultiMap.S.key -> CCMultiMap.S.value -> CCMultiMap.S.t
+  val remove :
+    CCMultiMap.S.t ->
+    CCMultiMap.S.key -> CCMultiMap.S.value -> CCMultiMap.S.t
+  val remove_all : CCMultiMap.S.t -> CCMultiMap.S.key -> CCMultiMap.S.t
+  val mem : CCMultiMap.S.t -> CCMultiMap.S.key -> bool
+  val find : CCMultiMap.S.t -> CCMultiMap.S.key -> CCMultiMap.S.value list
+  val find_iter :
+    CCMultiMap.S.t ->
+    CCMultiMap.S.key -> (CCMultiMap.S.value -> unit) -> unit
+  val count : CCMultiMap.S.t -> CCMultiMap.S.key -> int
+  val iter :
+    CCMultiMap.S.t ->
+    (CCMultiMap.S.key -> CCMultiMap.S.value -> unit) -> unit
+  val fold :
+    CCMultiMap.S.t ->
+    '-> ('-> CCMultiMap.S.key -> CCMultiMap.S.value -> 'a) -> 'a
+  val size : CCMultiMap.S.t -> int
+  val union : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+  val inter : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+  val diff : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+  val equal : CCMultiMap.S.t -> CCMultiMap.S.t -> bool
+  val compare : CCMultiMap.S.t -> CCMultiMap.S.t -> int
+  val submap : CCMultiMap.S.t -> CCMultiMap.S.t -> bool
+  val to_seq :
+    CCMultiMap.S.t ->
+    (CCMultiMap.S.key * CCMultiMap.S.value) CCMultiMap.sequence
+  val of_seq :
+    ?init:CCMultiMap.S.t ->
+    (CCMultiMap.S.key * CCMultiMap.S.value) CCMultiMap.sequence ->
+    CCMultiMap.S.t
+  val keys : CCMultiMap.S.t -> CCMultiMap.S.key CCMultiMap.sequence
+  val values : CCMultiMap.S.t -> CCMultiMap.S.value CCMultiMap.sequence
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiMap.html b/0.17/type_CCMultiMap.html new file mode 100644 index 00000000..c30b2d17 --- /dev/null +++ b/0.17/type_CCMultiMap.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiMap + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  module type S =
+    sig
+      type key
+      type value
+      type t
+      val empty : CCMultiMap.S.t
+      val is_empty : CCMultiMap.S.t -> bool
+      val add :
+        CCMultiMap.S.t ->
+        CCMultiMap.S.key -> CCMultiMap.S.value -> CCMultiMap.S.t
+      val remove :
+        CCMultiMap.S.t ->
+        CCMultiMap.S.key -> CCMultiMap.S.value -> CCMultiMap.S.t
+      val remove_all : CCMultiMap.S.t -> CCMultiMap.S.key -> CCMultiMap.S.t
+      val mem : CCMultiMap.S.t -> CCMultiMap.S.key -> bool
+      val find :
+        CCMultiMap.S.t -> CCMultiMap.S.key -> CCMultiMap.S.value list
+      val find_iter :
+        CCMultiMap.S.t ->
+        CCMultiMap.S.key -> (CCMultiMap.S.value -> unit) -> unit
+      val count : CCMultiMap.S.t -> CCMultiMap.S.key -> int
+      val iter :
+        CCMultiMap.S.t ->
+        (CCMultiMap.S.key -> CCMultiMap.S.value -> unit) -> unit
+      val fold :
+        CCMultiMap.S.t ->
+        '-> ('-> CCMultiMap.S.key -> CCMultiMap.S.value -> 'a) -> 'a
+      val size : CCMultiMap.S.t -> int
+      val union : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+      val inter : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+      val diff : CCMultiMap.S.t -> CCMultiMap.S.t -> CCMultiMap.S.t
+      val equal : CCMultiMap.S.t -> CCMultiMap.S.t -> bool
+      val compare : CCMultiMap.S.t -> CCMultiMap.S.t -> int
+      val submap : CCMultiMap.S.t -> CCMultiMap.S.t -> bool
+      val to_seq :
+        CCMultiMap.S.t ->
+        (CCMultiMap.S.key * CCMultiMap.S.value) CCMultiMap.sequence
+      val of_seq :
+        ?init:CCMultiMap.S.t ->
+        (CCMultiMap.S.key * CCMultiMap.S.value) CCMultiMap.sequence ->
+        CCMultiMap.S.t
+      val keys : CCMultiMap.S.t -> CCMultiMap.S.key CCMultiMap.sequence
+      val values : CCMultiMap.S.t -> CCMultiMap.S.value CCMultiMap.sequence
+    end
+  module type OrderedType =
+    sig
+      type t
+      val compare :
+        CCMultiMap.OrderedType.t -> CCMultiMap.OrderedType.t -> int
+    end
+  module Make :
+    functor (K : OrderedType) (V : OrderedType->
+      sig
+        type key = K.t
+        type value = V.t
+        type t
+        val empty : t
+        val is_empty : t -> bool
+        val add : t -> key -> value -> t
+        val remove : t -> key -> value -> t
+        val remove_all : t -> key -> t
+        val mem : t -> key -> bool
+        val find : t -> key -> value list
+        val find_iter : t -> key -> (value -> unit) -> unit
+        val count : t -> key -> int
+        val iter : t -> (key -> value -> unit) -> unit
+        val fold : t -> '-> ('-> key -> value -> 'a) -> 'a
+        val size : t -> int
+        val union : t -> t -> t
+        val inter : t -> t -> t
+        val diff : t -> t -> t
+        val equal : t -> t -> bool
+        val compare : t -> t -> int
+        val submap : t -> t -> bool
+        val to_seq : t -> (key * value) sequence
+        val of_seq : ?init:t -> (key * value) sequence -> t
+        val keys : t -> key sequence
+        val values : t -> value sequence
+      end
+  module type BIDIR =
+    sig
+      type t
+      type left
+      type right
+      val empty : CCMultiMap.BIDIR.t
+      val is_empty : CCMultiMap.BIDIR.t -> bool
+      val add :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+      val remove :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+      val cardinal_left : CCMultiMap.BIDIR.t -> int
+      val cardinal_right : CCMultiMap.BIDIR.t -> int
+      val remove_left :
+        CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.t
+      val remove_right :
+        CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.t
+      val mem_left : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left -> bool
+      val mem_right : CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right -> bool
+      val find_left :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right CCMultiMap.sequence
+      val find_right :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left CCMultiMap.sequence
+      val find1_left :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right option
+      val find1_right :
+        CCMultiMap.BIDIR.t ->
+        CCMultiMap.BIDIR.right -> CCMultiMap.BIDIR.left option
+      val fold :
+        ('-> CCMultiMap.BIDIR.left -> CCMultiMap.BIDIR.right -> 'a) ->
+        '-> CCMultiMap.BIDIR.t -> 'a
+      val pairs :
+        CCMultiMap.BIDIR.t ->
+        (CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence
+      val add_pairs :
+        CCMultiMap.BIDIR.t ->
+        (CCMultiMap.BIDIR.left * CCMultiMap.BIDIR.right) CCMultiMap.sequence ->
+        CCMultiMap.BIDIR.t
+      val seq_left :
+        CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.left CCMultiMap.sequence
+      val seq_right :
+        CCMultiMap.BIDIR.t -> CCMultiMap.BIDIR.right CCMultiMap.sequence
+    end
+  module MakeBidir :
+    functor (L : OrderedType) (R : OrderedType->
+      sig
+        type t
+        type left = L.t
+        type right = R.t
+        val empty : t
+        val is_empty : t -> bool
+        val add : t -> left -> right -> t
+        val remove : t -> left -> right -> t
+        val cardinal_left : t -> int
+        val cardinal_right : t -> int
+        val remove_left : t -> left -> t
+        val remove_right : t -> right -> t
+        val mem_left : t -> left -> bool
+        val mem_right : t -> right -> bool
+        val find_left : t -> left -> right sequence
+        val find_right : t -> right -> left sequence
+        val find1_left : t -> left -> right option
+        val find1_right : t -> right -> left option
+        val fold : ('-> left -> right -> 'a) -> '-> t -> 'a
+        val pairs : t -> (left * right) sequence
+        val add_pairs : t -> (left * right) sequence -> t
+        val seq_left : t -> left sequence
+        val seq_right : t -> right sequence
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiSet.Make.html b/0.17/type_CCMultiSet.Make.html new file mode 100644 index 00000000..85dae912 --- /dev/null +++ b/0.17/type_CCMultiSet.Make.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet.Make + + +functor (O : Set.OrderedType->
+  sig
+    type elt = O.t
+    type t
+    val empty : t
+    val is_empty : t -> bool
+    val mem : t -> elt -> bool
+    val count : t -> elt -> int
+    val singleton : elt -> t
+    val add : t -> elt -> t
+    val remove : t -> elt -> t
+    val add_mult : t -> elt -> int -> t
+    val remove_mult : t -> elt -> int -> t
+    val update : t -> elt -> (int -> int) -> t
+    val min : t -> elt
+    val max : t -> elt
+    val union : t -> t -> t
+    val meet : t -> t -> t
+    val intersection : t -> t -> t
+    val diff : t -> t -> t
+    val contains : t -> t -> bool
+    val compare : t -> t -> int
+    val equal : t -> t -> bool
+    val cardinal : t -> int
+    val iter : t -> (int -> elt -> unit) -> unit
+    val fold : t -> '-> ('-> int -> elt -> 'b) -> 'b
+    val of_list : elt list -> t
+    val to_list : t -> elt list
+    val to_seq : t -> elt sequence
+    val of_seq : elt sequence -> t
+  end
\ No newline at end of file diff --git a/0.17/type_CCMultiSet.S.html b/0.17/type_CCMultiSet.S.html new file mode 100644 index 00000000..a3dfff54 --- /dev/null +++ b/0.17/type_CCMultiSet.S.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet.S + + +sig
+  type elt
+  type t
+  val empty : CCMultiSet.S.t
+  val is_empty : CCMultiSet.S.t -> bool
+  val mem : CCMultiSet.S.t -> CCMultiSet.S.elt -> bool
+  val count : CCMultiSet.S.t -> CCMultiSet.S.elt -> int
+  val singleton : CCMultiSet.S.elt -> CCMultiSet.S.t
+  val add : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t
+  val remove : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t
+  val add_mult : CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t
+  val remove_mult :
+    CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t
+  val update :
+    CCMultiSet.S.t -> CCMultiSet.S.elt -> (int -> int) -> CCMultiSet.S.t
+  val min : CCMultiSet.S.t -> CCMultiSet.S.elt
+  val max : CCMultiSet.S.t -> CCMultiSet.S.elt
+  val union : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+  val meet : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+  val intersection : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+  val diff : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+  val contains : CCMultiSet.S.t -> CCMultiSet.S.t -> bool
+  val compare : CCMultiSet.S.t -> CCMultiSet.S.t -> int
+  val equal : CCMultiSet.S.t -> CCMultiSet.S.t -> bool
+  val cardinal : CCMultiSet.S.t -> int
+  val iter : CCMultiSet.S.t -> (int -> CCMultiSet.S.elt -> unit) -> unit
+  val fold :
+    CCMultiSet.S.t -> '-> ('-> int -> CCMultiSet.S.elt -> 'b) -> 'b
+  val of_list : CCMultiSet.S.elt list -> CCMultiSet.S.t
+  val to_list : CCMultiSet.S.t -> CCMultiSet.S.elt list
+  val to_seq : CCMultiSet.S.t -> CCMultiSet.S.elt CCMultiSet.sequence
+  val of_seq : CCMultiSet.S.elt CCMultiSet.sequence -> CCMultiSet.S.t
+end
\ No newline at end of file diff --git a/0.17/type_CCMultiSet.html b/0.17/type_CCMultiSet.html new file mode 100644 index 00000000..ebdb0b92 --- /dev/null +++ b/0.17/type_CCMultiSet.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCMultiSet + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : CCMultiSet.S.t
+      val is_empty : CCMultiSet.S.t -> bool
+      val mem : CCMultiSet.S.t -> CCMultiSet.S.elt -> bool
+      val count : CCMultiSet.S.t -> CCMultiSet.S.elt -> int
+      val singleton : CCMultiSet.S.elt -> CCMultiSet.S.t
+      val add : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t
+      val remove : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t
+      val add_mult :
+        CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t
+      val remove_mult :
+        CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t
+      val update :
+        CCMultiSet.S.t -> CCMultiSet.S.elt -> (int -> int) -> CCMultiSet.S.t
+      val min : CCMultiSet.S.t -> CCMultiSet.S.elt
+      val max : CCMultiSet.S.t -> CCMultiSet.S.elt
+      val union : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+      val meet : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+      val intersection : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+      val diff : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t
+      val contains : CCMultiSet.S.t -> CCMultiSet.S.t -> bool
+      val compare : CCMultiSet.S.t -> CCMultiSet.S.t -> int
+      val equal : CCMultiSet.S.t -> CCMultiSet.S.t -> bool
+      val cardinal : CCMultiSet.S.t -> int
+      val iter : CCMultiSet.S.t -> (int -> CCMultiSet.S.elt -> unit) -> unit
+      val fold :
+        CCMultiSet.S.t -> '-> ('-> int -> CCMultiSet.S.elt -> 'b) -> 'b
+      val of_list : CCMultiSet.S.elt list -> CCMultiSet.S.t
+      val to_list : CCMultiSet.S.t -> CCMultiSet.S.elt list
+      val to_seq : CCMultiSet.S.t -> CCMultiSet.S.elt CCMultiSet.sequence
+      val of_seq : CCMultiSet.S.elt CCMultiSet.sequence -> CCMultiSet.S.t
+    end
+  module Make :
+    functor (O : Set.OrderedType->
+      sig
+        type elt = O.t
+        type t
+        val empty : t
+        val is_empty : t -> bool
+        val mem : t -> elt -> bool
+        val count : t -> elt -> int
+        val singleton : elt -> t
+        val add : t -> elt -> t
+        val remove : t -> elt -> t
+        val add_mult : t -> elt -> int -> t
+        val remove_mult : t -> elt -> int -> t
+        val update : t -> elt -> (int -> int) -> t
+        val min : t -> elt
+        val max : t -> elt
+        val union : t -> t -> t
+        val meet : t -> t -> t
+        val intersection : t -> t -> t
+        val diff : t -> t -> t
+        val contains : t -> t -> bool
+        val compare : t -> t -> int
+        val equal : t -> t -> bool
+        val cardinal : t -> int
+        val iter : t -> (int -> elt -> unit) -> unit
+        val fold : t -> '-> ('-> int -> elt -> 'b) -> 'b
+        val of_list : elt list -> t
+        val to_list : t -> elt list
+        val to_seq : t -> elt sequence
+        val of_seq : elt sequence -> t
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCOpt.Infix.html b/0.17/type_CCOpt.Infix.html new file mode 100644 index 00000000..a4774bae --- /dev/null +++ b/0.17/type_CCOpt.Infix.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOpt.Infix + + +sig
+  val ( >|= ) : 'CCOpt.t -> ('-> 'b) -> 'CCOpt.t
+  val ( >>= ) : 'CCOpt.t -> ('-> 'CCOpt.t) -> 'CCOpt.t
+  val ( <*> ) : ('-> 'b) CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+  val ( <$> ) : ('-> 'b) -> 'CCOpt.t -> 'CCOpt.t
+  val ( <+> ) : 'CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+end
\ No newline at end of file diff --git a/0.17/type_CCOpt.html b/0.17/type_CCOpt.html new file mode 100644 index 00000000..cd22df81 --- /dev/null +++ b/0.17/type_CCOpt.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOpt + + +sig
+  type 'a t = 'a option
+  val map : ('-> 'b) -> 'CCOpt.t -> 'CCOpt.t
+  val maybe : ('-> 'b) -> '-> 'CCOpt.t -> 'b
+  val map_or : default:'-> ('-> 'b) -> 'CCOpt.t -> 'b
+  val is_some : 'CCOpt.t -> bool
+  val is_none : 'CCOpt.t -> bool
+  val compare : ('-> '-> int) -> 'CCOpt.t -> 'CCOpt.t -> int
+  val equal : ('-> '-> bool) -> 'CCOpt.t -> 'CCOpt.t -> bool
+  val return : '-> 'CCOpt.t
+  val ( >|= ) : 'CCOpt.t -> ('-> 'b) -> 'CCOpt.t
+  val ( >>= ) : 'CCOpt.t -> ('-> 'CCOpt.t) -> 'CCOpt.t
+  val flat_map : ('-> 'CCOpt.t) -> 'CCOpt.t -> 'CCOpt.t
+  val map2 : ('-> '-> 'c) -> 'CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+  val iter : ('-> unit) -> 'CCOpt.t -> unit
+  val fold : ('-> '-> 'a) -> '-> 'CCOpt.t -> 'a
+  val filter : ('-> bool) -> 'CCOpt.t -> 'CCOpt.t
+  val if_ : ('-> bool) -> '-> 'a option
+  val exists : ('-> bool) -> 'CCOpt.t -> bool
+  val for_all : ('-> bool) -> 'CCOpt.t -> bool
+  val get : '-> 'CCOpt.t -> 'a
+  val get_exn : 'CCOpt.t -> 'a
+  val get_lazy : (unit -> 'a) -> 'CCOpt.t -> 'a
+  val sequence_l : 'CCOpt.t list -> 'a list CCOpt.t
+  val wrap : ?handler:(exn -> bool) -> ('-> 'b) -> '-> 'b option
+  val wrap2 :
+    ?handler:(exn -> bool) -> ('-> '-> 'c) -> '-> '-> 'c option
+  val pure : '-> 'CCOpt.t
+  val ( <*> ) : ('-> 'b) CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+  val ( <$> ) : ('-> 'b) -> 'CCOpt.t -> 'CCOpt.t
+  val ( <+> ) : 'CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+  val choice : 'CCOpt.t list -> 'CCOpt.t
+  module Infix :
+    sig
+      val ( >|= ) : 'CCOpt.t -> ('-> 'b) -> 'CCOpt.t
+      val ( >>= ) : 'CCOpt.t -> ('-> 'CCOpt.t) -> 'CCOpt.t
+      val ( <*> ) : ('-> 'b) CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+      val ( <$> ) : ('-> 'b) -> 'CCOpt.t -> 'CCOpt.t
+      val ( <+> ) : 'CCOpt.t -> 'CCOpt.t -> 'CCOpt.t
+    end
+  val to_list : 'CCOpt.t -> 'a list
+  val of_list : 'a list -> 'CCOpt.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a fmt = Format.formatter -> '-> unit
+  type 'a random_gen = Random.State.t -> 'a
+  val random : 'CCOpt.random_gen -> 'CCOpt.t CCOpt.random_gen
+  val choice_seq : 'CCOpt.t CCOpt.sequence -> 'CCOpt.t
+  val to_gen : 'CCOpt.t -> 'CCOpt.gen
+  val to_seq : 'CCOpt.t -> 'CCOpt.sequence
+  val pp : 'CCOpt.printer -> 'CCOpt.t CCOpt.printer
+  val print : 'CCOpt.fmt -> 'CCOpt.t CCOpt.fmt
+end
\ No newline at end of file diff --git a/0.17/type_CCOrd.html b/0.17/type_CCOrd.html new file mode 100644 index 00000000..8904d244 --- /dev/null +++ b/0.17/type_CCOrd.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCOrd + + +sig
+  type 'a t = '-> '-> int
+  val compare : 'CCOrd.t
+  val opp : 'CCOrd.t -> 'CCOrd.t
+  val equiv : int -> int -> bool
+  val int_ : int CCOrd.t
+  val string_ : string CCOrd.t
+  val bool_ : bool CCOrd.t
+  val float_ : float CCOrd.t
+  val ( <?> ) : int -> 'CCOrd.t * 'a * '-> int
+  val option : 'CCOrd.t -> 'a option CCOrd.t
+  val pair : 'CCOrd.t -> 'CCOrd.t -> ('a * 'b) CCOrd.t
+  val triple :
+    'CCOrd.t -> 'CCOrd.t -> 'CCOrd.t -> ('a * 'b * 'c) CCOrd.t
+  val list_ : 'CCOrd.t -> 'a list CCOrd.t
+  val array_ : 'CCOrd.t -> 'a array CCOrd.t
+  val map : ('-> 'b) -> 'CCOrd.t -> 'CCOrd.t
+end
\ No newline at end of file diff --git a/0.17/type_CCPair.html b/0.17/type_CCPair.html new file mode 100644 index 00000000..80e023e9 --- /dev/null +++ b/0.17/type_CCPair.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPair + + +sig
+  type ('a, 'b) t = 'a * 'b
+  val make : '-> '-> ('a, 'b) CCPair.t
+  val map1 : ('-> 'b) -> 'a * '-> 'b * 'c
+  val map2 : ('-> 'b) -> 'c * '-> 'c * 'b
+  val map : ('-> 'c) -> ('-> 'd) -> 'a * '-> 'c * 'd
+  val map_same : ('-> 'b) -> 'a * '-> 'b * 'b
+  val map_fst : ('-> 'b) -> 'a * '-> 'b
+  val map_snd : ('-> 'b) -> 'c * '-> 'b
+  val iter : ('-> '-> unit) -> 'a * '-> unit
+  val swap : 'a * '-> 'b * 'a
+  val ( <<< ) : ('-> 'b) -> 'a * '-> 'b * 'c
+  val ( >>> ) : ('-> 'b) -> 'c * '-> 'c * 'b
+  val ( *** ) : ('-> 'c) -> ('-> 'd) -> 'a * '-> 'c * 'd
+  val ( &&& ) : ('-> 'b) -> ('-> 'c) -> '-> 'b * 'c
+  val merge : ('-> '-> 'c) -> 'a * '-> 'c
+  val fold : ('-> '-> 'c) -> 'a * '-> 'c
+  val dup : '-> 'a * 'a
+  val dup_map : ('-> 'b) -> '-> 'a * 'b
+  val equal :
+    ('-> '-> bool) -> ('-> '-> bool) -> 'a * '-> 'a * '-> bool
+  val compare :
+    ('-> '-> int) -> ('-> '-> int) -> 'a * '-> 'a * '-> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  val pp : 'CCPair.printer -> 'CCPair.printer -> ('a * 'b) CCPair.printer
+  val print :
+    'CCPair.formatter -> 'CCPair.formatter -> ('a * 'b) CCPair.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCParse.MemoTbl.html b/0.17/type_CCParse.MemoTbl.html new file mode 100644 index 00000000..a25416b8 --- /dev/null +++ b/0.17/type_CCParse.MemoTbl.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse.MemoTbl + + +sig type t val create : int -> CCParse.MemoTbl.t end \ No newline at end of file diff --git a/0.17/type_CCParse.U.html b/0.17/type_CCParse.U.html new file mode 100644 index 00000000..fd620e9e --- /dev/null +++ b/0.17/type_CCParse.U.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse.U + + +sig
+  val list :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'CCParse.t -> 'a list CCParse.t
+  val int : int CCParse.t
+  val word : string CCParse.t
+  val map : ('-> 'b) -> 'CCParse.t -> 'CCParse.t
+  val map2 : ('-> '-> 'c) -> 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val map3 :
+    ('-> '-> '-> 'd) ->
+    'CCParse.t -> 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val pair :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCParse.t -> 'CCParse.t -> ('a * 'b) CCParse.t
+  val triple :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string ->
+    'CCParse.t -> 'CCParse.t -> 'CCParse.t -> ('a * 'b * 'c) CCParse.t
+end
\ No newline at end of file diff --git a/0.17/type_CCParse.html b/0.17/type_CCParse.html new file mode 100644 index 00000000..428d9686 --- /dev/null +++ b/0.17/type_CCParse.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCParse + + +sig
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  type line_num = int
+  type col_num = int
+  exception ParseError of CCParse.line_num * CCParse.col_num *
+              (unit -> string)
+  module MemoTbl : sig type t val create : int -> CCParse.MemoTbl.t end
+  type input = {
+    is_done : unit -> bool;
+    cur : unit -> char;
+    next : unit -> char;
+    pos : unit -> int;
+    lnum : unit -> CCParse.line_num;
+    cnum : unit -> CCParse.col_num;
+    memo : CCParse.MemoTbl.t;
+    backtrack : int -> unit;
+    sub : int -> int -> string;
+  }
+  val input_of_string : string -> CCParse.input
+  val input_of_chan : ?size:int -> Pervasives.in_channel -> CCParse.input
+  type 'a t = CCParse.input -> ok:('-> unit) -> err:(exn -> unit) -> unit
+  val return : '-> 'CCParse.t
+  val pure : '-> 'CCParse.t
+  val ( >|= ) : 'CCParse.t -> ('-> 'b) -> 'CCParse.t
+  val ( >>= ) : 'CCParse.t -> ('-> 'CCParse.t) -> 'CCParse.t
+  val ( <*> ) : ('-> 'b) CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val ( <* ) : 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val ( *> ) : 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val fail : string -> 'CCParse.t
+  val eoi : unit CCParse.t
+  val nop : unit CCParse.t
+  val char : char -> char CCParse.t
+  val char_if : (char -> bool) -> char CCParse.t
+  val chars_if : (char -> bool) -> string CCParse.t
+  val chars1_if : (char -> bool) -> string CCParse.t
+  val endline : char CCParse.t
+  val space : char CCParse.t
+  val white : char CCParse.t
+  val skip_chars : (char -> bool) -> unit CCParse.t
+  val skip_space : unit CCParse.t
+  val skip_white : unit CCParse.t
+  val is_alpha : char -> bool
+  val is_num : char -> bool
+  val is_alpha_num : char -> bool
+  val is_space : char -> bool
+  val is_white : char -> bool
+  val ( ~~~ ) : (char -> bool) -> char -> bool
+  val ( ||| ) : (char -> bool) -> (char -> bool) -> char -> bool
+  val ( &&& ) : (char -> bool) -> (char -> bool) -> char -> bool
+  val ( <|> ) : 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+  val string : string -> string CCParse.t
+  val many : 'CCParse.t -> 'a list CCParse.t
+  val many1 : 'CCParse.t -> 'a list CCParse.t
+  val skip : 'CCParse.t -> unit CCParse.t
+  val sep : by:'CCParse.t -> 'CCParse.t -> 'a list CCParse.t
+  val sep1 : by:'CCParse.t -> 'CCParse.t -> 'a list CCParse.t
+  val fix : ('CCParse.t -> 'CCParse.t) -> 'CCParse.t
+  val memo : 'CCParse.t -> 'CCParse.t
+  val fix_memo : ('CCParse.t -> 'CCParse.t) -> 'CCParse.t
+  val parse : input:CCParse.input -> p:'CCParse.t -> 'CCParse.or_error
+  val parse_exn : input:CCParse.input -> p:'CCParse.t -> 'a
+  val parse_string : string -> p:'CCParse.t -> 'CCParse.or_error
+  val parse_string_exn : string -> p:'CCParse.t -> 'a
+  val parse_file :
+    ?size:int -> file:string -> p:'CCParse.t -> 'CCParse.or_error
+  val parse_file_exn : ?size:int -> file:string -> p:'CCParse.t -> 'a
+  module U :
+    sig
+      val list :
+        ?start:string ->
+        ?stop:string -> ?sep:string -> 'CCParse.t -> 'a list CCParse.t
+      val int : int CCParse.t
+      val word : string CCParse.t
+      val map : ('-> 'b) -> 'CCParse.t -> 'CCParse.t
+      val map2 :
+        ('-> '-> 'c) -> 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+      val map3 :
+        ('-> '-> '-> 'd) ->
+        'CCParse.t -> 'CCParse.t -> 'CCParse.t -> 'CCParse.t
+      val pair :
+        ?start:string ->
+        ?stop:string ->
+        ?sep:string -> 'CCParse.t -> 'CCParse.t -> ('a * 'b) CCParse.t
+      val triple :
+        ?start:string ->
+        ?stop:string ->
+        ?sep:string ->
+        'CCParse.t ->
+        'CCParse.t -> 'CCParse.t -> ('a * 'b * 'c) CCParse.t
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCPersistentArray.html b/0.17/type_CCPersistentArray.html new file mode 100644 index 00000000..ccb249bd --- /dev/null +++ b/0.17/type_CCPersistentArray.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentArray + + +sig
+  type 'a t
+  val make : int -> '-> 'CCPersistentArray.t
+  val init : int -> (int -> 'a) -> 'CCPersistentArray.t
+  val get : 'CCPersistentArray.t -> int -> 'a
+  val set : 'CCPersistentArray.t -> int -> '-> 'CCPersistentArray.t
+  val length : 'CCPersistentArray.t -> int
+  val copy : 'CCPersistentArray.t -> 'CCPersistentArray.t
+  val map : ('-> 'b) -> 'CCPersistentArray.t -> 'CCPersistentArray.t
+  val mapi :
+    (int -> '-> 'b) -> 'CCPersistentArray.t -> 'CCPersistentArray.t
+  val iter : ('-> unit) -> 'CCPersistentArray.t -> unit
+  val iteri : (int -> '-> unit) -> 'CCPersistentArray.t -> unit
+  val fold_left : ('-> '-> 'a) -> '-> 'CCPersistentArray.t -> 'a
+  val fold_right : ('-> '-> 'b) -> 'CCPersistentArray.t -> '-> 'b
+  val append :
+    'CCPersistentArray.t ->
+    'CCPersistentArray.t -> 'CCPersistentArray.t
+  val flatten :
+    'CCPersistentArray.t CCPersistentArray.t -> 'CCPersistentArray.t
+  val flat_map :
+    ('-> 'CCPersistentArray.t) ->
+    'CCPersistentArray.t -> 'CCPersistentArray.t
+  val to_array : 'CCPersistentArray.t -> 'a array
+  val of_array : 'a array -> 'CCPersistentArray.t
+  val to_list : 'CCPersistentArray.t -> 'a list
+  val of_list : 'a list -> 'CCPersistentArray.t
+  val of_rev_list : 'a list -> 'CCPersistentArray.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  val to_seq : 'CCPersistentArray.t -> 'CCPersistentArray.sequence
+  val of_seq : 'CCPersistentArray.sequence -> 'CCPersistentArray.t
+  val of_gen : 'CCPersistentArray.gen -> 'CCPersistentArray.t
+  val to_gen : 'CCPersistentArray.t -> 'CCPersistentArray.gen
+  type 'a printer = Format.formatter -> '-> unit
+  val print :
+    'CCPersistentArray.printer ->
+    'CCPersistentArray.t CCPersistentArray.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCPersistentHashtbl.HashedType.html b/0.17/type_CCPersistentHashtbl.HashedType.html new file mode 100644 index 00000000..6054fa8a --- /dev/null +++ b/0.17/type_CCPersistentHashtbl.HashedType.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.HashedType + + +sig
+  type t
+  val equal :
+    CCPersistentHashtbl.HashedType.t ->
+    CCPersistentHashtbl.HashedType.t -> bool
+  val hash : CCPersistentHashtbl.HashedType.t -> int
+end
\ No newline at end of file diff --git a/0.17/type_CCPersistentHashtbl.Make.html b/0.17/type_CCPersistentHashtbl.Make.html new file mode 100644 index 00000000..8a413071 --- /dev/null +++ b/0.17/type_CCPersistentHashtbl.Make.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.Make + + +functor (H : HashedType->
+  sig
+    type key = H.t
+    type 'a t
+    val empty : unit -> 'a t
+    val create : int -> 'a t
+    val is_empty : 'a t -> bool
+    val find : 'a t -> key -> 'a
+    val get_exn : key -> 'a t -> 'a
+    val get : key -> 'a t -> 'a option
+    val mem : 'a t -> key -> bool
+    val length : 'a t -> int
+    val add : 'a t -> key -> '-> 'a t
+    val replace : 'a t -> key -> '-> 'a t
+    val update : 'a t -> key -> ('a option -> 'a option) -> 'a t
+    val remove : 'a t -> key -> 'a t
+    val copy : 'a t -> 'a t
+    val merge :
+      f:(key ->
+         [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+      'a t -> 'b t -> 'c t
+    val iter : 'a t -> (key -> '-> unit) -> unit
+    val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+    val map : (key -> '-> 'b) -> 'a t -> 'b t
+    val filter : (key -> '-> bool) -> 'a t -> 'a t
+    val filter_map : (key -> '-> 'b option) -> 'a t -> 'b t
+    val for_all : (key -> '-> bool) -> 'a t -> bool
+    val exists : (key -> '-> bool) -> 'a t -> bool
+    val of_seq : (key * 'a) sequence -> 'a t
+    val of_list : (key * 'a) list -> 'a t
+    val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+    val add_list : 'a t -> (key * 'a) list -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val to_list : 'a t -> (key * 'a) list
+    val equal : 'a equal -> 'a t equal
+    val pp : key printer -> 'a printer -> 'a t printer
+    val print : key formatter -> 'a formatter -> 'a t formatter
+    val stats : 'a t -> Hashtbl.statistics
+  end
\ No newline at end of file diff --git a/0.17/type_CCPersistentHashtbl.S.html b/0.17/type_CCPersistentHashtbl.S.html new file mode 100644 index 00000000..cd842284 --- /dev/null +++ b/0.17/type_CCPersistentHashtbl.S.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl.S + + +sig
+  type key
+  type 'a t
+  val empty : unit -> 'CCPersistentHashtbl.S.t
+  val create : int -> 'CCPersistentHashtbl.S.t
+  val is_empty : 'CCPersistentHashtbl.S.t -> bool
+  val find : 'CCPersistentHashtbl.S.t -> CCPersistentHashtbl.S.key -> 'a
+  val get_exn : CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t -> 'a
+  val get :
+    CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t -> 'a option
+  val mem : 'CCPersistentHashtbl.S.t -> CCPersistentHashtbl.S.key -> bool
+  val length : 'CCPersistentHashtbl.S.t -> int
+  val add :
+    'CCPersistentHashtbl.S.t ->
+    CCPersistentHashtbl.S.key -> '-> 'CCPersistentHashtbl.S.t
+  val replace :
+    'CCPersistentHashtbl.S.t ->
+    CCPersistentHashtbl.S.key -> '-> 'CCPersistentHashtbl.S.t
+  val update :
+    'CCPersistentHashtbl.S.t ->
+    CCPersistentHashtbl.S.key ->
+    ('a option -> 'a option) -> 'CCPersistentHashtbl.S.t
+  val remove :
+    'CCPersistentHashtbl.S.t ->
+    CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t
+  val copy : 'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+  val merge :
+    f:(CCPersistentHashtbl.S.key ->
+       [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+    'CCPersistentHashtbl.S.t ->
+    'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+  val iter :
+    'CCPersistentHashtbl.S.t ->
+    (CCPersistentHashtbl.S.key -> '-> unit) -> unit
+  val fold :
+    ('-> CCPersistentHashtbl.S.key -> '-> 'b) ->
+    '-> 'CCPersistentHashtbl.S.t -> 'b
+  val map :
+    (CCPersistentHashtbl.S.key -> '-> 'b) ->
+    'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+  val filter :
+    (CCPersistentHashtbl.S.key -> '-> bool) ->
+    'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+  val filter_map :
+    (CCPersistentHashtbl.S.key -> '-> 'b option) ->
+    'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+  val for_all :
+    (CCPersistentHashtbl.S.key -> '-> bool) ->
+    'CCPersistentHashtbl.S.t -> bool
+  val exists :
+    (CCPersistentHashtbl.S.key -> '-> bool) ->
+    'CCPersistentHashtbl.S.t -> bool
+  val of_seq :
+    (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence ->
+    'CCPersistentHashtbl.S.t
+  val of_list :
+    (CCPersistentHashtbl.S.key * 'a) list -> 'CCPersistentHashtbl.S.t
+  val add_seq :
+    'CCPersistentHashtbl.S.t ->
+    (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence ->
+    'CCPersistentHashtbl.S.t
+  val add_list :
+    'CCPersistentHashtbl.S.t ->
+    (CCPersistentHashtbl.S.key * 'a) list -> 'CCPersistentHashtbl.S.t
+  val to_seq :
+    'CCPersistentHashtbl.S.t ->
+    (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence
+  val to_list :
+    'CCPersistentHashtbl.S.t -> (CCPersistentHashtbl.S.key * 'a) list
+  val equal :
+    'CCPersistentHashtbl.equal ->
+    'CCPersistentHashtbl.S.t CCPersistentHashtbl.equal
+  val pp :
+    CCPersistentHashtbl.S.key CCPersistentHashtbl.printer ->
+    'CCPersistentHashtbl.printer ->
+    'CCPersistentHashtbl.S.t CCPersistentHashtbl.printer
+  val print :
+    CCPersistentHashtbl.S.key CCPersistentHashtbl.formatter ->
+    'CCPersistentHashtbl.formatter ->
+    'CCPersistentHashtbl.S.t CCPersistentHashtbl.formatter
+  val stats : 'CCPersistentHashtbl.S.t -> Hashtbl.statistics
+end
\ No newline at end of file diff --git a/0.17/type_CCPersistentHashtbl.html b/0.17/type_CCPersistentHashtbl.html new file mode 100644 index 00000000..9a4e9f20 --- /dev/null +++ b/0.17/type_CCPersistentHashtbl.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPersistentHashtbl + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a equal = '-> '-> bool
+  module type HashedType =
+    sig
+      type t
+      val equal :
+        CCPersistentHashtbl.HashedType.t ->
+        CCPersistentHashtbl.HashedType.t -> bool
+      val hash : CCPersistentHashtbl.HashedType.t -> int
+    end
+  module type S =
+    sig
+      type key
+      type 'a t
+      val empty : unit -> 'CCPersistentHashtbl.S.t
+      val create : int -> 'CCPersistentHashtbl.S.t
+      val is_empty : 'CCPersistentHashtbl.S.t -> bool
+      val find :
+        'CCPersistentHashtbl.S.t -> CCPersistentHashtbl.S.key -> 'a
+      val get_exn :
+        CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t -> 'a
+      val get :
+        CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t -> 'a option
+      val mem :
+        'CCPersistentHashtbl.S.t -> CCPersistentHashtbl.S.key -> bool
+      val length : 'CCPersistentHashtbl.S.t -> int
+      val add :
+        'CCPersistentHashtbl.S.t ->
+        CCPersistentHashtbl.S.key -> '-> 'CCPersistentHashtbl.S.t
+      val replace :
+        'CCPersistentHashtbl.S.t ->
+        CCPersistentHashtbl.S.key -> '-> 'CCPersistentHashtbl.S.t
+      val update :
+        'CCPersistentHashtbl.S.t ->
+        CCPersistentHashtbl.S.key ->
+        ('a option -> 'a option) -> 'CCPersistentHashtbl.S.t
+      val remove :
+        'CCPersistentHashtbl.S.t ->
+        CCPersistentHashtbl.S.key -> 'CCPersistentHashtbl.S.t
+      val copy : 'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+      val merge :
+        f:(CCPersistentHashtbl.S.key ->
+           [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+        'CCPersistentHashtbl.S.t ->
+        'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+      val iter :
+        'CCPersistentHashtbl.S.t ->
+        (CCPersistentHashtbl.S.key -> '-> unit) -> unit
+      val fold :
+        ('-> CCPersistentHashtbl.S.key -> '-> 'b) ->
+        '-> 'CCPersistentHashtbl.S.t -> 'b
+      val map :
+        (CCPersistentHashtbl.S.key -> '-> 'b) ->
+        'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+      val filter :
+        (CCPersistentHashtbl.S.key -> '-> bool) ->
+        'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+      val filter_map :
+        (CCPersistentHashtbl.S.key -> '-> 'b option) ->
+        'CCPersistentHashtbl.S.t -> 'CCPersistentHashtbl.S.t
+      val for_all :
+        (CCPersistentHashtbl.S.key -> '-> bool) ->
+        'CCPersistentHashtbl.S.t -> bool
+      val exists :
+        (CCPersistentHashtbl.S.key -> '-> bool) ->
+        'CCPersistentHashtbl.S.t -> bool
+      val of_seq :
+        (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence ->
+        'CCPersistentHashtbl.S.t
+      val of_list :
+        (CCPersistentHashtbl.S.key * 'a) list -> 'CCPersistentHashtbl.S.t
+      val add_seq :
+        'CCPersistentHashtbl.S.t ->
+        (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence ->
+        'CCPersistentHashtbl.S.t
+      val add_list :
+        'CCPersistentHashtbl.S.t ->
+        (CCPersistentHashtbl.S.key * 'a) list -> 'CCPersistentHashtbl.S.t
+      val to_seq :
+        'CCPersistentHashtbl.S.t ->
+        (CCPersistentHashtbl.S.key * 'a) CCPersistentHashtbl.sequence
+      val to_list :
+        'CCPersistentHashtbl.S.t -> (CCPersistentHashtbl.S.key * 'a) list
+      val equal :
+        'CCPersistentHashtbl.equal ->
+        'CCPersistentHashtbl.S.t CCPersistentHashtbl.equal
+      val pp :
+        CCPersistentHashtbl.S.key CCPersistentHashtbl.printer ->
+        'CCPersistentHashtbl.printer ->
+        'CCPersistentHashtbl.S.t CCPersistentHashtbl.printer
+      val print :
+        CCPersistentHashtbl.S.key CCPersistentHashtbl.formatter ->
+        'CCPersistentHashtbl.formatter ->
+        'CCPersistentHashtbl.S.t CCPersistentHashtbl.formatter
+      val stats : 'CCPersistentHashtbl.S.t -> Hashtbl.statistics
+    end
+  module Make :
+    functor (H : HashedType->
+      sig
+        type key = H.t
+        type 'a t
+        val empty : unit -> 'a t
+        val create : int -> 'a t
+        val is_empty : 'a t -> bool
+        val find : 'a t -> key -> 'a
+        val get_exn : key -> 'a t -> 'a
+        val get : key -> 'a t -> 'a option
+        val mem : 'a t -> key -> bool
+        val length : 'a t -> int
+        val add : 'a t -> key -> '-> 'a t
+        val replace : 'a t -> key -> '-> 'a t
+        val update : 'a t -> key -> ('a option -> 'a option) -> 'a t
+        val remove : 'a t -> key -> 'a t
+        val copy : 'a t -> 'a t
+        val merge :
+          f:(key ->
+             [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+          'a t -> 'b t -> 'c t
+        val iter : 'a t -> (key -> '-> unit) -> unit
+        val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+        val map : (key -> '-> 'b) -> 'a t -> 'b t
+        val filter : (key -> '-> bool) -> 'a t -> 'a t
+        val filter_map : (key -> '-> 'b option) -> 'a t -> 'b t
+        val for_all : (key -> '-> bool) -> 'a t -> bool
+        val exists : (key -> '-> bool) -> 'a t -> bool
+        val of_seq : (key * 'a) sequence -> 'a t
+        val of_list : (key * 'a) list -> 'a t
+        val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+        val add_list : 'a t -> (key * 'a) list -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val to_list : 'a t -> (key * 'a) list
+        val equal : 'a equal -> 'a t equal
+        val pp : key printer -> 'a printer -> 'a t printer
+        val print : key formatter -> 'a formatter -> 'a t formatter
+        val stats : 'a t -> Hashtbl.statistics
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCPool.Make.Fut.Infix.html b/0.17/type_CCPool.Make.Fut.Infix.html new file mode 100644 index 00000000..b6cd5b33 --- /dev/null +++ b/0.17/type_CCPool.Make.Fut.Infix.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make.Fut.Infix + + +sig
+  val ( >>= ) :
+    'CCPool.Make.Fut.t ->
+    ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+  val ( >> ) :
+    'CCPool.Make.Fut.t ->
+    (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+  val ( >|= ) : 'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+  val ( <*> ) :
+    ('-> 'b) CCPool.Make.Fut.t ->
+    'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+end
\ No newline at end of file diff --git a/0.17/type_CCPool.Make.Fut.html b/0.17/type_CCPool.Make.Fut.html new file mode 100644 index 00000000..c9c6c956 --- /dev/null +++ b/0.17/type_CCPool.Make.Fut.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make.Fut + + +sig
+  type 'a t
+  type 'a future = 'CCPool.Make.Fut.t
+  val return : '-> 'CCPool.Make.Fut.t
+  val fail : exn -> 'CCPool.Make.Fut.t
+  val make : (unit -> 'a) -> 'CCPool.Make.Fut.t
+  val make1 : ('-> 'b) -> '-> 'CCPool.Make.Fut.t
+  val make2 : ('-> '-> 'c) -> '-> '-> 'CCPool.Make.Fut.t
+  val get : 'CCPool.Make.Fut.t -> 'a
+  val state : 'CCPool.Make.Fut.t -> 'CCPool.state
+  val is_done : 'CCPool.Make.Fut.t -> bool
+  val on_success : 'CCPool.Make.Fut.t -> ('-> unit) -> unit
+  val on_failure : 'CCPool.Make.Fut.t -> (exn -> unit) -> unit
+  val on_finish : 'CCPool.Make.Fut.t -> ('CCPool.state -> unit) -> unit
+  val flat_map :
+    ('-> 'CCPool.Make.Fut.t) ->
+    'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+  val and_then :
+    'CCPool.Make.Fut.t ->
+    (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+  val sequence_a : 'CCPool.Make.Fut.t array -> 'a array CCPool.Make.Fut.t
+  val map_a :
+    ('-> 'CCPool.Make.Fut.t) -> 'a array -> 'b array CCPool.Make.Fut.t
+  val sequence_l : 'CCPool.Make.Fut.t list -> 'a list CCPool.Make.Fut.t
+  val map_l :
+    ('-> 'CCPool.Make.Fut.t) -> 'a list -> 'b list CCPool.Make.Fut.t
+  val choose_a : 'CCPool.Make.Fut.t array -> 'CCPool.Make.Fut.t
+  val choose_l : 'CCPool.Make.Fut.t list -> 'CCPool.Make.Fut.t
+  val map : ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+  val map_async : ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+  val app :
+    ('-> 'b) CCPool.Make.Fut.t ->
+    'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+  val app_async :
+    ('-> 'b) CCPool.Make.Fut.t ->
+    'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+  val sleep : float -> unit CCPool.Make.Fut.t
+  module Infix :
+    sig
+      val ( >>= ) :
+        'CCPool.Make.Fut.t ->
+        ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+      val ( >> ) :
+        'CCPool.Make.Fut.t ->
+        (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+      val ( >|= ) :
+        'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+      val ( <*> ) :
+        ('-> 'b) CCPool.Make.Fut.t ->
+        'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+    end
+  val ( >>= ) :
+    'CCPool.Make.Fut.t ->
+    ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+  val ( >> ) :
+    'CCPool.Make.Fut.t ->
+    (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+  val ( >|= ) : 'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+  val ( <*> ) :
+    ('-> 'b) CCPool.Make.Fut.t ->
+    'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+end
\ No newline at end of file diff --git a/0.17/type_CCPool.Make.html b/0.17/type_CCPool.Make.html new file mode 100644 index 00000000..ab56dbef --- /dev/null +++ b/0.17/type_CCPool.Make.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.Make + + +functor (P : PARAM->
+  sig
+    val run : (unit -> 'a) -> unit
+    val run1 : ('-> 'b) -> '-> unit
+    val run2 : ('-> '-> 'c) -> '-> '-> unit
+    val run3 : ('-> '-> '-> 'd) -> '-> '-> '-> unit
+    val set_exn_handler : (exn -> unit) -> unit
+    val active : unit -> bool
+    val stop : unit -> unit
+    module Fut :
+      sig
+        type 'a t
+        type 'a future = 'CCPool.Make.Fut.t
+        val return : '-> 'CCPool.Make.Fut.t
+        val fail : exn -> 'CCPool.Make.Fut.t
+        val make : (unit -> 'a) -> 'CCPool.Make.Fut.t
+        val make1 : ('-> 'b) -> '-> 'CCPool.Make.Fut.t
+        val make2 : ('-> '-> 'c) -> '-> '-> 'CCPool.Make.Fut.t
+        val get : 'CCPool.Make.Fut.t -> 'a
+        val state : 'CCPool.Make.Fut.t -> 'CCPool.state
+        val is_done : 'CCPool.Make.Fut.t -> bool
+        val on_success : 'CCPool.Make.Fut.t -> ('-> unit) -> unit
+        val on_failure : 'CCPool.Make.Fut.t -> (exn -> unit) -> unit
+        val on_finish :
+          'CCPool.Make.Fut.t -> ('CCPool.state -> unit) -> unit
+        val flat_map :
+          ('-> 'CCPool.Make.Fut.t) ->
+          'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+        val and_then :
+          'CCPool.Make.Fut.t ->
+          (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+        val sequence_a :
+          'CCPool.Make.Fut.t array -> 'a array CCPool.Make.Fut.t
+        val map_a :
+          ('-> 'CCPool.Make.Fut.t) ->
+          'a array -> 'b array CCPool.Make.Fut.t
+        val sequence_l :
+          'CCPool.Make.Fut.t list -> 'a list CCPool.Make.Fut.t
+        val map_l :
+          ('-> 'CCPool.Make.Fut.t) ->
+          'a list -> 'b list CCPool.Make.Fut.t
+        val choose_a : 'CCPool.Make.Fut.t array -> 'CCPool.Make.Fut.t
+        val choose_l : 'CCPool.Make.Fut.t list -> 'CCPool.Make.Fut.t
+        val map : ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+        val map_async :
+          ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+        val app :
+          ('-> 'b) CCPool.Make.Fut.t ->
+          'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+        val app_async :
+          ('-> 'b) CCPool.Make.Fut.t ->
+          'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+        val sleep : float -> unit CCPool.Make.Fut.t
+        module Infix :
+          sig
+            val ( >>= ) :
+              'CCPool.Make.Fut.t ->
+              ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+            val ( >> ) :
+              'CCPool.Make.Fut.t ->
+              (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+            val ( >|= ) :
+              'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+            val ( <*> ) :
+              ('-> 'b) CCPool.Make.Fut.t ->
+              'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+          end
+        val ( >>= ) :
+          'CCPool.Make.Fut.t ->
+          ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+        val ( >> ) :
+          'CCPool.Make.Fut.t ->
+          (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+        val ( >|= ) :
+          'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+        val ( <*> ) :
+          ('-> 'b) CCPool.Make.Fut.t ->
+          'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+      end
+  end
\ No newline at end of file diff --git a/0.17/type_CCPool.PARAM.html b/0.17/type_CCPool.PARAM.html new file mode 100644 index 00000000..0456fe6a --- /dev/null +++ b/0.17/type_CCPool.PARAM.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool.PARAM + + +sig val min_size : int val max_size : int end \ No newline at end of file diff --git a/0.17/type_CCPool.html b/0.17/type_CCPool.html new file mode 100644 index 00000000..8c534799 --- /dev/null +++ b/0.17/type_CCPool.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPool + + +sig
+  type 'a state = Done of '| Waiting | Failed of exn
+  module type PARAM = sig val min_size : int val max_size : int end
+  exception Stopped
+  module Make :
+    functor (P : PARAM->
+      sig
+        val run : (unit -> 'a) -> unit
+        val run1 : ('-> 'b) -> '-> unit
+        val run2 : ('-> '-> 'c) -> '-> '-> unit
+        val run3 : ('-> '-> '-> 'd) -> '-> '-> '-> unit
+        val set_exn_handler : (exn -> unit) -> unit
+        val active : unit -> bool
+        val stop : unit -> unit
+        module Fut :
+          sig
+            type 'a t
+            type 'a future = 'CCPool.Make.Fut.t
+            val return : '-> 'CCPool.Make.Fut.t
+            val fail : exn -> 'CCPool.Make.Fut.t
+            val make : (unit -> 'a) -> 'CCPool.Make.Fut.t
+            val make1 : ('-> 'b) -> '-> 'CCPool.Make.Fut.t
+            val make2 : ('-> '-> 'c) -> '-> '-> 'CCPool.Make.Fut.t
+            val get : 'CCPool.Make.Fut.t -> 'a
+            val state : 'CCPool.Make.Fut.t -> 'CCPool.state
+            val is_done : 'CCPool.Make.Fut.t -> bool
+            val on_success : 'CCPool.Make.Fut.t -> ('-> unit) -> unit
+            val on_failure : 'CCPool.Make.Fut.t -> (exn -> unit) -> unit
+            val on_finish :
+              'CCPool.Make.Fut.t -> ('CCPool.state -> unit) -> unit
+            val flat_map :
+              ('-> 'CCPool.Make.Fut.t) ->
+              'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+            val and_then :
+              'CCPool.Make.Fut.t ->
+              (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+            val sequence_a :
+              'CCPool.Make.Fut.t array -> 'a array CCPool.Make.Fut.t
+            val map_a :
+              ('-> 'CCPool.Make.Fut.t) ->
+              'a array -> 'b array CCPool.Make.Fut.t
+            val sequence_l :
+              'CCPool.Make.Fut.t list -> 'a list CCPool.Make.Fut.t
+            val map_l :
+              ('-> 'CCPool.Make.Fut.t) ->
+              'a list -> 'b list CCPool.Make.Fut.t
+            val choose_a : 'CCPool.Make.Fut.t array -> 'CCPool.Make.Fut.t
+            val choose_l : 'CCPool.Make.Fut.t list -> 'CCPool.Make.Fut.t
+            val map :
+              ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+            val map_async :
+              ('-> 'b) -> 'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+            val app :
+              ('-> 'b) CCPool.Make.Fut.t ->
+              'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+            val app_async :
+              ('-> 'b) CCPool.Make.Fut.t ->
+              'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+            val sleep : float -> unit CCPool.Make.Fut.t
+            module Infix :
+              sig
+                val ( >>= ) :
+                  'CCPool.Make.Fut.t ->
+                  ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+                val ( >> ) :
+                  'CCPool.Make.Fut.t ->
+                  (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+                val ( >|= ) :
+                  'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+                val ( <*> ) :
+                  ('-> 'b) CCPool.Make.Fut.t ->
+                  'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+              end
+            val ( >>= ) :
+              'CCPool.Make.Fut.t ->
+              ('-> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+            val ( >> ) :
+              'CCPool.Make.Fut.t ->
+              (unit -> 'CCPool.Make.Fut.t) -> 'CCPool.Make.Fut.t
+            val ( >|= ) :
+              'CCPool.Make.Fut.t -> ('-> 'b) -> 'CCPool.Make.Fut.t
+            val ( <*> ) :
+              ('-> 'b) CCPool.Make.Fut.t ->
+              'CCPool.Make.Fut.t -> 'CCPool.Make.Fut.t
+          end
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCPrint.MONAD_IO.html b/0.17/type_CCPrint.MONAD_IO.html new file mode 100644 index 00000000..d98bd03e --- /dev/null +++ b/0.17/type_CCPrint.MONAD_IO.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint.MONAD_IO + + +sig
+  type 'a t
+  type output
+  val ( >>= ) :
+    'CCPrint.MONAD_IO.t ->
+    ('-> 'CCPrint.MONAD_IO.t) -> 'CCPrint.MONAD_IO.t
+  val write : CCPrint.MONAD_IO.output -> string -> unit CCPrint.MONAD_IO.t
+end
\ No newline at end of file diff --git a/0.17/type_CCPrint.MakeIO.html b/0.17/type_CCPrint.MakeIO.html new file mode 100644 index 00000000..948b9f35 --- /dev/null +++ b/0.17/type_CCPrint.MakeIO.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint.MakeIO + + +functor (M : MONAD_IO->
+  sig
+    val output : M.output -> 'CCPrint.t -> '-> unit M.t
+    val printl : M.output -> 'CCPrint.t -> '-> unit M.t
+    val fprintf :
+      M.output -> ('a, Buffer.t, unit, unit M.t) Pervasives.format4 -> 'a
+  end
\ No newline at end of file diff --git a/0.17/type_CCPrint.html b/0.17/type_CCPrint.html new file mode 100644 index 00000000..af59d349 --- /dev/null +++ b/0.17/type_CCPrint.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCPrint + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a t = Buffer.t -> '-> unit
+  val silent : 'CCPrint.t
+  val unit : unit CCPrint.t
+  val int : int CCPrint.t
+  val string : string CCPrint.t
+  val bool : bool CCPrint.t
+  val float3 : float CCPrint.t
+  val float : float CCPrint.t
+  val char : char CCPrint.t
+  val list :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'CCPrint.t -> 'a list CCPrint.t
+  val array :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'CCPrint.t -> 'a array CCPrint.t
+  val arrayi :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> (int * 'a) CCPrint.t -> 'a array CCPrint.t
+  val seq :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string -> 'CCPrint.t -> 'CCPrint.sequence CCPrint.t
+  val opt : 'CCPrint.t -> 'a option CCPrint.t
+  val pair : 'CCPrint.t -> 'CCPrint.t -> ('a * 'b) CCPrint.t
+  val triple :
+    'CCPrint.t -> 'CCPrint.t -> 'CCPrint.t -> ('a * 'b * 'c) CCPrint.t
+  val quad :
+    'CCPrint.t ->
+    'CCPrint.t ->
+    'CCPrint.t -> 'CCPrint.t -> ('a * 'b * 'c * 'd) CCPrint.t
+  val map : ('-> 'b) -> 'CCPrint.t -> 'CCPrint.t
+  val output : Pervasives.out_channel -> 'CCPrint.t -> '-> unit
+  val to_string : 'CCPrint.t -> '-> string
+  val sprintf : ('a, Buffer.t, unit, string) Pervasives.format4 -> 'a
+  val fprintf :
+    Pervasives.out_channel ->
+    ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+  val to_file : string -> ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+  val printf : ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+  val eprintf : ('a, Buffer.t, unit, unit) Pervasives.format4 -> 'a
+  module type MONAD_IO =
+    sig
+      type 'a t
+      type output
+      val ( >>= ) :
+        'CCPrint.MONAD_IO.t ->
+        ('-> 'CCPrint.MONAD_IO.t) -> 'CCPrint.MONAD_IO.t
+      val write :
+        CCPrint.MONAD_IO.output -> string -> unit CCPrint.MONAD_IO.t
+    end
+  module MakeIO :
+    functor (M : MONAD_IO->
+      sig
+        val output : M.output -> 'CCPrint.t -> '-> unit M.t
+        val printl : M.output -> 'CCPrint.t -> '-> unit M.t
+        val fprintf :
+          M.output -> ('a, Buffer.t, unit, unit M.t) Pervasives.format4 -> 'a
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCRAL.Infix.html b/0.17/type_CCRAL.Infix.html new file mode 100644 index 00000000..fbb9256f --- /dev/null +++ b/0.17/type_CCRAL.Infix.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRAL.Infix + + +sig
+  val ( @+ ) : '-> 'CCRAL.t -> 'CCRAL.t
+  val ( >>= ) : 'CCRAL.t -> ('-> 'CCRAL.t) -> 'CCRAL.t
+  val ( >|= ) : 'CCRAL.t -> ('-> 'b) -> 'CCRAL.t
+  val ( <*> ) : ('-> 'b) CCRAL.t -> 'CCRAL.t -> 'CCRAL.t
+  val ( -- ) : int -> int -> int CCRAL.t
+  val ( --^ ) : int -> int -> int CCRAL.t
+end
\ No newline at end of file diff --git a/0.17/type_CCRAL.html b/0.17/type_CCRAL.html new file mode 100644 index 00000000..40a425fc --- /dev/null +++ b/0.17/type_CCRAL.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRAL + + +sig
+  type +'a t
+  val empty : 'CCRAL.t
+  val is_empty : 'CCRAL.t -> bool
+  val cons : '-> 'CCRAL.t -> 'CCRAL.t
+  val return : '-> 'CCRAL.t
+  val map : f:('-> 'b) -> 'CCRAL.t -> 'CCRAL.t
+  val mapi : f:(int -> '-> 'b) -> 'CCRAL.t -> 'CCRAL.t
+  val hd : 'CCRAL.t -> 'a
+  val tl : 'CCRAL.t -> 'CCRAL.t
+  val front : 'CCRAL.t -> ('a * 'CCRAL.t) option
+  val front_exn : 'CCRAL.t -> 'a * 'CCRAL.t
+  val length : 'CCRAL.t -> int
+  val get : 'CCRAL.t -> int -> 'a option
+  val get_exn : 'CCRAL.t -> int -> 'a
+  val set : 'CCRAL.t -> int -> '-> 'CCRAL.t
+  val remove : 'CCRAL.t -> int -> 'CCRAL.t
+  val append : 'CCRAL.t -> 'CCRAL.t -> 'CCRAL.t
+  val filter : f:('-> bool) -> 'CCRAL.t -> 'CCRAL.t
+  val filter_map : f:('-> 'b option) -> 'CCRAL.t -> 'CCRAL.t
+  val flat_map : ('-> 'CCRAL.t) -> 'CCRAL.t -> 'CCRAL.t
+  val flatten : 'CCRAL.t CCRAL.t -> 'CCRAL.t
+  val app : ('-> 'b) CCRAL.t -> 'CCRAL.t -> 'CCRAL.t
+  val take : int -> 'CCRAL.t -> 'CCRAL.t
+  val take_while : f:('-> bool) -> 'CCRAL.t -> 'CCRAL.t
+  val drop : int -> 'CCRAL.t -> 'CCRAL.t
+  val drop_while : f:('-> bool) -> 'CCRAL.t -> 'CCRAL.t
+  val take_drop : int -> 'CCRAL.t -> 'CCRAL.t * 'CCRAL.t
+  val iter : f:('-> unit) -> 'CCRAL.t -> unit
+  val iteri : f:(int -> '-> unit) -> 'CCRAL.t -> unit
+  val fold : f:('-> '-> 'b) -> x:'-> 'CCRAL.t -> 'b
+  val fold_rev : f:('-> '-> 'b) -> x:'-> 'CCRAL.t -> 'b
+  val rev_map : f:('-> 'b) -> 'CCRAL.t -> 'CCRAL.t
+  val rev : 'CCRAL.t -> 'CCRAL.t
+  val equal : ?eq:('-> '-> bool) -> 'CCRAL.t -> 'CCRAL.t -> bool
+  val compare : ?cmp:('-> '-> int) -> 'CCRAL.t -> 'CCRAL.t -> int
+  val make : int -> '-> 'CCRAL.t
+  val repeat : int -> 'CCRAL.t -> 'CCRAL.t
+  val range : int -> int -> int CCRAL.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  val add_list : 'CCRAL.t -> 'a list -> 'CCRAL.t
+  val of_list : 'a list -> 'CCRAL.t
+  val to_list : 'CCRAL.t -> 'a list
+  val of_list_map : f:('-> 'b) -> 'a list -> 'CCRAL.t
+  val of_array : 'a array -> 'CCRAL.t
+  val add_array : 'CCRAL.t -> 'a array -> 'CCRAL.t
+  val to_array : 'CCRAL.t -> 'a array
+  val add_seq : 'CCRAL.t -> 'CCRAL.sequence -> 'CCRAL.t
+  val of_seq : 'CCRAL.sequence -> 'CCRAL.t
+  val to_seq : 'CCRAL.t -> 'CCRAL.sequence
+  val add_gen : 'CCRAL.t -> 'CCRAL.gen -> 'CCRAL.t
+  val of_gen : 'CCRAL.gen -> 'CCRAL.t
+  val to_gen : 'CCRAL.t -> 'CCRAL.gen
+  module Infix :
+    sig
+      val ( @+ ) : '-> 'CCRAL.t -> 'CCRAL.t
+      val ( >>= ) : 'CCRAL.t -> ('-> 'CCRAL.t) -> 'CCRAL.t
+      val ( >|= ) : 'CCRAL.t -> ('-> 'b) -> 'CCRAL.t
+      val ( <*> ) : ('-> 'b) CCRAL.t -> 'CCRAL.t -> 'CCRAL.t
+      val ( -- ) : int -> int -> int CCRAL.t
+      val ( --^ ) : int -> int -> int CCRAL.t
+    end
+  val ( @+ ) : '-> 'a t -> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  val ( -- ) : int -> int -> int t
+  val ( --^ ) : int -> int -> int t
+  type 'a printer = Format.formatter -> '-> unit
+  val print : ?sep:string -> 'CCRAL.printer -> 'CCRAL.t CCRAL.printer
+end
\ No newline at end of file diff --git a/0.17/type_CCRandom.html b/0.17/type_CCRandom.html new file mode 100644 index 00000000..37879aee --- /dev/null +++ b/0.17/type_CCRandom.html @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRandom + + +sig
+  type state = Random.State.t
+  type 'a t = CCRandom.state -> 'a
+  type 'a random_gen = 'CCRandom.t
+  val return : '-> 'CCRandom.t
+  val flat_map : ('-> 'CCRandom.t) -> 'CCRandom.t -> 'CCRandom.t
+  val ( >>= ) : 'CCRandom.t -> ('-> 'CCRandom.t) -> 'CCRandom.t
+  val map : ('-> 'b) -> 'CCRandom.t -> 'CCRandom.t
+  val ( >|= ) : 'CCRandom.t -> ('-> 'b) -> 'CCRandom.t
+  val delay : (unit -> 'CCRandom.t) -> 'CCRandom.t
+  val choose : 'CCRandom.t list -> 'a option CCRandom.t
+  val choose_exn : 'CCRandom.t list -> 'CCRandom.t
+  val choose_array : 'CCRandom.t array -> 'a option CCRandom.t
+  val choose_return : 'a list -> 'CCRandom.t
+  val replicate : int -> 'CCRandom.t -> 'a list CCRandom.t
+  val sample_without_replacement :
+    ?compare:('-> '-> int) -> int -> 'CCRandom.t -> 'a list CCRandom.t
+  val list_seq : 'CCRandom.t list -> 'a list CCRandom.t
+  exception Pick_from_empty
+  val pick_list : 'a list -> 'CCRandom.t
+  val pick_array : 'a array -> 'CCRandom.t
+  val small_int : int CCRandom.t
+  val int : int -> int CCRandom.t
+  val int_range : int -> int -> int CCRandom.t
+  val small_float : float CCRandom.t
+  val float : float -> float CCRandom.t
+  val float_range : float -> float -> float CCRandom.t
+  val split : int -> (int * int) option CCRandom.t
+  val split_list : int -> len:int -> int list option CCRandom.t
+  val retry : ?max:int -> 'a option CCRandom.t -> 'a option CCRandom.t
+  val try_successively : 'a option CCRandom.t list -> 'a option CCRandom.t
+  val ( <?> ) :
+    'a option CCRandom.t -> 'a option CCRandom.t -> 'a option CCRandom.t
+  val fix :
+    ?sub1:('CCRandom.t -> 'CCRandom.t) list ->
+    ?sub2:('CCRandom.t -> 'CCRandom.t -> 'CCRandom.t) list ->
+    ?subn:(int CCRandom.t * ('a list CCRandom.t -> 'CCRandom.t)) list ->
+    base:'CCRandom.t -> int CCRandom.t -> 'CCRandom.t
+  val pure : '-> 'CCRandom.t
+  val ( <*> ) : ('-> 'b) CCRandom.t -> 'CCRandom.t -> 'CCRandom.t
+  val run : ?st:CCRandom.state -> 'CCRandom.t -> 'a
+  val uniformity_test :
+    ?size_hint:int -> int -> 'CCRandom.t -> bool CCRandom.t
+end
\ No newline at end of file diff --git a/0.17/type_CCRef.html b/0.17/type_CCRef.html new file mode 100644 index 00000000..ee9455f8 --- /dev/null +++ b/0.17/type_CCRef.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRef + + +sig
+  type 'a print = Format.formatter -> '-> unit
+  type 'a pp = Buffer.t -> '-> unit
+  type 'a ord = '-> '-> int
+  type 'a eq = '-> '-> bool
+  type 'a sequence = ('-> unit) -> unit
+  type 'a t = 'Pervasives.ref
+  val map : ('-> 'b) -> 'CCRef.t -> 'CCRef.t
+  val create : '-> 'CCRef.t
+  val iter : ('-> unit) -> 'CCRef.t -> unit
+  val update : ('-> 'a) -> 'CCRef.t -> unit
+  val incr_then_get : int CCRef.t -> int
+  val get_then_incr : int CCRef.t -> int
+  val compare : 'CCRef.ord -> 'CCRef.t CCRef.ord
+  val equal : 'CCRef.eq -> 'CCRef.t CCRef.eq
+  val to_list : 'CCRef.t -> 'a list
+  val to_seq : 'CCRef.t -> 'CCRef.sequence
+  val print : 'CCRef.print -> 'CCRef.t CCRef.print
+  val pp : 'CCRef.pp -> 'CCRef.t CCRef.pp
+end
\ No newline at end of file diff --git a/0.17/type_CCResult.Infix.html b/0.17/type_CCResult.Infix.html new file mode 100644 index 00000000..ec51909d --- /dev/null +++ b/0.17/type_CCResult.Infix.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.Infix + + +sig
+  val ( >|= ) : ('a, 'err) CCResult.t -> ('-> 'b) -> ('b, 'err) CCResult.t
+  val ( >>= ) :
+    ('a, 'err) CCResult.t ->
+    ('-> ('b, 'err) CCResult.t) -> ('b, 'err) CCResult.t
+  val ( <*> ) :
+    ('-> 'b, 'err) CCResult.t ->
+    ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
+end
\ No newline at end of file diff --git a/0.17/type_CCResult.MONAD.html b/0.17/type_CCResult.MONAD.html new file mode 100644 index 00000000..2a7d340a --- /dev/null +++ b/0.17/type_CCResult.MONAD.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.MONAD + + +sig
+  type 'a t
+  val return : '-> 'CCResult.MONAD.t
+  val ( >>= ) :
+    'CCResult.MONAD.t -> ('-> 'CCResult.MONAD.t) -> 'CCResult.MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCResult.Traverse.html b/0.17/type_CCResult.Traverse.html new file mode 100644 index 00000000..fe995522 --- /dev/null +++ b/0.17/type_CCResult.Traverse.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult.Traverse + + +functor (M : MONAD->
+  sig
+    val sequence_m : ('M.t, 'err) CCResult.t -> ('a, 'err) CCResult.t M.t
+    val fold_m :
+      ('-> '-> 'M.t) -> '-> ('a, 'err) CCResult.t -> 'M.t
+    val map_m :
+      ('-> 'M.t) -> ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t M.t
+    val retry_m :
+      int ->
+      (unit -> ('a, 'err) CCResult.t M.t) -> ('a, 'err list) CCResult.t M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCResult.html b/0.17/type_CCResult.html new file mode 100644 index 00000000..257ab4ba --- /dev/null +++ b/0.17/type_CCResult.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCResult + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type ('good, 'bad) t =
+    ('good, 'bad) Result.result =
+      Ok of 'good
+    | Error of 'bad
+  val return : '-> ('a, 'err) CCResult.t
+  val fail : 'err -> ('a, 'err) CCResult.t
+  val of_exn : exn -> ('a, string) CCResult.t
+  val of_exn_trace : exn -> ('a, string) CCResult.t
+  val fail_printf :
+    ('a, Buffer.t, unit, ('a, string) CCResult.t) Pervasives.format4 -> 'a
+  val fail_fprintf :
+    ('a, Format.formatter, unit, ('a, string) CCResult.t) Pervasives.format4 ->
+    'a
+  val map : ('-> 'b) -> ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
+  val map_err :
+    ('err1 -> 'err2) -> ('a, 'err1) CCResult.t -> ('a, 'err2) CCResult.t
+  val map2 :
+    ('-> 'b) ->
+    ('err1 -> 'err2) -> ('a, 'err1) CCResult.t -> ('b, 'err2) CCResult.t
+  val iter : ('-> unit) -> ('a, 'b) CCResult.t -> unit
+  exception Get_error
+  val get_exn : ('a, 'b) CCResult.t -> 'a
+  val get_or : ('a, 'b) CCResult.t -> default:'-> 'a
+  val map_or : ('-> 'b) -> ('a, 'b) CCResult.t -> default:'-> 'b
+  val catch :
+    ('a, 'err) CCResult.t -> ok:('-> 'b) -> err:('err -> 'b) -> 'b
+  val flat_map :
+    ('-> ('b, 'err) CCResult.t) ->
+    ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
+  val ( >|= ) : ('a, 'err) CCResult.t -> ('-> 'b) -> ('b, 'err) CCResult.t
+  val ( >>= ) :
+    ('a, 'err) CCResult.t ->
+    ('-> ('b, 'err) CCResult.t) -> ('b, 'err) CCResult.t
+  val equal :
+    ?err:'err CCResult.equal ->
+    'CCResult.equal -> ('a, 'err) CCResult.t CCResult.equal
+  val compare :
+    ?err:'err CCResult.ord ->
+    'CCResult.ord -> ('a, 'err) CCResult.t CCResult.ord
+  val fold :
+    ok:('-> 'b) -> error:('err -> 'b) -> ('a, 'err) CCResult.t -> 'b
+  val guard : (unit -> 'a) -> ('a, exn) CCResult.t
+  val guard_str : (unit -> 'a) -> ('a, string) CCResult.t
+  val guard_str_trace : (unit -> 'a) -> ('a, string) CCResult.t
+  val wrap1 : ('-> 'b) -> '-> ('b, exn) CCResult.t
+  val wrap2 : ('-> '-> 'c) -> '-> '-> ('c, exn) CCResult.t
+  val wrap3 :
+    ('-> '-> '-> 'd) -> '-> '-> '-> ('d, exn) CCResult.t
+  val pure : '-> ('a, 'err) CCResult.t
+  val ( <*> ) :
+    ('-> 'b, 'err) CCResult.t ->
+    ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
+  val join :
+    (('a, 'err) CCResult.t, 'err) CCResult.t -> ('a, 'err) CCResult.t
+  val both :
+    ('a, 'err) CCResult.t ->
+    ('b, 'err) CCResult.t -> ('a * 'b, 'err) CCResult.t
+  module Infix :
+    sig
+      val ( >|= ) :
+        ('a, 'err) CCResult.t -> ('-> 'b) -> ('b, 'err) CCResult.t
+      val ( >>= ) :
+        ('a, 'err) CCResult.t ->
+        ('-> ('b, 'err) CCResult.t) -> ('b, 'err) CCResult.t
+      val ( <*> ) :
+        ('-> 'b, 'err) CCResult.t ->
+        ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t
+    end
+  val map_l :
+    ('-> ('b, 'err) CCResult.t) -> 'a list -> ('b list, 'err) CCResult.t
+  val fold_l :
+    ('-> '-> ('b, 'err) CCResult.t) ->
+    '-> 'a list -> ('b, 'err) CCResult.t
+  val fold_seq :
+    ('-> '-> ('b, 'err) CCResult.t) ->
+    '-> 'CCResult.sequence -> ('b, 'err) CCResult.t
+  val choose : ('a, 'err) CCResult.t list -> ('a, 'err list) CCResult.t
+  val retry :
+    int -> (unit -> ('a, 'err) CCResult.t) -> ('a, 'err list) CCResult.t
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'CCResult.MONAD.t
+      val ( >>= ) :
+        'CCResult.MONAD.t ->
+        ('-> 'CCResult.MONAD.t) -> 'CCResult.MONAD.t
+    end
+  module Traverse :
+    functor (M : MONAD->
+      sig
+        val sequence_m :
+          ('M.t, 'err) CCResult.t -> ('a, 'err) CCResult.t M.t
+        val fold_m :
+          ('-> '-> 'M.t) -> '-> ('a, 'err) CCResult.t -> 'M.t
+        val map_m :
+          ('-> 'M.t) ->
+          ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t M.t
+        val retry_m :
+          int ->
+          (unit -> ('a, 'err) CCResult.t M.t) ->
+          ('a, 'err list) CCResult.t M.t
+      end
+  val to_opt : ('a, 'b) CCResult.t -> 'a option
+  val of_opt : 'a option -> ('a, string) CCResult.t
+  val to_seq : ('a, 'b) CCResult.t -> 'CCResult.sequence
+  type ('a, 'b) error = [ `Error of '| `Ok of 'a ]
+  val of_err : ('a, 'b) CCResult.error -> ('a, 'b) CCResult.t
+  val to_err : ('a, 'b) CCResult.t -> ('a, 'b) CCResult.error
+  val pp : 'CCResult.printer -> ('a, string) CCResult.t CCResult.printer
+  val print :
+    'CCResult.formatter -> ('a, string) CCResult.t CCResult.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Array.Byte.html b/0.17/type_CCRingBuffer.Array.Byte.html new file mode 100644 index 00000000..ee903e55 --- /dev/null +++ b/0.17/type_CCRingBuffer.Array.Byte.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.Byte + + +sig
+  type elt = char
+  type t = Bytes.t
+  val empty : t
+  val make : int -> elt -> t
+  val length : t -> int
+  val get : t -> int -> elt
+  val set : t -> int -> elt -> unit
+  val sub : t -> int -> int -> t
+  val copy : t -> t
+  val blit : t -> int -> t -> int -> int -> unit
+  val iter : (elt -> unit) -> t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Array.Make.html b/0.17/type_CCRingBuffer.Array.Make.html new file mode 100644 index 00000000..3fc7ada9 --- /dev/null +++ b/0.17/type_CCRingBuffer.Array.Make.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.Make + + +functor (Elt : sig type t end->
+  sig
+    type elt = Elt.t
+    type t = Elt.t array
+    val empty : t
+    val make : int -> elt -> t
+    val length : t -> int
+    val get : t -> int -> elt
+    val set : t -> int -> elt -> unit
+    val sub : t -> int -> int -> t
+    val copy : t -> t
+    val blit : t -> int -> t -> int -> int -> unit
+    val iter : (elt -> unit) -> t -> unit
+  end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Array.S.html b/0.17/type_CCRingBuffer.Array.S.html new file mode 100644 index 00000000..82b9c64c --- /dev/null +++ b/0.17/type_CCRingBuffer.Array.S.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array.S + + +sig
+  type elt
+  type t
+  val empty : CCRingBuffer.Array.S.t
+  val make : int -> CCRingBuffer.Array.S.elt -> CCRingBuffer.Array.S.t
+  val length : CCRingBuffer.Array.S.t -> int
+  val get : CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt
+  val set : CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt -> unit
+  val sub : CCRingBuffer.Array.S.t -> int -> int -> CCRingBuffer.Array.S.t
+  val copy : CCRingBuffer.Array.S.t -> CCRingBuffer.Array.S.t
+  val blit :
+    CCRingBuffer.Array.S.t ->
+    int -> CCRingBuffer.Array.S.t -> int -> int -> unit
+  val iter :
+    (CCRingBuffer.Array.S.elt -> unit) -> CCRingBuffer.Array.S.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Array.html b/0.17/type_CCRingBuffer.Array.html new file mode 100644 index 00000000..3e9a5eb1 --- /dev/null +++ b/0.17/type_CCRingBuffer.Array.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Array + + +sig
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : CCRingBuffer.Array.S.t
+      val make : int -> CCRingBuffer.Array.S.elt -> CCRingBuffer.Array.S.t
+      val length : CCRingBuffer.Array.S.t -> int
+      val get : CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt
+      val set :
+        CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt -> unit
+      val sub :
+        CCRingBuffer.Array.S.t -> int -> int -> CCRingBuffer.Array.S.t
+      val copy : CCRingBuffer.Array.S.t -> CCRingBuffer.Array.S.t
+      val blit :
+        CCRingBuffer.Array.S.t ->
+        int -> CCRingBuffer.Array.S.t -> int -> int -> unit
+      val iter :
+        (CCRingBuffer.Array.S.elt -> unit) -> CCRingBuffer.Array.S.t -> unit
+    end
+  module Byte :
+    sig
+      type elt = char
+      type t = Bytes.t
+      val empty : t
+      val make : int -> elt -> t
+      val length : t -> int
+      val get : t -> int -> elt
+      val set : t -> int -> elt -> unit
+      val sub : t -> int -> int -> t
+      val copy : t -> t
+      val blit : t -> int -> t -> int -> int -> unit
+      val iter : (elt -> unit) -> t -> unit
+    end
+  module Make :
+    functor (Elt : sig type t end->
+      sig
+        type elt = Elt.t
+        type t = Elt.t array
+        val empty : t
+        val make : int -> elt -> t
+        val length : t -> int
+        val get : t -> int -> elt
+        val set : t -> int -> elt -> unit
+        val sub : t -> int -> int -> t
+        val copy : t -> t
+        val blit : t -> int -> t -> int -> int -> unit
+        val iter : (elt -> unit) -> t -> unit
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Byte.html b/0.17/type_CCRingBuffer.Byte.html new file mode 100644 index 00000000..9e79470b --- /dev/null +++ b/0.17/type_CCRingBuffer.Byte.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Byte + + +sig
+  module Array :
+    sig
+      type elt = char
+      type t = Bytes.t
+      val empty : t
+      val make : int -> elt -> t
+      val length : t -> int
+      val get : t -> int -> elt
+      val set : t -> int -> elt -> unit
+      val sub : t -> int -> int -> t
+      val copy : t -> t
+      val blit : t -> int -> t -> int -> int -> unit
+      val iter : (elt -> unit) -> t -> unit
+    end
+  type t
+  exception Empty
+  val create : ?bounded:bool -> int -> t
+  val copy : t -> t
+  val capacity : t -> int
+  val max_capacity : t -> int option
+  val length : t -> int
+  val blit_from : t -> Array.t -> int -> int -> unit
+  val blit_into : t -> Array.t -> int -> int -> int
+  val append : t -> into:t -> unit
+  val to_list : t -> Array.elt list
+  val clear : t -> unit
+  val reset : t -> unit
+  val is_empty : t -> bool
+  val junk_front : t -> unit
+  val junk_back : t -> unit
+  val skip : t -> int -> unit
+  val iter : t -> f:(Array.elt -> unit) -> unit
+  val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+  val get_front : t -> int -> Array.elt
+  val get_back : t -> int -> Array.elt
+  val push_back : t -> Array.elt -> unit
+  val peek_front : t -> Array.elt
+  val peek_back : t -> Array.elt
+  val take_back : t -> Array.elt option
+  val take_back_exn : t -> Array.elt
+  val take_front : t -> Array.elt option
+  val take_front_exn : t -> Array.elt
+  val of_array : Array.t -> t
+  val to_array : t -> Array.t
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.Make.html b/0.17/type_CCRingBuffer.Make.html new file mode 100644 index 00000000..4eaaf796 --- /dev/null +++ b/0.17/type_CCRingBuffer.Make.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.Make + + +functor (X : sig type t end->
+  sig
+    module Array :
+      sig
+        type elt = X.t
+        type t
+        val empty : t
+        val make : int -> elt -> t
+        val length : t -> int
+        val get : t -> int -> elt
+        val set : t -> int -> elt -> unit
+        val sub : t -> int -> int -> t
+        val copy : t -> t
+        val blit : t -> int -> t -> int -> int -> unit
+        val iter : (elt -> unit) -> t -> unit
+      end
+    type t
+    exception Empty
+    val create : ?bounded:bool -> int -> t
+    val copy : t -> t
+    val capacity : t -> int
+    val max_capacity : t -> int option
+    val length : t -> int
+    val blit_from : t -> Array.t -> int -> int -> unit
+    val blit_into : t -> Array.t -> int -> int -> int
+    val append : t -> into:t -> unit
+    val to_list : t -> Array.elt list
+    val clear : t -> unit
+    val reset : t -> unit
+    val is_empty : t -> bool
+    val junk_front : t -> unit
+    val junk_back : t -> unit
+    val skip : t -> int -> unit
+    val iter : t -> f:(Array.elt -> unit) -> unit
+    val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+    val get_front : t -> int -> Array.elt
+    val get_back : t -> int -> Array.elt
+    val push_back : t -> Array.elt -> unit
+    val peek_front : t -> Array.elt
+    val peek_back : t -> Array.elt
+    val take_back : t -> Array.elt option
+    val take_back_exn : t -> Array.elt
+    val take_front : t -> Array.elt option
+    val take_front_exn : t -> Array.elt
+    val of_array : Array.t -> t
+    val to_array : t -> Array.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.MakeFromArray.html b/0.17/type_CCRingBuffer.MakeFromArray.html new file mode 100644 index 00000000..4a37e3b1 --- /dev/null +++ b/0.17/type_CCRingBuffer.MakeFromArray.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.MakeFromArray + + +functor (A : Array.S->
+  sig
+    module Array :
+      sig
+        type elt = A.elt
+        type t = A.t
+        val empty : t
+        val make : int -> elt -> t
+        val length : t -> int
+        val get : t -> int -> elt
+        val set : t -> int -> elt -> unit
+        val sub : t -> int -> int -> t
+        val copy : t -> t
+        val blit : t -> int -> t -> int -> int -> unit
+        val iter : (elt -> unit) -> t -> unit
+      end
+    type t
+    exception Empty
+    val create : ?bounded:bool -> int -> t
+    val copy : t -> t
+    val capacity : t -> int
+    val max_capacity : t -> int option
+    val length : t -> int
+    val blit_from : t -> Array.t -> int -> int -> unit
+    val blit_into : t -> Array.t -> int -> int -> int
+    val append : t -> into:t -> unit
+    val to_list : t -> Array.elt list
+    val clear : t -> unit
+    val reset : t -> unit
+    val is_empty : t -> bool
+    val junk_front : t -> unit
+    val junk_back : t -> unit
+    val skip : t -> int -> unit
+    val iter : t -> f:(Array.elt -> unit) -> unit
+    val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+    val get_front : t -> int -> Array.elt
+    val get_back : t -> int -> Array.elt
+    val push_back : t -> Array.elt -> unit
+    val peek_front : t -> Array.elt
+    val peek_back : t -> Array.elt
+    val take_back : t -> Array.elt option
+    val take_back_exn : t -> Array.elt
+    val take_front : t -> Array.elt option
+    val take_front_exn : t -> Array.elt
+    val of_array : Array.t -> t
+    val to_array : t -> Array.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.S.Array.html b/0.17/type_CCRingBuffer.S.Array.html new file mode 100644 index 00000000..4571cce5 --- /dev/null +++ b/0.17/type_CCRingBuffer.S.Array.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.S.Array + + +Array.S \ No newline at end of file diff --git a/0.17/type_CCRingBuffer.S.html b/0.17/type_CCRingBuffer.S.html new file mode 100644 index 00000000..b8cf4364 --- /dev/null +++ b/0.17/type_CCRingBuffer.S.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer.S + + +sig
+  module Array : Array.S
+  type t
+  exception Empty
+  val create : ?bounded:bool -> int -> CCRingBuffer.S.t
+  val copy : CCRingBuffer.S.t -> CCRingBuffer.S.t
+  val capacity : CCRingBuffer.S.t -> int
+  val max_capacity : CCRingBuffer.S.t -> int option
+  val length : CCRingBuffer.S.t -> int
+  val blit_from : CCRingBuffer.S.t -> Array.t -> int -> int -> unit
+  val blit_into : CCRingBuffer.S.t -> Array.t -> int -> int -> int
+  val append : CCRingBuffer.S.t -> into:CCRingBuffer.S.t -> unit
+  val to_list : CCRingBuffer.S.t -> Array.elt list
+  val clear : CCRingBuffer.S.t -> unit
+  val reset : CCRingBuffer.S.t -> unit
+  val is_empty : CCRingBuffer.S.t -> bool
+  val junk_front : CCRingBuffer.S.t -> unit
+  val junk_back : CCRingBuffer.S.t -> unit
+  val skip : CCRingBuffer.S.t -> int -> unit
+  val iter : CCRingBuffer.S.t -> f:(Array.elt -> unit) -> unit
+  val iteri : CCRingBuffer.S.t -> f:(int -> Array.elt -> unit) -> unit
+  val get_front : CCRingBuffer.S.t -> int -> Array.elt
+  val get_back : CCRingBuffer.S.t -> int -> Array.elt
+  val push_back : CCRingBuffer.S.t -> Array.elt -> unit
+  val peek_front : CCRingBuffer.S.t -> Array.elt
+  val peek_back : CCRingBuffer.S.t -> Array.elt
+  val take_back : CCRingBuffer.S.t -> Array.elt option
+  val take_back_exn : CCRingBuffer.S.t -> Array.elt
+  val take_front : CCRingBuffer.S.t -> Array.elt option
+  val take_front_exn : CCRingBuffer.S.t -> Array.elt
+  val of_array : Array.t -> CCRingBuffer.S.t
+  val to_array : CCRingBuffer.S.t -> Array.t
+end
\ No newline at end of file diff --git a/0.17/type_CCRingBuffer.html b/0.17/type_CCRingBuffer.html new file mode 100644 index 00000000..734f4fef --- /dev/null +++ b/0.17/type_CCRingBuffer.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCRingBuffer + + +sig
+  module Array :
+    sig
+      module type S =
+        sig
+          type elt
+          type t
+          val empty : CCRingBuffer.Array.S.t
+          val make :
+            int -> CCRingBuffer.Array.S.elt -> CCRingBuffer.Array.S.t
+          val length : CCRingBuffer.Array.S.t -> int
+          val get : CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt
+          val set :
+            CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt -> unit
+          val sub :
+            CCRingBuffer.Array.S.t -> int -> int -> CCRingBuffer.Array.S.t
+          val copy : CCRingBuffer.Array.S.t -> CCRingBuffer.Array.S.t
+          val blit :
+            CCRingBuffer.Array.S.t ->
+            int -> CCRingBuffer.Array.S.t -> int -> int -> unit
+          val iter :
+            (CCRingBuffer.Array.S.elt -> unit) ->
+            CCRingBuffer.Array.S.t -> unit
+        end
+      module Byte :
+        sig
+          type elt = char
+          type t = Bytes.t
+          val empty : t
+          val make : int -> elt -> t
+          val length : t -> int
+          val get : t -> int -> elt
+          val set : t -> int -> elt -> unit
+          val sub : t -> int -> int -> t
+          val copy : t -> t
+          val blit : t -> int -> t -> int -> int -> unit
+          val iter : (elt -> unit) -> t -> unit
+        end
+      module Make :
+        functor (Elt : sig type t end->
+          sig
+            type elt = Elt.t
+            type t = Elt.t array
+            val empty : t
+            val make : int -> elt -> t
+            val length : t -> int
+            val get : t -> int -> elt
+            val set : t -> int -> elt -> unit
+            val sub : t -> int -> int -> t
+            val copy : t -> t
+            val blit : t -> int -> t -> int -> int -> unit
+            val iter : (elt -> unit) -> t -> unit
+          end
+    end
+  module type S =
+    sig
+      module Array : Array.S
+      type t
+      exception Empty
+      val create : ?bounded:bool -> int -> CCRingBuffer.S.t
+      val copy : CCRingBuffer.S.t -> CCRingBuffer.S.t
+      val capacity : CCRingBuffer.S.t -> int
+      val max_capacity : CCRingBuffer.S.t -> int option
+      val length : CCRingBuffer.S.t -> int
+      val blit_from : CCRingBuffer.S.t -> Array.t -> int -> int -> unit
+      val blit_into : CCRingBuffer.S.t -> Array.t -> int -> int -> int
+      val append : CCRingBuffer.S.t -> into:CCRingBuffer.S.t -> unit
+      val to_list : CCRingBuffer.S.t -> Array.elt list
+      val clear : CCRingBuffer.S.t -> unit
+      val reset : CCRingBuffer.S.t -> unit
+      val is_empty : CCRingBuffer.S.t -> bool
+      val junk_front : CCRingBuffer.S.t -> unit
+      val junk_back : CCRingBuffer.S.t -> unit
+      val skip : CCRingBuffer.S.t -> int -> unit
+      val iter : CCRingBuffer.S.t -> f:(Array.elt -> unit) -> unit
+      val iteri : CCRingBuffer.S.t -> f:(int -> Array.elt -> unit) -> unit
+      val get_front : CCRingBuffer.S.t -> int -> Array.elt
+      val get_back : CCRingBuffer.S.t -> int -> Array.elt
+      val push_back : CCRingBuffer.S.t -> Array.elt -> unit
+      val peek_front : CCRingBuffer.S.t -> Array.elt
+      val peek_back : CCRingBuffer.S.t -> Array.elt
+      val take_back : CCRingBuffer.S.t -> Array.elt option
+      val take_back_exn : CCRingBuffer.S.t -> Array.elt
+      val take_front : CCRingBuffer.S.t -> Array.elt option
+      val take_front_exn : CCRingBuffer.S.t -> Array.elt
+      val of_array : Array.t -> CCRingBuffer.S.t
+      val to_array : CCRingBuffer.S.t -> Array.t
+    end
+  module Byte :
+    sig
+      module Array :
+        sig
+          type elt = char
+          type t = Bytes.t
+          val empty : t
+          val make : int -> elt -> t
+          val length : t -> int
+          val get : t -> int -> elt
+          val set : t -> int -> elt -> unit
+          val sub : t -> int -> int -> t
+          val copy : t -> t
+          val blit : t -> int -> t -> int -> int -> unit
+          val iter : (elt -> unit) -> t -> unit
+        end
+      type t
+      exception Empty
+      val create : ?bounded:bool -> int -> t
+      val copy : t -> t
+      val capacity : t -> int
+      val max_capacity : t -> int option
+      val length : t -> int
+      val blit_from : t -> Array.t -> int -> int -> unit
+      val blit_into : t -> Array.t -> int -> int -> int
+      val append : t -> into:t -> unit
+      val to_list : t -> Array.elt list
+      val clear : t -> unit
+      val reset : t -> unit
+      val is_empty : t -> bool
+      val junk_front : t -> unit
+      val junk_back : t -> unit
+      val skip : t -> int -> unit
+      val iter : t -> f:(Array.elt -> unit) -> unit
+      val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+      val get_front : t -> int -> Array.elt
+      val get_back : t -> int -> Array.elt
+      val push_back : t -> Array.elt -> unit
+      val peek_front : t -> Array.elt
+      val peek_back : t -> Array.elt
+      val take_back : t -> Array.elt option
+      val take_back_exn : t -> Array.elt
+      val take_front : t -> Array.elt option
+      val take_front_exn : t -> Array.elt
+      val of_array : Array.t -> t
+      val to_array : t -> Array.t
+    end
+  module MakeFromArray :
+    functor (A : Array.S->
+      sig
+        module Array :
+          sig
+            type elt = A.elt
+            type t = A.t
+            val empty : t
+            val make : int -> elt -> t
+            val length : t -> int
+            val get : t -> int -> elt
+            val set : t -> int -> elt -> unit
+            val sub : t -> int -> int -> t
+            val copy : t -> t
+            val blit : t -> int -> t -> int -> int -> unit
+            val iter : (elt -> unit) -> t -> unit
+          end
+        type t
+        exception Empty
+        val create : ?bounded:bool -> int -> t
+        val copy : t -> t
+        val capacity : t -> int
+        val max_capacity : t -> int option
+        val length : t -> int
+        val blit_from : t -> Array.t -> int -> int -> unit
+        val blit_into : t -> Array.t -> int -> int -> int
+        val append : t -> into:t -> unit
+        val to_list : t -> Array.elt list
+        val clear : t -> unit
+        val reset : t -> unit
+        val is_empty : t -> bool
+        val junk_front : t -> unit
+        val junk_back : t -> unit
+        val skip : t -> int -> unit
+        val iter : t -> f:(Array.elt -> unit) -> unit
+        val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+        val get_front : t -> int -> Array.elt
+        val get_back : t -> int -> Array.elt
+        val push_back : t -> Array.elt -> unit
+        val peek_front : t -> Array.elt
+        val peek_back : t -> Array.elt
+        val take_back : t -> Array.elt option
+        val take_back_exn : t -> Array.elt
+        val take_front : t -> Array.elt option
+        val take_front_exn : t -> Array.elt
+        val of_array : Array.t -> t
+        val to_array : t -> Array.t
+      end
+  module Make :
+    functor (X : sig type t end->
+      sig
+        module Array :
+          sig
+            type elt = X.t
+            type t
+            val empty : t
+            val make : int -> elt -> t
+            val length : t -> int
+            val get : t -> int -> elt
+            val set : t -> int -> elt -> unit
+            val sub : t -> int -> int -> t
+            val copy : t -> t
+            val blit : t -> int -> t -> int -> int -> unit
+            val iter : (elt -> unit) -> t -> unit
+          end
+        type t
+        exception Empty
+        val create : ?bounded:bool -> int -> t
+        val copy : t -> t
+        val capacity : t -> int
+        val max_capacity : t -> int option
+        val length : t -> int
+        val blit_from : t -> Array.t -> int -> int -> unit
+        val blit_into : t -> Array.t -> int -> int -> int
+        val append : t -> into:t -> unit
+        val to_list : t -> Array.elt list
+        val clear : t -> unit
+        val reset : t -> unit
+        val is_empty : t -> bool
+        val junk_front : t -> unit
+        val junk_back : t -> unit
+        val skip : t -> int -> unit
+        val iter : t -> f:(Array.elt -> unit) -> unit
+        val iteri : t -> f:(int -> Array.elt -> unit) -> unit
+        val get_front : t -> int -> Array.elt
+        val get_back : t -> int -> Array.elt
+        val push_back : t -> Array.elt -> unit
+        val peek_front : t -> Array.elt
+        val peek_back : t -> Array.elt
+        val take_back : t -> Array.elt option
+        val take_back_exn : t -> Array.elt
+        val take_front : t -> Array.elt option
+        val take_front_exn : t -> Array.elt
+        val of_array : Array.t -> t
+        val to_array : t -> Array.t
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCSemaphore.html b/0.17/type_CCSemaphore.html new file mode 100644 index 00000000..cd699eed --- /dev/null +++ b/0.17/type_CCSemaphore.html @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSemaphore + + +sig
+  type t
+  val create : int -> CCSemaphore.t
+  val get : CCSemaphore.t -> int
+  val acquire : int -> CCSemaphore.t -> unit
+  val release : int -> CCSemaphore.t -> unit
+  val with_acquire : n:int -> CCSemaphore.t -> f:(unit -> 'a) -> 'a
+  val wait_until_at_least : n:int -> CCSemaphore.t -> f:(unit -> 'a) -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCSet.Make.html b/0.17/type_CCSet.Make.html new file mode 100644 index 00000000..4206dd29 --- /dev/null +++ b/0.17/type_CCSet.Make.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet.Make + + +functor (O : Set.OrderedType->
+  sig
+    type elt = O.t
+    type t = Set.Make(O).t
+    val empty : t
+    val is_empty : t -> bool
+    val mem : elt -> t -> bool
+    val add : elt -> t -> t
+    val singleton : elt -> t
+    val remove : elt -> t -> t
+    val union : t -> t -> t
+    val inter : t -> t -> t
+    val diff : t -> t -> t
+    val compare : t -> t -> int
+    val equal : t -> t -> bool
+    val subset : t -> t -> bool
+    val iter : (elt -> unit) -> t -> unit
+    val fold : (elt -> '-> 'a) -> t -> '-> 'a
+    val for_all : (elt -> bool) -> t -> bool
+    val exists : (elt -> bool) -> t -> bool
+    val filter : (elt -> bool) -> t -> t
+    val partition : (elt -> bool) -> t -> t * t
+    val cardinal : t -> int
+    val elements : t -> elt list
+    val min_elt : t -> elt
+    val max_elt : t -> elt
+    val choose : t -> elt
+    val split : elt -> t -> t * bool * t
+    val find : elt -> t -> elt
+    val of_seq : elt sequence -> t
+    val add_seq : t -> elt sequence -> t
+    val to_seq : t -> elt sequence
+    val of_list : elt list -> t
+    val add_list : t -> elt list -> t
+    val to_list : t -> elt list
+    val pp :
+      ?start:string ->
+      ?stop:string -> ?sep:string -> elt printer -> t printer
+    val print :
+      ?start:string ->
+      ?stop:string -> ?sep:string -> elt formatter -> t formatter
+  end
\ No newline at end of file diff --git a/0.17/type_CCSet.S.html b/0.17/type_CCSet.S.html new file mode 100644 index 00000000..ad3c635a --- /dev/null +++ b/0.17/type_CCSet.S.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet.S + + +sig
+  type elt
+  type t
+  val empty : t
+  val is_empty : t -> bool
+  val mem : elt -> t -> bool
+  val add : elt -> t -> t
+  val singleton : elt -> t
+  val remove : elt -> t -> t
+  val union : t -> t -> t
+  val inter : t -> t -> t
+  val diff : t -> t -> t
+  val compare : t -> t -> int
+  val equal : t -> t -> bool
+  val subset : t -> t -> bool
+  val iter : (elt -> unit) -> t -> unit
+  val fold : (elt -> '-> 'a) -> t -> '-> 'a
+  val for_all : (elt -> bool) -> t -> bool
+  val exists : (elt -> bool) -> t -> bool
+  val filter : (elt -> bool) -> t -> t
+  val partition : (elt -> bool) -> t -> t * t
+  val cardinal : t -> int
+  val elements : t -> elt list
+  val min_elt : t -> elt
+  val max_elt : t -> elt
+  val choose : t -> elt
+  val split : elt -> t -> t * bool * t
+  val find : elt -> t -> elt
+  val of_seq : elt CCSet.sequence -> t
+  val add_seq : t -> elt CCSet.sequence -> t
+  val to_seq : t -> elt CCSet.sequence
+  val of_list : elt list -> t
+  val add_list : t -> elt list -> t
+  val to_list : t -> elt list
+  val pp :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> elt CCSet.printer -> t CCSet.printer
+  val print :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> elt CCSet.formatter -> t CCSet.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCSet.html b/0.17/type_CCSet.html new file mode 100644 index 00000000..f94eb21c --- /dev/null +++ b/0.17/type_CCSet.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSet + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : t
+      val is_empty : t -> bool
+      val mem : elt -> t -> bool
+      val add : elt -> t -> t
+      val singleton : elt -> t
+      val remove : elt -> t -> t
+      val union : t -> t -> t
+      val inter : t -> t -> t
+      val diff : t -> t -> t
+      val compare : t -> t -> int
+      val equal : t -> t -> bool
+      val subset : t -> t -> bool
+      val iter : (elt -> unit) -> t -> unit
+      val fold : (elt -> '-> 'a) -> t -> '-> 'a
+      val for_all : (elt -> bool) -> t -> bool
+      val exists : (elt -> bool) -> t -> bool
+      val filter : (elt -> bool) -> t -> t
+      val partition : (elt -> bool) -> t -> t * t
+      val cardinal : t -> int
+      val elements : t -> elt list
+      val min_elt : t -> elt
+      val max_elt : t -> elt
+      val choose : t -> elt
+      val split : elt -> t -> t * bool * t
+      val find : elt -> t -> elt
+      val of_seq : elt CCSet.sequence -> t
+      val add_seq : t -> elt CCSet.sequence -> t
+      val to_seq : t -> elt CCSet.sequence
+      val of_list : elt list -> t
+      val add_list : t -> elt list -> t
+      val to_list : t -> elt list
+      val pp :
+        ?start:string ->
+        ?stop:string -> ?sep:string -> elt CCSet.printer -> t CCSet.printer
+      val print :
+        ?start:string ->
+        ?stop:string ->
+        ?sep:string -> elt CCSet.formatter -> t CCSet.formatter
+    end
+  module Make :
+    functor (O : Set.OrderedType->
+      sig
+        type elt = O.t
+        type t = Set.Make(O).t
+        val empty : t
+        val is_empty : t -> bool
+        val mem : elt -> t -> bool
+        val add : elt -> t -> t
+        val singleton : elt -> t
+        val remove : elt -> t -> t
+        val union : t -> t -> t
+        val inter : t -> t -> t
+        val diff : t -> t -> t
+        val compare : t -> t -> int
+        val equal : t -> t -> bool
+        val subset : t -> t -> bool
+        val iter : (elt -> unit) -> t -> unit
+        val fold : (elt -> '-> 'a) -> t -> '-> 'a
+        val for_all : (elt -> bool) -> t -> bool
+        val exists : (elt -> bool) -> t -> bool
+        val filter : (elt -> bool) -> t -> t
+        val partition : (elt -> bool) -> t -> t * t
+        val cardinal : t -> int
+        val elements : t -> elt list
+        val min_elt : t -> elt
+        val max_elt : t -> elt
+        val choose : t -> elt
+        val split : elt -> t -> t * bool * t
+        val find : elt -> t -> elt
+        val of_seq : elt sequence -> t
+        val add_seq : t -> elt sequence -> t
+        val to_seq : t -> elt sequence
+        val of_list : elt list -> t
+        val add_list : t -> elt list -> t
+        val to_list : t -> elt list
+        val pp :
+          ?start:string ->
+          ?stop:string -> ?sep:string -> elt printer -> t printer
+        val print :
+          ?start:string ->
+          ?stop:string -> ?sep:string -> elt formatter -> t formatter
+      end
+end
\ No newline at end of file diff --git a/0.17/type_CCSexp.Traverse.html b/0.17/type_CCSexp.Traverse.html new file mode 100644 index 00000000..56f49e6e --- /dev/null +++ b/0.17/type_CCSexp.Traverse.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexp.Traverse + + +sig
+  type 'a conv = CCSexp.t -> 'a option
+  val map_opt : ('-> 'b option) -> 'a list -> 'b list option
+  val list_any : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a option
+  val list_all : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a list
+  val to_int : int CCSexp.Traverse.conv
+  val to_string : string CCSexp.Traverse.conv
+  val to_bool : bool CCSexp.Traverse.conv
+  val to_float : float CCSexp.Traverse.conv
+  val to_list : CCSexp.t list CCSexp.Traverse.conv
+  val to_list_with : (CCSexp.t -> 'a option) -> 'a list CCSexp.Traverse.conv
+  val to_pair : (CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
+  val to_pair_with :
+    'CCSexp.Traverse.conv ->
+    'CCSexp.Traverse.conv -> ('a * 'b) CCSexp.Traverse.conv
+  val to_triple : (CCSexp.t * CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
+  val to_triple_with :
+    'CCSexp.Traverse.conv ->
+    'CCSexp.Traverse.conv ->
+    'CCSexp.Traverse.conv -> ('a * 'b * 'c) CCSexp.Traverse.conv
+  val get_field : string -> CCSexp.t CCSexp.Traverse.conv
+  val field : string -> 'CCSexp.Traverse.conv -> 'CCSexp.Traverse.conv
+  val get_variant :
+    (string * (CCSexp.t list -> 'a option)) list -> 'CCSexp.Traverse.conv
+  val field_list :
+    string -> (CCSexp.t list -> 'a option) -> 'CCSexp.Traverse.conv
+  val ( >>= ) : 'a option -> ('-> 'b option) -> 'b option
+  val ( >|= ) : 'a option -> ('-> 'b) -> 'b option
+  val return : '-> 'a option
+  val get_exn : 'a option -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCSexp.html b/0.17/type_CCSexp.html new file mode 100644 index 00000000..fcd32587 --- /dev/null +++ b/0.17/type_CCSexp.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexp + + +sig
+  type t = [ `Atom of string | `List of CCSexp.t list ]
+  val equal : CCSexp.t -> CCSexp.t -> bool
+  val compare : CCSexp.t -> CCSexp.t -> int
+  val hash : CCSexp.t -> int
+  val atom : string -> CCSexp.t
+  val of_int : int -> CCSexp.t
+  val of_bool : bool -> CCSexp.t
+  val of_list : CCSexp.t list -> CCSexp.t
+  val of_rev_list : CCSexp.t list -> CCSexp.t
+  val of_float : float -> CCSexp.t
+  val of_unit : CCSexp.t
+  val of_pair : CCSexp.t * CCSexp.t -> CCSexp.t
+  val of_triple : CCSexp.t * CCSexp.t * CCSexp.t -> CCSexp.t
+  val of_quad : CCSexp.t * CCSexp.t * CCSexp.t * CCSexp.t -> CCSexp.t
+  val of_variant : string -> CCSexp.t list -> CCSexp.t
+  val of_field : string -> CCSexp.t -> CCSexp.t
+  val of_record : (string * CCSexp.t) list -> CCSexp.t
+  module Traverse :
+    sig
+      type 'a conv = CCSexp.t -> 'a option
+      val map_opt : ('-> 'b option) -> 'a list -> 'b list option
+      val list_any : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a option
+      val list_all : 'CCSexp.Traverse.conv -> CCSexp.t -> 'a list
+      val to_int : int CCSexp.Traverse.conv
+      val to_string : string CCSexp.Traverse.conv
+      val to_bool : bool CCSexp.Traverse.conv
+      val to_float : float CCSexp.Traverse.conv
+      val to_list : CCSexp.t list CCSexp.Traverse.conv
+      val to_list_with :
+        (CCSexp.t -> 'a option) -> 'a list CCSexp.Traverse.conv
+      val to_pair : (CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
+      val to_pair_with :
+        'CCSexp.Traverse.conv ->
+        'CCSexp.Traverse.conv -> ('a * 'b) CCSexp.Traverse.conv
+      val to_triple : (CCSexp.t * CCSexp.t * CCSexp.t) CCSexp.Traverse.conv
+      val to_triple_with :
+        'CCSexp.Traverse.conv ->
+        'CCSexp.Traverse.conv ->
+        'CCSexp.Traverse.conv -> ('a * 'b * 'c) CCSexp.Traverse.conv
+      val get_field : string -> CCSexp.t CCSexp.Traverse.conv
+      val field :
+        string -> 'CCSexp.Traverse.conv -> 'CCSexp.Traverse.conv
+      val get_variant :
+        (string * (CCSexp.t list -> 'a option)) list ->
+        'CCSexp.Traverse.conv
+      val field_list :
+        string -> (CCSexp.t list -> 'a option) -> 'CCSexp.Traverse.conv
+      val ( >>= ) : 'a option -> ('-> 'b option) -> 'b option
+      val ( >|= ) : 'a option -> ('-> 'b) -> 'b option
+      val return : '-> 'a option
+      val get_exn : 'a option -> 'a
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCSexpM.D.html b/0.17/type_CCSexpM.D.html new file mode 100644 index 00000000..cc09f06d --- /dev/null +++ b/0.17/type_CCSexpM.D.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.D + + +sig
+  type t = MakeDecode(ID_MONAD).t
+  val make : ?bufsize:int -> (Bytes.t -> int -> int -> int ID_MONAD.t) -> t
+  val next : t -> sexp parse_result ID_MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCSexpM.ID_MONAD.html b/0.17/type_CCSexpM.ID_MONAD.html new file mode 100644 index 00000000..4b368390 --- /dev/null +++ b/0.17/type_CCSexpM.ID_MONAD.html @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.ID_MONAD + + +sig
+  type 'a t = 'a
+  val return : '-> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+end
\ No newline at end of file diff --git a/0.17/type_CCSexpM.MONAD.html b/0.17/type_CCSexpM.MONAD.html new file mode 100644 index 00000000..d90a4609 --- /dev/null +++ b/0.17/type_CCSexpM.MONAD.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.MONAD + + +sig
+  type 'a t
+  val return : '-> 'CCSexpM.MONAD.t
+  val ( >>= ) :
+    'CCSexpM.MONAD.t -> ('-> 'CCSexpM.MONAD.t) -> 'CCSexpM.MONAD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCSexpM.MakeDecode.html b/0.17/type_CCSexpM.MakeDecode.html new file mode 100644 index 00000000..f52d4963 --- /dev/null +++ b/0.17/type_CCSexpM.MakeDecode.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM.MakeDecode + + +functor (M : MONAD->
+  sig
+    type t
+    val make :
+      ?bufsize:int ->
+      (Bytes.t -> int -> int -> int M.t) -> CCSexpM.MakeDecode.t
+    val next : CCSexpM.MakeDecode.t -> CCSexpM.sexp CCSexpM.parse_result M.t
+  end
\ No newline at end of file diff --git a/0.17/type_CCSexpM.html b/0.17/type_CCSexpM.html new file mode 100644 index 00000000..a1164be9 --- /dev/null +++ b/0.17/type_CCSexpM.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCSexpM + + +sig
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type t = [ `Atom of string | `List of CCSexpM.t list ]
+  type sexp = CCSexpM.t
+  val to_buf : Buffer.t -> CCSexpM.t -> unit
+  val to_string : CCSexpM.t -> string
+  val to_file : string -> CCSexpM.t -> unit
+  val to_file_seq : string -> CCSexpM.t CCSexpM.sequence -> unit
+  val to_chan : Pervasives.out_channel -> CCSexpM.t -> unit
+  val print : Format.formatter -> CCSexpM.t -> unit
+  val print_noindent : Format.formatter -> CCSexpM.t -> unit
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'CCSexpM.MONAD.t
+      val ( >>= ) :
+        'CCSexpM.MONAD.t ->
+        ('-> 'CCSexpM.MONAD.t) -> 'CCSexpM.MONAD.t
+    end
+  type 'a parse_result = [ `End | `Error of string | `Ok of 'a ]
+  module MakeDecode :
+    functor (M : MONAD->
+      sig
+        type t
+        val make :
+          ?bufsize:int ->
+          (Bytes.t -> int -> int -> int M.t) -> CCSexpM.MakeDecode.t
+        val next :
+          CCSexpM.MakeDecode.t -> CCSexpM.sexp CCSexpM.parse_result M.t
+      end
+  module ID_MONAD :
+    sig
+      type 'a t = 'a
+      val return : '-> 'a t
+      val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+    end
+  module D :
+    sig
+      type t = MakeDecode(ID_MONAD).t
+      val make :
+        ?bufsize:int -> (Bytes.t -> int -> int -> int ID_MONAD.t) -> t
+      val next : t -> sexp parse_result ID_MONAD.t
+    end
+  val parse_string : string -> CCSexpM.t CCSexpM.or_error
+  val parse_chan :
+    ?bufsize:int -> Pervasives.in_channel -> CCSexpM.t CCSexpM.or_error
+  val parse_chan_gen :
+    ?bufsize:int ->
+    Pervasives.in_channel -> CCSexpM.t CCSexpM.or_error CCSexpM.gen
+  val parse_chan_list :
+    ?bufsize:int -> Pervasives.in_channel -> CCSexpM.t list CCSexpM.or_error
+  val parse_file : string -> CCSexpM.t CCSexpM.or_error
+  val parse_file_list : string -> CCSexpM.t list CCSexpM.or_error
+end
\ No newline at end of file diff --git a/0.17/type_CCString.S.html b/0.17/type_CCString.S.html new file mode 100644 index 00000000..011d6000 --- /dev/null +++ b/0.17/type_CCString.S.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.S + + +sig
+  type t
+  val length : CCString.S.t -> int
+  val blit : CCString.S.t -> int -> Bytes.t -> int -> int -> unit
+  val fold : ('-> char -> 'a) -> '-> CCString.S.t -> 'a
+  val to_gen : CCString.S.t -> char CCString.gen
+  val to_seq : CCString.S.t -> char CCString.sequence
+  val to_klist : CCString.S.t -> char CCString.klist
+  val to_list : CCString.S.t -> char list
+  val pp : Buffer.t -> CCString.S.t -> unit
+  val print : Format.formatter -> CCString.S.t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCString.Split.html b/0.17/type_CCString.Split.html new file mode 100644 index 00000000..f942bc12 --- /dev/null +++ b/0.17/type_CCString.Split.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.Split + + +sig
+  val list_ : by:string -> string -> (string * int * int) list
+  val gen : by:string -> string -> (string * int * int) CCString.gen
+  val seq : by:string -> string -> (string * int * int) CCString.sequence
+  val klist : by:string -> string -> (string * int * int) CCString.klist
+  val list_cpy : by:string -> string -> string list
+  val gen_cpy : by:string -> string -> string CCString.gen
+  val seq_cpy : by:string -> string -> string CCString.sequence
+  val klist_cpy : by:string -> string -> string CCString.klist
+  val left : by:string -> string -> (string * string) option
+  val left_exn : by:string -> string -> string * string
+  val right : by:string -> string -> (string * string) option
+  val right_exn : by:string -> string -> string * string
+end
\ No newline at end of file diff --git a/0.17/type_CCString.Sub.html b/0.17/type_CCString.Sub.html new file mode 100644 index 00000000..e3030850 --- /dev/null +++ b/0.17/type_CCString.Sub.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString.Sub + + +sig
+  type t = string * int * int
+  val make : string -> int -> len:int -> CCString.Sub.t
+  val full : string -> CCString.Sub.t
+  val copy : CCString.Sub.t -> string
+  val underlying : CCString.Sub.t -> string
+  val sub : CCString.Sub.t -> int -> int -> CCString.Sub.t
+  val length : t -> int
+  val blit : t -> int -> Bytes.t -> int -> int -> unit
+  val fold : ('-> char -> 'a) -> '-> t -> 'a
+  val to_gen : t -> char gen
+  val to_seq : t -> char sequence
+  val to_klist : t -> char klist
+  val to_list : t -> char list
+  val pp : Buffer.t -> t -> unit
+  val print : Format.formatter -> t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCString.html b/0.17/type_CCString.html new file mode 100644 index 00000000..82658ce9 --- /dev/null +++ b/0.17/type_CCString.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCString + + +sig
+  type 'a gen = unit -> 'a option
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'CCString.klist | `Nil ]
+  module type S =
+    sig
+      type t
+      val length : CCString.S.t -> int
+      val blit : CCString.S.t -> int -> Bytes.t -> int -> int -> unit
+      val fold : ('-> char -> 'a) -> '-> CCString.S.t -> 'a
+      val to_gen : CCString.S.t -> char CCString.gen
+      val to_seq : CCString.S.t -> char CCString.sequence
+      val to_klist : CCString.S.t -> char CCString.klist
+      val to_list : CCString.S.t -> char list
+      val pp : Buffer.t -> CCString.S.t -> unit
+      val print : Format.formatter -> CCString.S.t -> unit
+    end
+  val equal : string -> string -> bool
+  val compare : string -> string -> int
+  val hash : string -> int
+  val init : int -> (int -> char) -> string
+  val rev : string -> string
+  val pad : ?side:[ `Left | `Right ] -> ?c:char -> int -> string -> string
+  val of_gen : char CCString.gen -> string
+  val of_seq : char CCString.sequence -> string
+  val of_klist : char CCString.klist -> string
+  val of_list : char list -> string
+  val of_array : char array -> string
+  val to_array : string -> char array
+  val find : ?start:int -> sub:string -> string -> int
+  val find_all : ?start:int -> sub:string -> string -> int CCString.gen
+  val find_all_l : ?start:int -> sub:string -> string -> int list
+  val mem : ?start:int -> sub:string -> string -> bool
+  val rfind : sub:string -> string -> int
+  val replace :
+    ?which:[ `All | `Left | `Right ] ->
+    sub:string -> by:string -> string -> string
+  val is_sub : sub:string -> int -> string -> int -> len:int -> bool
+  val repeat : string -> int -> string
+  val prefix : pre:string -> string -> bool
+  val suffix : suf:string -> string -> bool
+  val chop_prefix : pre:string -> string -> string option
+  val chop_suffix : suf:string -> string -> string option
+  val take : int -> string -> string
+  val drop : int -> string -> string
+  val take_drop : int -> string -> string * string
+  val lines : string -> string list
+  val lines_gen : string -> string CCString.gen
+  val concat_gen : sep:string -> string CCString.gen -> string
+  val unlines : string list -> string
+  val unlines_gen : string CCString.gen -> string
+  val set : string -> int -> char -> string
+  val iter : (char -> unit) -> string -> unit
+  val iteri : (int -> char -> unit) -> string -> unit
+  val map : (char -> char) -> string -> string
+  val mapi : (int -> char -> char) -> string -> string
+  val filter_map : (char -> char option) -> string -> string
+  val filter : (char -> bool) -> string -> string
+  val flat_map : ?sep:string -> (char -> string) -> string -> string
+  val for_all : (char -> bool) -> string -> bool
+  val exists : (char -> bool) -> string -> bool
+  val length : string -> int
+  val blit : string -> int -> Bytes.t -> int -> int -> unit
+  val fold : ('-> char -> 'a) -> '-> string -> 'a
+  val to_gen : string -> char gen
+  val to_seq : string -> char sequence
+  val to_klist : string -> char klist
+  val to_list : string -> char list
+  val pp : Buffer.t -> string -> unit
+  val print : Format.formatter -> string -> unit
+  val map2 : (char -> char -> char) -> string -> string -> string
+  val iter2 : (char -> char -> unit) -> string -> string -> unit
+  val iteri2 : (int -> char -> char -> unit) -> string -> string -> unit
+  val fold2 : ('-> char -> char -> 'a) -> '-> string -> string -> 'a
+  val for_all2 : (char -> char -> bool) -> string -> string -> bool
+  val exists2 : (char -> char -> bool) -> string -> string -> bool
+  module Split :
+    sig
+      val list_ : by:string -> string -> (string * int * int) list
+      val gen : by:string -> string -> (string * int * int) CCString.gen
+      val seq : by:string -> string -> (string * int * int) CCString.sequence
+      val klist : by:string -> string -> (string * int * int) CCString.klist
+      val list_cpy : by:string -> string -> string list
+      val gen_cpy : by:string -> string -> string CCString.gen
+      val seq_cpy : by:string -> string -> string CCString.sequence
+      val klist_cpy : by:string -> string -> string CCString.klist
+      val left : by:string -> string -> (string * string) option
+      val left_exn : by:string -> string -> string * string
+      val right : by:string -> string -> (string * string) option
+      val right_exn : by:string -> string -> string * string
+    end
+  val compare_versions : string -> string -> int
+  module Sub :
+    sig
+      type t = string * int * int
+      val make : string -> int -> len:int -> CCString.Sub.t
+      val full : string -> CCString.Sub.t
+      val copy : CCString.Sub.t -> string
+      val underlying : CCString.Sub.t -> string
+      val sub : CCString.Sub.t -> int -> int -> CCString.Sub.t
+      val length : t -> int
+      val blit : t -> int -> Bytes.t -> int -> int -> unit
+      val fold : ('-> char -> 'a) -> '-> t -> 'a
+      val to_gen : t -> char gen
+      val to_seq : t -> char sequence
+      val to_klist : t -> char klist
+      val to_list : t -> char list
+      val pp : Buffer.t -> t -> unit
+      val print : Format.formatter -> t -> unit
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCThread.Arr.html b/0.17/type_CCThread.Arr.html new file mode 100644 index 00000000..331adae6 --- /dev/null +++ b/0.17/type_CCThread.Arr.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread.Arr + + +sig
+  val spawn : int -> (int -> 'a) -> CCThread.t array
+  val join : CCThread.t array -> unit
+end
\ No newline at end of file diff --git a/0.17/type_CCThread.Barrier.html b/0.17/type_CCThread.Barrier.html new file mode 100644 index 00000000..a064e843 --- /dev/null +++ b/0.17/type_CCThread.Barrier.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread.Barrier + + +sig
+  type t
+  val create : unit -> CCThread.Barrier.t
+  val reset : CCThread.Barrier.t -> unit
+  val wait : CCThread.Barrier.t -> unit
+  val activate : CCThread.Barrier.t -> unit
+  val activated : CCThread.Barrier.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCThread.html b/0.17/type_CCThread.html new file mode 100644 index 00000000..caaf5e2e --- /dev/null +++ b/0.17/type_CCThread.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCThread + + +sig
+  type t = Thread.t
+  val spawn : (unit -> 'a) -> CCThread.t
+  val spawn1 : ('-> 'b) -> '-> CCThread.t
+  val spawn2 : ('-> '-> 'c) -> '-> '-> CCThread.t
+  val detach : (unit -> 'a) -> unit
+  module Arr :
+    sig
+      val spawn : int -> (int -> 'a) -> CCThread.t array
+      val join : CCThread.t array -> unit
+    end
+  module Barrier :
+    sig
+      type t
+      val create : unit -> CCThread.Barrier.t
+      val reset : CCThread.Barrier.t -> unit
+      val wait : CCThread.Barrier.t -> unit
+      val activate : CCThread.Barrier.t -> unit
+      val activated : CCThread.Barrier.t -> bool
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCTimer.html b/0.17/type_CCTimer.html new file mode 100644 index 00000000..5ca2c81f --- /dev/null +++ b/0.17/type_CCTimer.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTimer + + +sig
+  type t
+  val create : unit -> CCTimer.t
+  val set_exn_handler : CCTimer.t -> (exn -> unit) -> unit
+  exception Stopped
+  val after : CCTimer.t -> float -> f:(unit -> 'a) -> unit
+  val at : CCTimer.t -> float -> f:(unit -> 'a) -> unit
+  exception ExitEvery
+  val every : ?delay:float -> CCTimer.t -> float -> f:(unit -> 'a) -> unit
+  val stop : CCTimer.t -> unit
+  val active : CCTimer.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCTrie.Make.html b/0.17/type_CCTrie.Make.html new file mode 100644 index 00000000..4c8c5cdc --- /dev/null +++ b/0.17/type_CCTrie.Make.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.Make + + +functor (W : WORD->
+  sig
+    type char_ = W.char_
+    type key = W.t
+    type 'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val add : key -> '-> 'a t -> 'a t
+    val remove : key -> 'a t -> 'a t
+    val find : key -> 'a t -> 'a option
+    val find_exn : key -> 'a t -> 'a
+    val longest_prefix : key -> 'a t -> key
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+    val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val iter : (key -> '-> unit) -> 'a t -> unit
+    val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+    val iter_values : ('-> unit) -> 'a t -> unit
+    val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+    val size : 'a t -> int
+    val to_list : 'a t -> (key * 'a) list
+    val of_list : (key * 'a) list -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq_values : 'a t -> 'a sequence
+    val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+    val above : key -> 'a t -> (key * 'a) sequence
+    val below : key -> 'a t -> (key * 'a) sequence
+    val check_invariants : 'a t -> bool
+  end
\ No newline at end of file diff --git a/0.17/type_CCTrie.MakeArray.html b/0.17/type_CCTrie.MakeArray.html new file mode 100644 index 00000000..65cf329a --- /dev/null +++ b/0.17/type_CCTrie.MakeArray.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.MakeArray + + +functor (X : ORDERED->
+  sig
+    type char_ = X.t
+    type key = X.t array
+    type 'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val add : key -> '-> 'a t -> 'a t
+    val remove : key -> 'a t -> 'a t
+    val find : key -> 'a t -> 'a option
+    val find_exn : key -> 'a t -> 'a
+    val longest_prefix : key -> 'a t -> key
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+    val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val iter : (key -> '-> unit) -> 'a t -> unit
+    val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+    val iter_values : ('-> unit) -> 'a t -> unit
+    val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+    val size : 'a t -> int
+    val to_list : 'a t -> (key * 'a) list
+    val of_list : (key * 'a) list -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq_values : 'a t -> 'a sequence
+    val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+    val above : key -> 'a t -> (key * 'a) sequence
+    val below : key -> 'a t -> (key * 'a) sequence
+    val check_invariants : 'a t -> bool
+  end
\ No newline at end of file diff --git a/0.17/type_CCTrie.MakeList.html b/0.17/type_CCTrie.MakeList.html new file mode 100644 index 00000000..11702fa0 --- /dev/null +++ b/0.17/type_CCTrie.MakeList.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.MakeList + + +functor (X : ORDERED->
+  sig
+    type char_ = X.t
+    type key = X.t list
+    type 'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val add : key -> '-> 'a t -> 'a t
+    val remove : key -> 'a t -> 'a t
+    val find : key -> 'a t -> 'a option
+    val find_exn : key -> 'a t -> 'a
+    val longest_prefix : key -> 'a t -> key
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+    val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+    val map : ('-> 'b) -> 'a t -> 'b t
+    val iter : (key -> '-> unit) -> 'a t -> unit
+    val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+    val iter_values : ('-> unit) -> 'a t -> unit
+    val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+    val size : 'a t -> int
+    val to_list : 'a t -> (key * 'a) list
+    val of_list : (key * 'a) list -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq_values : 'a t -> 'a sequence
+    val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+    val above : key -> 'a t -> (key * 'a) sequence
+    val below : key -> 'a t -> (key * 'a) sequence
+    val check_invariants : 'a t -> bool
+  end
\ No newline at end of file diff --git a/0.17/type_CCTrie.ORDERED.html b/0.17/type_CCTrie.ORDERED.html new file mode 100644 index 00000000..ffe15bbd --- /dev/null +++ b/0.17/type_CCTrie.ORDERED.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.ORDERED + + +sig type t val compare : CCTrie.ORDERED.t -> CCTrie.ORDERED.t -> int end \ No newline at end of file diff --git a/0.17/type_CCTrie.S.html b/0.17/type_CCTrie.S.html new file mode 100644 index 00000000..dedc0611 --- /dev/null +++ b/0.17/type_CCTrie.S.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.S + + +sig
+  type char_
+  type key
+  type 'a t
+  val empty : 'CCTrie.S.t
+  val is_empty : 'CCTrie.S.t -> bool
+  val add : CCTrie.S.key -> '-> 'CCTrie.S.t -> 'CCTrie.S.t
+  val remove : CCTrie.S.key -> 'CCTrie.S.t -> 'CCTrie.S.t
+  val find : CCTrie.S.key -> 'CCTrie.S.t -> 'a option
+  val find_exn : CCTrie.S.key -> 'CCTrie.S.t -> 'a
+  val longest_prefix : CCTrie.S.key -> 'CCTrie.S.t -> CCTrie.S.key
+  val update :
+    CCTrie.S.key ->
+    ('a option -> 'a option) -> 'CCTrie.S.t -> 'CCTrie.S.t
+  val fold : ('-> CCTrie.S.key -> '-> 'b) -> '-> 'CCTrie.S.t -> 'b
+  val mapi : (CCTrie.S.key -> '-> 'b) -> 'CCTrie.S.t -> 'CCTrie.S.t
+  val map : ('-> 'b) -> 'CCTrie.S.t -> 'CCTrie.S.t
+  val iter : (CCTrie.S.key -> '-> unit) -> 'CCTrie.S.t -> unit
+  val fold_values : ('-> '-> 'b) -> '-> 'CCTrie.S.t -> 'b
+  val iter_values : ('-> unit) -> 'CCTrie.S.t -> unit
+  val merge :
+    ('-> '-> 'a option) ->
+    'CCTrie.S.t -> 'CCTrie.S.t -> 'CCTrie.S.t
+  val size : 'CCTrie.S.t -> int
+  val to_list : 'CCTrie.S.t -> (CCTrie.S.key * 'a) list
+  val of_list : (CCTrie.S.key * 'a) list -> 'CCTrie.S.t
+  val to_seq : 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+  val of_seq : (CCTrie.S.key * 'a) CCTrie.sequence -> 'CCTrie.S.t
+  val to_seq_values : 'CCTrie.S.t -> 'CCTrie.sequence
+  val to_tree :
+    'CCTrie.S.t ->
+    [ `Char of CCTrie.S.char_ | `Switch | `Val of 'a ] CCTrie.ktree
+  val above :
+    CCTrie.S.key -> 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+  val below :
+    CCTrie.S.key -> 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+  val check_invariants : 'CCTrie.S.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCTrie.String.html b/0.17/type_CCTrie.String.html new file mode 100644 index 00000000..6fbbfb88 --- /dev/null +++ b/0.17/type_CCTrie.String.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.String + + +sig
+  type char_ = char
+  type key = string
+  type 'a t
+  val empty : 'a t
+  val is_empty : 'a t -> bool
+  val add : key -> '-> 'a t -> 'a t
+  val remove : key -> 'a t -> 'a t
+  val find : key -> 'a t -> 'a option
+  val find_exn : key -> 'a t -> 'a
+  val longest_prefix : key -> 'a t -> key
+  val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+  val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+  val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val iter : (key -> '-> unit) -> 'a t -> unit
+  val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+  val iter_values : ('-> unit) -> 'a t -> unit
+  val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+  val size : 'a t -> int
+  val to_list : 'a t -> (key * 'a) list
+  val of_list : (key * 'a) list -> 'a t
+  val to_seq : 'a t -> (key * 'a) sequence
+  val of_seq : (key * 'a) sequence -> 'a t
+  val to_seq_values : 'a t -> 'a sequence
+  val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+  val above : key -> 'a t -> (key * 'a) sequence
+  val below : key -> 'a t -> (key * 'a) sequence
+  val check_invariants : 'a t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCTrie.WORD.html b/0.17/type_CCTrie.WORD.html new file mode 100644 index 00000000..d9a02978 --- /dev/null +++ b/0.17/type_CCTrie.WORD.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie.WORD + + +sig
+  type t
+  type char_
+  val compare : CCTrie.WORD.char_ -> CCTrie.WORD.char_ -> int
+  val to_seq : CCTrie.WORD.t -> CCTrie.WORD.char_ CCTrie.sequence
+  val of_list : CCTrie.WORD.char_ list -> CCTrie.WORD.t
+end
\ No newline at end of file diff --git a/0.17/type_CCTrie.html b/0.17/type_CCTrie.html new file mode 100644 index 00000000..a88398a5 --- /dev/null +++ b/0.17/type_CCTrie.html @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCTrie + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a ktree = unit -> [ `Nil | `Node of 'a * 'CCTrie.ktree list ]
+  module type WORD =
+    sig
+      type t
+      type char_
+      val compare : CCTrie.WORD.char_ -> CCTrie.WORD.char_ -> int
+      val to_seq : CCTrie.WORD.t -> CCTrie.WORD.char_ CCTrie.sequence
+      val of_list : CCTrie.WORD.char_ list -> CCTrie.WORD.t
+    end
+  module type S =
+    sig
+      type char_
+      type key
+      type 'a t
+      val empty : 'CCTrie.S.t
+      val is_empty : 'CCTrie.S.t -> bool
+      val add : CCTrie.S.key -> '-> 'CCTrie.S.t -> 'CCTrie.S.t
+      val remove : CCTrie.S.key -> 'CCTrie.S.t -> 'CCTrie.S.t
+      val find : CCTrie.S.key -> 'CCTrie.S.t -> 'a option
+      val find_exn : CCTrie.S.key -> 'CCTrie.S.t -> 'a
+      val longest_prefix : CCTrie.S.key -> 'CCTrie.S.t -> CCTrie.S.key
+      val update :
+        CCTrie.S.key ->
+        ('a option -> 'a option) -> 'CCTrie.S.t -> 'CCTrie.S.t
+      val fold :
+        ('-> CCTrie.S.key -> '-> 'b) -> '-> 'CCTrie.S.t -> 'b
+      val mapi : (CCTrie.S.key -> '-> 'b) -> 'CCTrie.S.t -> 'CCTrie.S.t
+      val map : ('-> 'b) -> 'CCTrie.S.t -> 'CCTrie.S.t
+      val iter : (CCTrie.S.key -> '-> unit) -> 'CCTrie.S.t -> unit
+      val fold_values : ('-> '-> 'b) -> '-> 'CCTrie.S.t -> 'b
+      val iter_values : ('-> unit) -> 'CCTrie.S.t -> unit
+      val merge :
+        ('-> '-> 'a option) ->
+        'CCTrie.S.t -> 'CCTrie.S.t -> 'CCTrie.S.t
+      val size : 'CCTrie.S.t -> int
+      val to_list : 'CCTrie.S.t -> (CCTrie.S.key * 'a) list
+      val of_list : (CCTrie.S.key * 'a) list -> 'CCTrie.S.t
+      val to_seq : 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+      val of_seq : (CCTrie.S.key * 'a) CCTrie.sequence -> 'CCTrie.S.t
+      val to_seq_values : 'CCTrie.S.t -> 'CCTrie.sequence
+      val to_tree :
+        'CCTrie.S.t ->
+        [ `Char of CCTrie.S.char_ | `Switch | `Val of 'a ] CCTrie.ktree
+      val above :
+        CCTrie.S.key -> 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+      val below :
+        CCTrie.S.key -> 'CCTrie.S.t -> (CCTrie.S.key * 'a) CCTrie.sequence
+      val check_invariants : 'CCTrie.S.t -> bool
+    end
+  module Make :
+    functor (W : WORD->
+      sig
+        type char_ = W.char_
+        type key = W.t
+        type 'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val add : key -> '-> 'a t -> 'a t
+        val remove : key -> 'a t -> 'a t
+        val find : key -> 'a t -> 'a option
+        val find_exn : key -> 'a t -> 'a
+        val longest_prefix : key -> 'a t -> key
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+        val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+        val iter_values : ('-> unit) -> 'a t -> unit
+        val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+        val size : 'a t -> int
+        val to_list : 'a t -> (key * 'a) list
+        val of_list : (key * 'a) list -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq_values : 'a t -> 'a sequence
+        val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+        val above : key -> 'a t -> (key * 'a) sequence
+        val below : key -> 'a t -> (key * 'a) sequence
+        val check_invariants : 'a t -> bool
+      end
+  module type ORDERED =
+    sig type t val compare : CCTrie.ORDERED.t -> CCTrie.ORDERED.t -> int end
+  module MakeArray :
+    functor (X : ORDERED->
+      sig
+        type char_ = X.t
+        type key = X.t array
+        type 'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val add : key -> '-> 'a t -> 'a t
+        val remove : key -> 'a t -> 'a t
+        val find : key -> 'a t -> 'a option
+        val find_exn : key -> 'a t -> 'a
+        val longest_prefix : key -> 'a t -> key
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+        val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+        val iter_values : ('-> unit) -> 'a t -> unit
+        val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+        val size : 'a t -> int
+        val to_list : 'a t -> (key * 'a) list
+        val of_list : (key * 'a) list -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq_values : 'a t -> 'a sequence
+        val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+        val above : key -> 'a t -> (key * 'a) sequence
+        val below : key -> 'a t -> (key * 'a) sequence
+        val check_invariants : 'a t -> bool
+      end
+  module MakeList :
+    functor (X : ORDERED->
+      sig
+        type char_ = X.t
+        type key = X.t list
+        type 'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val add : key -> '-> 'a t -> 'a t
+        val remove : key -> 'a t -> 'a t
+        val find : key -> 'a t -> 'a option
+        val find_exn : key -> 'a t -> 'a
+        val longest_prefix : key -> 'a t -> key
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+        val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+        val map : ('-> 'b) -> 'a t -> 'b t
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+        val iter_values : ('-> unit) -> 'a t -> unit
+        val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+        val size : 'a t -> int
+        val to_list : 'a t -> (key * 'a) list
+        val of_list : (key * 'a) list -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq_values : 'a t -> 'a sequence
+        val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+        val above : key -> 'a t -> (key * 'a) sequence
+        val below : key -> 'a t -> (key * 'a) sequence
+        val check_invariants : 'a t -> bool
+      end
+  module String :
+    sig
+      type char_ = char
+      type key = string
+      type 'a t
+      val empty : 'a t
+      val is_empty : 'a t -> bool
+      val add : key -> '-> 'a t -> 'a t
+      val remove : key -> 'a t -> 'a t
+      val find : key -> 'a t -> 'a option
+      val find_exn : key -> 'a t -> 'a
+      val longest_prefix : key -> 'a t -> key
+      val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+      val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b
+      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold_values : ('-> '-> 'b) -> '-> 'a t -> 'b
+      val iter_values : ('-> unit) -> 'a t -> unit
+      val merge : ('-> '-> 'a option) -> 'a t -> 'a t -> 'a t
+      val size : 'a t -> int
+      val to_list : 'a t -> (key * 'a) list
+      val of_list : (key * 'a) list -> 'a t
+      val to_seq : 'a t -> (key * 'a) sequence
+      val of_seq : (key * 'a) sequence -> 'a t
+      val to_seq_values : 'a t -> 'a sequence
+      val to_tree : 'a t -> [ `Char of char_ | `Switch | `Val of 'a ] ktree
+      val above : key -> 'a t -> (key * 'a) sequence
+      val below : key -> 'a t -> (key * 'a) sequence
+      val check_invariants : 'a t -> bool
+    end
+end
\ No newline at end of file diff --git a/0.17/type_CCUnix.Infix.html b/0.17/type_CCUnix.Infix.html new file mode 100644 index 00000000..aa47111e --- /dev/null +++ b/0.17/type_CCUnix.Infix.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCUnix.Infix + + +sig
+  val ( ?| ) :
+    ('a, Buffer.t, unit, CCUnix.call_result) Pervasives.format4 -> 'a
+  val ( ?|& ) :
+    ('a, Buffer.t, unit, CCUnix.async_call_result) Pervasives.format4 -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCUnix.html b/0.17/type_CCUnix.html new file mode 100644 index 00000000..20b0bb0f --- /dev/null +++ b/0.17/type_CCUnix.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCUnix + + +sig
+  type 'a or_error = [ `Error of string | `Ok of 'a ]
+  type 'a gen = unit -> 'a option
+  val escape_str : Buffer.t -> string -> unit
+  type call_result =
+      < errcode : int; status : Unix.process_status; stderr : string;
+        stdout : string >
+  val call :
+    ?bufsize:int ->
+    ?stdin:[ `Gen of string CCUnix.gen | `Str of string ] ->
+    ?env:string array ->
+    ('a, Buffer.t, unit, CCUnix.call_result) Pervasives.format4 -> 'a
+  type line = string
+  type async_call_result =
+      < close_all : unit; close_err : unit; close_in : unit;
+        close_out : unit; stderr : CCUnix.line CCUnix.gen;
+        stdin : CCUnix.line -> unit; stdout : CCUnix.line CCUnix.gen;
+        wait : Unix.process_status; wait_errcode : int >
+  val async_call :
+    ?env:string array ->
+    ('a, Buffer.t, unit, CCUnix.async_call_result) Pervasives.format4 -> 'a
+  val stdout : < stdout : 'a; .. > -> 'a
+  val stderr : < stderr : 'a; .. > -> 'a
+  val status : < status : 'a; .. > -> 'a
+  val errcode : < errcode : 'a; .. > -> 'a
+  val with_in :
+    ?mode:int ->
+    ?flags:Unix.open_flag list ->
+    string -> f:(Pervasives.in_channel -> 'a) -> 'a
+  val with_out :
+    ?mode:int ->
+    ?flags:Unix.open_flag list ->
+    string -> f:(Pervasives.out_channel -> 'a) -> 'a
+  val with_process_in : string -> f:(Pervasives.in_channel -> 'a) -> 'a
+  val with_process_out : string -> f:(Pervasives.out_channel -> 'a) -> 'a
+  type process_full =
+      < close : Unix.process_status; stderr : Pervasives.in_channel;
+        stdin : Pervasives.out_channel; stdout : Pervasives.in_channel >
+  val with_process_full :
+    ?env:string array -> string -> f:(CCUnix.process_full -> 'a) -> 'a
+  val with_connection :
+    Unix.sockaddr ->
+    f:(Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> 'a
+  exception ExitServer
+  val establish_server :
+    Unix.sockaddr ->
+    f:(Pervasives.in_channel -> Pervasives.out_channel -> 'a) -> unit
+  module Infix :
+    sig
+      val ( ?| ) :
+        ('a, Buffer.t, unit, CCUnix.call_result) Pervasives.format4 -> 'a
+      val ( ?|& ) :
+        ('a, Buffer.t, unit, CCUnix.async_call_result) Pervasives.format4 ->
+        'a
+    end
+  val ( ?| ) : ('a, Buffer.t, unit, call_result) format4 -> 'a
+  val ( ?|& ) : ('a, Buffer.t, unit, async_call_result) format4 -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_CCVector.html b/0.17/type_CCVector.html new file mode 100644 index 00000000..953b3ad1 --- /dev/null +++ b/0.17/type_CCVector.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCVector + + +sig
+  type ro = [ `RO ]
+  type rw = [ `RW ]
+  type ('a, 'mut) t
+  type 'a vector = ('a, CCVector.rw) CCVector.t
+  type 'a ro_vector = ('a, CCVector.ro) CCVector.t
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'CCVector.klist | `Nil ]
+  type 'a gen = unit -> 'a option
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  val freeze : ('a, 'b) CCVector.t -> ('a, CCVector.ro) CCVector.t
+  val freeze_copy : ('a, 'b) CCVector.t -> ('a, CCVector.ro) CCVector.t
+  val create : unit -> ('a, CCVector.rw) CCVector.t
+  val create_with : ?capacity:int -> '-> ('a, CCVector.rw) CCVector.t
+  val return : '-> ('a, 'mut) CCVector.t
+  val make : int -> '-> ('a, 'mut) CCVector.t
+  val init : int -> (int -> 'a) -> ('a, 'mut) CCVector.t
+  val clear : ('a, CCVector.rw) CCVector.t -> unit
+  val ensure_with : init:'-> ('a, CCVector.rw) CCVector.t -> int -> unit
+  val ensure : ('a, CCVector.rw) CCVector.t -> int -> unit
+  val is_empty : ('a, 'b) CCVector.t -> bool
+  val push : ('a, CCVector.rw) CCVector.t -> '-> unit
+  val append : ('a, CCVector.rw) CCVector.t -> ('a, 'b) CCVector.t -> unit
+  val append_array : ('a, CCVector.rw) CCVector.t -> 'a array -> unit
+  val append_seq :
+    ('a, CCVector.rw) CCVector.t -> 'CCVector.sequence -> unit
+  val append_list : ('a, CCVector.rw) CCVector.t -> 'a list -> unit
+  val equal : 'CCVector.equal -> ('a, 'b) CCVector.t CCVector.equal
+  val compare : 'CCVector.ord -> ('a, 'b) CCVector.t CCVector.ord
+  exception Empty
+  val pop : ('a, CCVector.rw) CCVector.t -> 'a option
+  val pop_exn : ('a, CCVector.rw) CCVector.t -> 'a
+  val top : ('a, 'b) CCVector.t -> 'a option
+  val top_exn : ('a, 'b) CCVector.t -> 'a
+  val copy : ('a, 'b) CCVector.t -> ('a, 'mut) CCVector.t
+  val shrink : ('a, CCVector.rw) CCVector.t -> int -> unit
+  val member : ?eq:('-> '-> bool) -> '-> ('a, 'b) CCVector.t -> bool
+  val sort :
+    ('-> '-> int) -> ('a, 'b) CCVector.t -> ('a, 'mut) CCVector.t
+  val sort' : ('-> '-> int) -> ('a, CCVector.rw) CCVector.t -> unit
+  val uniq_sort : ('-> '-> int) -> ('a, CCVector.rw) CCVector.t -> unit
+  val iter : ('-> unit) -> ('a, 'b) CCVector.t -> unit
+  val iteri : (int -> '-> unit) -> ('a, 'b) CCVector.t -> unit
+  val map : ('-> 'b) -> ('a, 'c) CCVector.t -> ('b, 'mut) CCVector.t
+  val filter : ('-> bool) -> ('a, 'b) CCVector.t -> ('a, 'mut) CCVector.t
+  val filter' : ('-> bool) -> ('a, CCVector.rw) CCVector.t -> unit
+  val fold : ('-> '-> 'b) -> '-> ('a, 'c) CCVector.t -> 'b
+  val exists : ('-> bool) -> ('a, 'b) CCVector.t -> bool
+  val for_all : ('-> bool) -> ('a, 'b) CCVector.t -> bool
+  val find : ('-> bool) -> ('a, 'b) CCVector.t -> 'a option
+  val find_exn : ('-> bool) -> ('a, 'b) CCVector.t -> 'a
+  val find_map : ('-> 'b option) -> ('a, 'c) CCVector.t -> 'b option
+  val filter_map :
+    ('-> 'b option) -> ('a, 'c) CCVector.t -> ('b, 'mut) CCVector.t
+  val flat_map :
+    ('-> ('b, 'c) CCVector.t) ->
+    ('a, 'd) CCVector.t -> ('b, 'mut) CCVector.t
+  val flat_map_seq :
+    ('-> 'CCVector.sequence) ->
+    ('a, 'c) CCVector.t -> ('b, 'mut) CCVector.t
+  val flat_map_list :
+    ('-> 'b list) -> ('a, 'c) CCVector.t -> ('b, 'mut) CCVector.t
+  val flat_map' :
+    ('-> 'CCVector.sequence) ->
+    ('a, 'c) CCVector.t -> ('b, 'mut) CCVector.t
+  val ( >>= ) :
+    ('a, 'c) CCVector.t ->
+    ('-> ('b, 'd) CCVector.t) -> ('b, 'mut) CCVector.t
+  val ( >|= ) : ('a, 'c) CCVector.t -> ('-> 'b) -> ('b, 'mut) CCVector.t
+  val get : ('a, 'b) CCVector.t -> int -> 'a
+  val set : ('a, CCVector.rw) CCVector.t -> int -> '-> unit
+  val remove : ('a, CCVector.rw) CCVector.t -> int -> unit
+  val rev : ('a, 'b) CCVector.t -> ('a, 'mut) CCVector.t
+  val rev_in_place : ('a, CCVector.rw) CCVector.t -> unit
+  val rev' : ('a, CCVector.rw) CCVector.t -> unit
+  val rev_iter : ('-> unit) -> ('a, 'b) CCVector.t -> unit
+  val size : ('a, 'b) CCVector.t -> int
+  val length : ('a, 'b) CCVector.t -> int
+  val capacity : ('a, 'b) CCVector.t -> int
+  val unsafe_get_array : ('a, CCVector.rw) CCVector.t -> 'a array
+  val ( -- ) : int -> int -> (int, 'mut) CCVector.t
+  val ( --^ ) : int -> int -> (int, 'mut) CCVector.t
+  val of_array : 'a array -> ('a, 'mut) CCVector.t
+  val of_list : 'a list -> ('a, 'mut) CCVector.t
+  val to_array : ('a, 'b) CCVector.t -> 'a array
+  val to_list : ('a, 'b) CCVector.t -> 'a list
+  val of_seq :
+    ?init:('a, CCVector.rw) CCVector.t ->
+    'CCVector.sequence -> ('a, CCVector.rw) CCVector.t
+  val to_seq : ('a, 'b) CCVector.t -> 'CCVector.sequence
+  val to_seq_rev : ('a, 'b) CCVector.t -> 'CCVector.sequence
+  val slice : ('a, CCVector.rw) CCVector.t -> 'a array * int * int
+  val slice_seq : ('a, 'b) CCVector.t -> int -> int -> 'CCVector.sequence
+  val of_klist :
+    ?init:('a, CCVector.rw) CCVector.t ->
+    'CCVector.klist -> ('a, CCVector.rw) CCVector.t
+  val to_klist : ('a, 'b) CCVector.t -> 'CCVector.klist
+  val of_gen :
+    ?init:('a, CCVector.rw) CCVector.t ->
+    'CCVector.gen -> ('a, CCVector.rw) CCVector.t
+  val to_gen : ('a, 'b) CCVector.t -> 'CCVector.gen
+  val pp :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string ->
+    'CCVector.printer -> ('a, 'b) CCVector.t CCVector.printer
+  val print :
+    ?start:string ->
+    ?stop:string ->
+    ?sep:string ->
+    'CCVector.formatter -> ('a, 'b) CCVector.t CCVector.formatter
+end
\ No newline at end of file diff --git a/0.17/type_CCWBTree.KEY.html b/0.17/type_CCWBTree.KEY.html new file mode 100644 index 00000000..1b07d95f --- /dev/null +++ b/0.17/type_CCWBTree.KEY.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.KEY + + +sig type t val compare : t -> t -> int val weight : t -> int end \ No newline at end of file diff --git a/0.17/type_CCWBTree.Make.html b/0.17/type_CCWBTree.Make.html new file mode 100644 index 00000000..3228ed6a --- /dev/null +++ b/0.17/type_CCWBTree.Make.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.Make + + +functor (X : ORD->
+  sig
+    type key = X.t
+    type +'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val singleton : key -> '-> 'a t
+    val mem : key -> 'a t -> bool
+    val get : key -> 'a t -> 'a option
+    val get_exn : key -> 'a t -> 'a
+    val nth : int -> 'a t -> (key * 'a) option
+    val nth_exn : int -> 'a t -> key * 'a
+    val add : key -> '-> 'a t -> 'a t
+    val remove : key -> 'a t -> 'a t
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val cardinal : 'a t -> int
+    val weight : 'a t -> int
+    val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+    val mapi : f:(key -> '-> 'b) -> 'a t -> 'b t
+    val map : f:('-> 'b) -> 'a t -> 'b t
+    val iter : f:(key -> '-> unit) -> 'a t -> unit
+    val split : key -> 'a t -> 'a t * 'a option * 'a t
+    val merge :
+      f:(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+    val extract_min : 'a t -> key * 'a * 'a t
+    val extract_max : 'a t -> key * 'a * 'a t
+    val choose : 'a t -> (key * 'a) option
+    val choose_exn : 'a t -> key * 'a
+    val random_choose : Random.State.t -> 'a t -> key * 'a
+    val add_list : 'a t -> (key * 'a) list -> 'a t
+    val of_list : (key * 'a) list -> 'a t
+    val to_list : 'a t -> (key * 'a) list
+    val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val add_gen : 'a t -> (key * 'a) gen -> 'a t
+    val of_gen : (key * 'a) gen -> 'a t
+    val to_gen : 'a t -> (key * 'a) gen
+    val print : key printer -> 'a printer -> 'a t printer
+    val node_ : key -> '-> 'a t -> 'a t -> 'a t
+    val balanced : 'a t -> bool
+  end
\ No newline at end of file diff --git a/0.17/type_CCWBTree.MakeFull.html b/0.17/type_CCWBTree.MakeFull.html new file mode 100644 index 00000000..747df1b5 --- /dev/null +++ b/0.17/type_CCWBTree.MakeFull.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.MakeFull + + +functor (X : KEY->
+  sig
+    type key = X.t
+    type +'a t
+    val empty : 'a t
+    val is_empty : 'a t -> bool
+    val singleton : key -> '-> 'a t
+    val mem : key -> 'a t -> bool
+    val get : key -> 'a t -> 'a option
+    val get_exn : key -> 'a t -> 'a
+    val nth : int -> 'a t -> (key * 'a) option
+    val nth_exn : int -> 'a t -> key * 'a
+    val add : key -> '-> 'a t -> 'a t
+    val remove : key -> 'a t -> 'a t
+    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+    val cardinal : 'a t -> int
+    val weight : 'a t -> int
+    val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+    val mapi : f:(key -> '-> 'b) -> 'a t -> 'b t
+    val map : f:('-> 'b) -> 'a t -> 'b t
+    val iter : f:(key -> '-> unit) -> 'a t -> unit
+    val split : key -> 'a t -> 'a t * 'a option * 'a t
+    val merge :
+      f:(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+    val extract_min : 'a t -> key * 'a * 'a t
+    val extract_max : 'a t -> key * 'a * 'a t
+    val choose : 'a t -> (key * 'a) option
+    val choose_exn : 'a t -> key * 'a
+    val random_choose : Random.State.t -> 'a t -> key * 'a
+    val add_list : 'a t -> (key * 'a) list -> 'a t
+    val of_list : (key * 'a) list -> 'a t
+    val to_list : 'a t -> (key * 'a) list
+    val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+    val of_seq : (key * 'a) sequence -> 'a t
+    val to_seq : 'a t -> (key * 'a) sequence
+    val add_gen : 'a t -> (key * 'a) gen -> 'a t
+    val of_gen : (key * 'a) gen -> 'a t
+    val to_gen : 'a t -> (key * 'a) gen
+    val print : key printer -> 'a printer -> 'a t printer
+    val node_ : key -> '-> 'a t -> 'a t -> 'a t
+    val balanced : 'a t -> bool
+  end
\ No newline at end of file diff --git a/0.17/type_CCWBTree.ORD.html b/0.17/type_CCWBTree.ORD.html new file mode 100644 index 00000000..717c07da --- /dev/null +++ b/0.17/type_CCWBTree.ORD.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.ORD + + +sig type t val compare : CCWBTree.ORD.t -> CCWBTree.ORD.t -> int end \ No newline at end of file diff --git a/0.17/type_CCWBTree.S.html b/0.17/type_CCWBTree.S.html new file mode 100644 index 00000000..adaf029e --- /dev/null +++ b/0.17/type_CCWBTree.S.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree.S + + +sig
+  type key
+  type +'a t
+  val empty : 'CCWBTree.S.t
+  val is_empty : 'CCWBTree.S.t -> bool
+  val singleton : CCWBTree.S.key -> '-> 'CCWBTree.S.t
+  val mem : CCWBTree.S.key -> 'CCWBTree.S.t -> bool
+  val get : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a option
+  val get_exn : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a
+  val nth : int -> 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option
+  val nth_exn : int -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+  val add : CCWBTree.S.key -> '-> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val remove : CCWBTree.S.key -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val update :
+    CCWBTree.S.key ->
+    ('a option -> 'a option) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val cardinal : 'CCWBTree.S.t -> int
+  val weight : 'CCWBTree.S.t -> int
+  val fold :
+    f:('-> CCWBTree.S.key -> '-> 'b) -> x:'-> 'CCWBTree.S.t -> 'b
+  val mapi :
+    f:(CCWBTree.S.key -> '-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val map : f:('-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val iter : f:(CCWBTree.S.key -> '-> unit) -> 'CCWBTree.S.t -> unit
+  val split :
+    CCWBTree.S.key ->
+    'CCWBTree.S.t -> 'CCWBTree.S.t * 'a option * 'CCWBTree.S.t
+  val merge :
+    f:(CCWBTree.S.key -> 'a option -> 'b option -> 'c option) ->
+    'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val extract_min : 'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t
+  val extract_max : 'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t
+  val choose : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option
+  val choose_exn : 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+  val random_choose :
+    Random.State.t -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+  val add_list :
+    'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t
+  val of_list : (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t
+  val to_list : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list
+  val add_seq :
+    'CCWBTree.S.t ->
+    (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t
+  val of_seq : (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t
+  val to_seq : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.sequence
+  val add_gen :
+    'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t
+  val of_gen : (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t
+  val to_gen : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.gen
+  val print :
+    CCWBTree.S.key CCWBTree.printer ->
+    'CCWBTree.printer -> 'CCWBTree.S.t CCWBTree.printer
+  val node_ :
+    CCWBTree.S.key ->
+    '-> 'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+  val balanced : 'CCWBTree.S.t -> bool
+end
\ No newline at end of file diff --git a/0.17/type_CCWBTree.html b/0.17/type_CCWBTree.html new file mode 100644 index 00000000..fd23c938 --- /dev/null +++ b/0.17/type_CCWBTree.html @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : CCWBTree + + +sig
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a printer = Format.formatter -> '-> unit
+  module type ORD =
+    sig type t val compare : CCWBTree.ORD.t -> CCWBTree.ORD.t -> int end
+  module type KEY =
+    sig type t val compare : t -> t -> int val weight : t -> int end
+  module type S =
+    sig
+      type key
+      type +'a t
+      val empty : 'CCWBTree.S.t
+      val is_empty : 'CCWBTree.S.t -> bool
+      val singleton : CCWBTree.S.key -> '-> 'CCWBTree.S.t
+      val mem : CCWBTree.S.key -> 'CCWBTree.S.t -> bool
+      val get : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a option
+      val get_exn : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a
+      val nth : int -> 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option
+      val nth_exn : int -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+      val add : CCWBTree.S.key -> '-> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val remove : CCWBTree.S.key -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val update :
+        CCWBTree.S.key ->
+        ('a option -> 'a option) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val cardinal : 'CCWBTree.S.t -> int
+      val weight : 'CCWBTree.S.t -> int
+      val fold :
+        f:('-> CCWBTree.S.key -> '-> 'b) -> x:'-> 'CCWBTree.S.t -> 'b
+      val mapi :
+        f:(CCWBTree.S.key -> '-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val map : f:('-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val iter : f:(CCWBTree.S.key -> '-> unit) -> 'CCWBTree.S.t -> unit
+      val split :
+        CCWBTree.S.key ->
+        'CCWBTree.S.t -> 'CCWBTree.S.t * 'a option * 'CCWBTree.S.t
+      val merge :
+        f:(CCWBTree.S.key -> 'a option -> 'b option -> 'c option) ->
+        'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val extract_min :
+        'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t
+      val extract_max :
+        'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t
+      val choose : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option
+      val choose_exn : 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+      val random_choose :
+        Random.State.t -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a
+      val add_list :
+        'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t
+      val of_list : (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t
+      val to_list : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list
+      val add_seq :
+        'CCWBTree.S.t ->
+        (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t
+      val of_seq : (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t
+      val to_seq : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.sequence
+      val add_gen :
+        'CCWBTree.S.t ->
+        (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t
+      val of_gen : (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t
+      val to_gen : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.gen
+      val print :
+        CCWBTree.S.key CCWBTree.printer ->
+        'CCWBTree.printer -> 'CCWBTree.S.t CCWBTree.printer
+      val node_ :
+        CCWBTree.S.key ->
+        '-> 'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t
+      val balanced : 'CCWBTree.S.t -> bool
+    end
+  module Make :
+    functor (X : ORD->
+      sig
+        type key = X.t
+        type +'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val singleton : key -> '-> 'a t
+        val mem : key -> 'a t -> bool
+        val get : key -> 'a t -> 'a option
+        val get_exn : key -> 'a t -> 'a
+        val nth : int -> 'a t -> (key * 'a) option
+        val nth_exn : int -> 'a t -> key * 'a
+        val add : key -> '-> 'a t -> 'a t
+        val remove : key -> 'a t -> 'a t
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val cardinal : 'a t -> int
+        val weight : 'a t -> int
+        val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+        val mapi : f:(key -> '-> 'b) -> 'a t -> 'b t
+        val map : f:('-> 'b) -> 'a t -> 'b t
+        val iter : f:(key -> '-> unit) -> 'a t -> unit
+        val split : key -> 'a t -> 'a t * 'a option * 'a t
+        val merge :
+          f:(key -> 'a option -> 'b option -> 'c option) ->
+          'a t -> 'b t -> 'c t
+        val extract_min : 'a t -> key * 'a * 'a t
+        val extract_max : 'a t -> key * 'a * 'a t
+        val choose : 'a t -> (key * 'a) option
+        val choose_exn : 'a t -> key * 'a
+        val random_choose : Random.State.t -> 'a t -> key * 'a
+        val add_list : 'a t -> (key * 'a) list -> 'a t
+        val of_list : (key * 'a) list -> 'a t
+        val to_list : 'a t -> (key * 'a) list
+        val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val add_gen : 'a t -> (key * 'a) gen -> 'a t
+        val of_gen : (key * 'a) gen -> 'a t
+        val to_gen : 'a t -> (key * 'a) gen
+        val print : key printer -> 'a printer -> 'a t printer
+        val node_ : key -> '-> 'a t -> 'a t -> 'a t
+        val balanced : 'a t -> bool
+      end
+  module MakeFull :
+    functor (X : KEY->
+      sig
+        type key = X.t
+        type +'a t
+        val empty : 'a t
+        val is_empty : 'a t -> bool
+        val singleton : key -> '-> 'a t
+        val mem : key -> 'a t -> bool
+        val get : key -> 'a t -> 'a option
+        val get_exn : key -> 'a t -> 'a
+        val nth : int -> 'a t -> (key * 'a) option
+        val nth_exn : int -> 'a t -> key * 'a
+        val add : key -> '-> 'a t -> 'a t
+        val remove : key -> 'a t -> 'a t
+        val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+        val cardinal : 'a t -> int
+        val weight : 'a t -> int
+        val fold : f:('-> key -> '-> 'b) -> x:'-> 'a t -> 'b
+        val mapi : f:(key -> '-> 'b) -> 'a t -> 'b t
+        val map : f:('-> 'b) -> 'a t -> 'b t
+        val iter : f:(key -> '-> unit) -> 'a t -> unit
+        val split : key -> 'a t -> 'a t * 'a option * 'a t
+        val merge :
+          f:(key -> 'a option -> 'b option -> 'c option) ->
+          'a t -> 'b t -> 'c t
+        val extract_min : 'a t -> key * 'a * 'a t
+        val extract_max : 'a t -> key * 'a * 'a t
+        val choose : 'a t -> (key * 'a) option
+        val choose_exn : 'a t -> key * 'a
+        val random_choose : Random.State.t -> 'a t -> key * 'a
+        val add_list : 'a t -> (key * 'a) list -> 'a t
+        val of_list : (key * 'a) list -> 'a t
+        val to_list : 'a t -> (key * 'a) list
+        val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+        val of_seq : (key * 'a) sequence -> 'a t
+        val to_seq : 'a t -> (key * 'a) sequence
+        val add_gen : 'a t -> (key * 'a) gen -> 'a t
+        val of_gen : (key * 'a) gen -> 'a t
+        val to_gen : 'a t -> (key * 'a) gen
+        val print : key printer -> 'a printer -> 'a t printer
+        val node_ : key -> '-> 'a t -> 'a t -> 'a t
+        val balanced : 'a t -> bool
+      end
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Array.html b/0.17/type_Containers.Array.html new file mode 100644 index 00000000..e46e4a81 --- /dev/null +++ b/0.17/type_Containers.Array.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Array + + +sig
+  external make : int -> '-> 'a array = "caml_make_vect"
+  external create : int -> '-> 'a array = "caml_make_vect"
+  val init : int -> (int -> 'a) -> 'a array
+  val make_matrix : int -> int -> '-> 'a array array
+  val create_matrix : int -> int -> '-> 'a array array
+  val append : 'a array -> 'a array -> 'a array
+  val concat : 'a array list -> 'a array
+  val sub : 'a array -> int -> int -> 'a array
+  val copy : 'a array -> 'a array
+  val fill : 'a array -> int -> int -> '-> unit
+  val to_list : 'a array -> 'a list
+  val of_list : 'a list -> 'a array
+  val mapi : (int -> '-> 'b) -> 'a array -> 'b array
+  val fold_left : ('-> '-> 'a) -> '-> 'b array -> 'a
+  val fold_right : ('-> '-> 'a) -> 'b array -> '-> 'a
+  external make_float : int -> float array = "caml_make_float_vect"
+  val sort : ('-> '-> int) -> 'a array -> unit
+  val stable_sort : ('-> '-> int) -> 'a array -> unit
+  val fast_sort : ('-> '-> int) -> 'a array -> unit
+  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
+  external unsafe_set : 'a array -> int -> '-> unit = "%array_unsafe_set"
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ]
+  type 'a gen = unit -> 'a option
+  type 'a equal = '-> '-> bool
+  type 'a ord = '-> '-> int
+  type 'a random_gen = Random.State.t -> 'a
+  module type S =
+    sig
+      type 'a t
+      val empty : 'a t
+      val equal : 'a equal -> 'a t equal
+      val compare : 'a ord -> 'a t ord
+      val get : 'a t -> int -> 'a
+      val set : 'a t -> int -> '-> unit
+      val length : 'a t -> int
+      val fold : ('-> '-> 'a) -> '-> 'b t -> 'a
+      val foldi : ('-> int -> '-> 'a) -> '-> 'b t -> 'a
+      val fold_while :
+        ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+      val iter : ('-> unit) -> 'a t -> unit
+      val iteri : (int -> '-> unit) -> 'a t -> unit
+      val blit : 'a t -> int -> 'a t -> int -> int -> unit
+      val reverse_in_place : 'a t -> unit
+      val find : ('-> 'b option) -> 'a t -> 'b option
+      val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+      val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+      val lookup : ?cmp:'a ord -> '-> 'a t -> int option
+      val lookup_exn : ?cmp:'a ord -> '-> 'a t -> int
+      val bsearch :
+        ?cmp:('-> '-> int) ->
+        '->
+        'a t ->
+        [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+      val for_all : ('-> bool) -> 'a t -> bool
+      val for_all2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val exists : ('-> bool) -> 'a t -> bool
+      val exists2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val shuffle : 'a t -> unit
+      val shuffle_with : Random.State.t -> 'a t -> unit
+      val random_choose : 'a t -> 'a random_gen
+      val to_seq : 'a t -> 'a sequence
+      val to_gen : 'a t -> 'a gen
+      val to_klist : 'a t -> 'a klist
+      val pp :
+        ?sep:string -> (Buffer.t -> '-> unit) -> Buffer.t -> 'a t -> unit
+      val pp_i :
+        ?sep:string ->
+        (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'a t -> unit
+      val print :
+        ?sep:string ->
+        (Format.formatter -> '-> unit) -> Format.formatter -> 'a t -> unit
+    end
+  type 'a t = 'a array
+  val empty : 'a t
+  val equal : 'a equal -> 'a t equal
+  val compare : 'a ord -> 'a t ord
+  val get : 'a t -> int -> 'a
+  val set : 'a t -> int -> '-> unit
+  val length : 'a t -> int
+  val fold : ('-> '-> 'a) -> '-> 'b t -> 'a
+  val foldi : ('-> int -> '-> 'a) -> '-> 'b t -> 'a
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+  val iter : ('-> unit) -> 'a t -> unit
+  val iteri : (int -> '-> unit) -> 'a t -> unit
+  val blit : 'a t -> int -> 'a t -> int -> int -> unit
+  val reverse_in_place : 'a t -> unit
+  val find : ('-> 'b option) -> 'a t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+  val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+  val lookup : ?cmp:'a ord -> '-> 'a t -> int option
+  val lookup_exn : ?cmp:'a ord -> '-> 'a t -> int
+  val bsearch :
+    ?cmp:('-> '-> int) ->
+    '->
+    'a t ->
+    [ `All_bigger | `All_lower | `At of int | `Empty | `Just_after of int ]
+  val for_all : ('-> bool) -> 'a t -> bool
+  val for_all2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val exists : ('-> bool) -> 'a t -> bool
+  val exists2 : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val shuffle : 'a t -> unit
+  val shuffle_with : Random.State.t -> 'a t -> unit
+  val random_choose : 'a t -> 'a random_gen
+  val to_seq : 'a t -> 'a sequence
+  val to_gen : 'a t -> 'a gen
+  val to_klist : 'a t -> 'a klist
+  val pp :
+    ?sep:string -> (Buffer.t -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val pp_i :
+    ?sep:string ->
+    (Buffer.t -> int -> '-> unit) -> Buffer.t -> 'a t -> unit
+  val print :
+    ?sep:string ->
+    (Format.formatter -> '-> unit) -> Format.formatter -> 'a t -> unit
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val filter : ('-> bool) -> 'a t -> 'a t
+  val filter_map : ('-> 'b option) -> 'a t -> 'b t
+  val flat_map : ('-> 'b t) -> 'a t -> 'b array
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val ( >>| ) : 'a t -> ('-> 'b) -> 'b t
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val except_idx : 'a t -> int -> 'a list
+  val ( -- ) : int -> int -> int t
+  val ( --^ ) : int -> int -> int t
+  val random : 'a random_gen -> 'a t random_gen
+  val random_non_empty : 'a random_gen -> 'a t random_gen
+  val random_len : int -> 'a random_gen -> 'a t random_gen
+  module Sub = CCArray.Sub
+  module type MONO_ARRAY =
+    sig
+      type elt
+      type t
+      val length : t -> int
+      val get : t -> int -> elt
+      val set : t -> int -> elt -> unit
+    end
+  val sort_generic :
+    (module MONO_ARRAY with type elt = 'elt and type t = 'arr) ->
+    ?cmp:('elt -> 'elt -> int) -> 'arr -> unit
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Bool.html b/0.17/type_Containers.Bool.html new file mode 100644 index 00000000..fbd4e903 --- /dev/null +++ b/0.17/type_Containers.Bool.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Bool + + +(module CCBool) \ No newline at end of file diff --git a/0.17/type_Containers.Char.html b/0.17/type_Containers.Char.html new file mode 100644 index 00000000..786a710c --- /dev/null +++ b/0.17/type_Containers.Char.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Char + + +sig
+  external code : char -> int = "%identity"
+  val chr : int -> char
+  val escaped : char -> string
+  val lowercase : char -> char
+  val uppercase : char -> char
+  type t = char
+  external unsafe_chr : int -> char = "%identity"
+  val equal : t -> t -> bool
+  val compare : t -> t -> int
+  val pp : Buffer.t -> t -> unit
+  val print : Format.formatter -> t -> unit
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Error.html b/0.17/type_Containers.Error.html new file mode 100644 index 00000000..14eddd88 --- /dev/null +++ b/0.17/type_Containers.Error.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Error + + +(module CCError) \ No newline at end of file diff --git a/0.17/type_Containers.Float.html b/0.17/type_Containers.Float.html new file mode 100644 index 00000000..a25476e8 --- /dev/null +++ b/0.17/type_Containers.Float.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Float + + +(module CCFloat) \ No newline at end of file diff --git a/0.17/type_Containers.Format.html b/0.17/type_Containers.Format.html new file mode 100644 index 00000000..4290e4f0 --- /dev/null +++ b/0.17/type_Containers.Format.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Format + + +sig
+  val open_box : int -> unit
+  val close_box : unit -> unit
+  val print_string : string -> unit
+  val print_as : int -> string -> unit
+  val print_int : int -> unit
+  val print_float : float -> unit
+  val print_char : char -> unit
+  val print_bool : bool -> unit
+  val print_space : unit -> unit
+  val print_cut : unit -> unit
+  val print_break : int -> int -> unit
+  val print_flush : unit -> unit
+  val print_newline : unit -> unit
+  val force_newline : unit -> unit
+  val print_if_newline : unit -> unit
+  val set_margin : int -> unit
+  val get_margin : unit -> int
+  val set_max_indent : int -> unit
+  val get_max_indent : unit -> int
+  val set_max_boxes : int -> unit
+  val get_max_boxes : unit -> int
+  val over_max_boxes : unit -> bool
+  val open_hbox : unit -> unit
+  val open_vbox : int -> unit
+  val open_hvbox : int -> unit
+  val open_hovbox : int -> unit
+  val open_tbox : unit -> unit
+  val close_tbox : unit -> unit
+  val print_tbreak : int -> int -> unit
+  val set_tab : unit -> unit
+  val print_tab : unit -> unit
+  val set_ellipsis_text : string -> unit
+  val get_ellipsis_text : unit -> string
+  type tag = string
+  val open_tag : tag -> unit
+  val close_tag : unit -> unit
+  val set_tags : bool -> unit
+  val set_print_tags : bool -> unit
+  val set_mark_tags : bool -> unit
+  val get_print_tags : unit -> bool
+  val get_mark_tags : unit -> bool
+  val set_formatter_out_channel : out_channel -> unit
+  val set_formatter_output_functions :
+    (string -> int -> int -> unit) -> (unit -> unit) -> unit
+  val get_formatter_output_functions :
+    unit -> (string -> int -> int -> unit) * (unit -> unit)
+  type formatter_out_functions =
+    Format.formatter_out_functions = {
+    out_string : string -> int -> int -> unit;
+    out_flush : unit -> unit;
+    out_newline : unit -> unit;
+    out_spaces : int -> unit;
+  }
+  val set_formatter_out_functions : formatter_out_functions -> unit
+  val get_formatter_out_functions : unit -> formatter_out_functions
+  type formatter_tag_functions =
+    Format.formatter_tag_functions = {
+    mark_open_tag : tag -> string;
+    mark_close_tag : tag -> string;
+    print_open_tag : tag -> unit;
+    print_close_tag : tag -> unit;
+  }
+  val set_formatter_tag_functions : formatter_tag_functions -> unit
+  val get_formatter_tag_functions : unit -> formatter_tag_functions
+  type formatter = Format.formatter
+  val formatter_of_out_channel : out_channel -> formatter
+  val std_formatter : formatter
+  val err_formatter : formatter
+  val formatter_of_buffer : Buffer.t -> formatter
+  val stdbuf : Buffer.t
+  val str_formatter : formatter
+  val flush_str_formatter : unit -> string
+  val make_formatter :
+    (string -> int -> int -> unit) -> (unit -> unit) -> formatter
+  val pp_open_hbox : formatter -> unit -> unit
+  val pp_open_vbox : formatter -> int -> unit
+  val pp_open_hvbox : formatter -> int -> unit
+  val pp_open_hovbox : formatter -> int -> unit
+  val pp_open_box : formatter -> int -> unit
+  val pp_close_box : formatter -> unit -> unit
+  val pp_open_tag : formatter -> string -> unit
+  val pp_close_tag : formatter -> unit -> unit
+  val pp_print_string : formatter -> string -> unit
+  val pp_print_as : formatter -> int -> string -> unit
+  val pp_print_int : formatter -> int -> unit
+  val pp_print_float : formatter -> float -> unit
+  val pp_print_char : formatter -> char -> unit
+  val pp_print_bool : formatter -> bool -> unit
+  val pp_print_break : formatter -> int -> int -> unit
+  val pp_print_cut : formatter -> unit -> unit
+  val pp_print_space : formatter -> unit -> unit
+  val pp_force_newline : formatter -> unit -> unit
+  val pp_print_flush : formatter -> unit -> unit
+  val pp_print_newline : formatter -> unit -> unit
+  val pp_print_if_newline : formatter -> unit -> unit
+  val pp_open_tbox : formatter -> unit -> unit
+  val pp_close_tbox : formatter -> unit -> unit
+  val pp_print_tbreak : formatter -> int -> int -> unit
+  val pp_set_tab : formatter -> unit -> unit
+  val pp_print_tab : formatter -> unit -> unit
+  val pp_set_tags : formatter -> bool -> unit
+  val pp_set_print_tags : formatter -> bool -> unit
+  val pp_set_mark_tags : formatter -> bool -> unit
+  val pp_get_print_tags : formatter -> unit -> bool
+  val pp_get_mark_tags : formatter -> unit -> bool
+  val pp_set_margin : formatter -> int -> unit
+  val pp_get_margin : formatter -> unit -> int
+  val pp_set_max_indent : formatter -> int -> unit
+  val pp_get_max_indent : formatter -> unit -> int
+  val pp_set_max_boxes : formatter -> int -> unit
+  val pp_get_max_boxes : formatter -> unit -> int
+  val pp_over_max_boxes : formatter -> unit -> bool
+  val pp_set_ellipsis_text : formatter -> string -> unit
+  val pp_get_ellipsis_text : formatter -> unit -> string
+  val pp_set_formatter_out_channel : formatter -> out_channel -> unit
+  val pp_set_formatter_output_functions :
+    formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
+  val pp_get_formatter_output_functions :
+    formatter -> unit -> (string -> int -> int -> unit) * (unit -> unit)
+  val pp_set_formatter_tag_functions :
+    formatter -> formatter_tag_functions -> unit
+  val pp_get_formatter_tag_functions :
+    formatter -> unit -> formatter_tag_functions
+  val pp_set_formatter_out_functions :
+    formatter -> formatter_out_functions -> unit
+  val pp_get_formatter_out_functions :
+    formatter -> unit -> formatter_out_functions
+  val pp_print_list :
+    ?pp_sep:(formatter -> unit -> unit) ->
+    (formatter -> '-> unit) -> formatter -> 'a list -> unit
+  val pp_print_text : formatter -> string -> unit
+  val printf : ('a, formatter, unit) format -> 'a
+  val eprintf : ('a, formatter, unit) format -> 'a
+  val asprintf : ('a, formatter, unit, string) format4 -> 'a
+  val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
+  val kfprintf :
+    (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
+  val ikfprintf :
+    (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
+  val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
+  val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
+  val set_all_formatter_output_functions :
+    out:(string -> int -> int -> unit) ->
+    flush:(unit -> unit) ->
+    newline:(unit -> unit) -> spaces:(int -> unit) -> unit
+  val get_all_formatter_output_functions :
+    unit ->
+    (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
+    (int -> unit)
+  val pp_set_all_formatter_output_functions :
+    formatter ->
+    out:(string -> int -> int -> unit) ->
+    flush:(unit -> unit) ->
+    newline:(unit -> unit) -> spaces:(int -> unit) -> unit
+  val pp_get_all_formatter_output_functions :
+    formatter ->
+    unit ->
+    (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
+    (int -> unit)
+  type 'a sequence = ('-> unit) -> unit
+  type t = Format.formatter
+  type 'a printer = t -> '-> unit
+  val silent : 'a printer
+  val unit : unit printer
+  val int : int printer
+  val string : string printer
+  val bool : bool printer
+  val float3 : float printer
+  val float : float printer
+  val char : char printer
+  val int32 : int32 printer
+  val int64 : int64 printer
+  val nativeint : nativeint printer
+  val string_quoted : string printer
+  val list :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'a printer -> 'a list printer
+  val array :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'a printer -> 'a array printer
+  val arrayi :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> (int * 'a) printer -> 'a array printer
+  val seq :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'a printer -> 'a sequence printer
+  val opt : 'a printer -> 'a option printer
+  val pair : ?sep:string -> 'a printer -> 'b printer -> ('a * 'b) printer
+  val triple :
+    ?sep:string ->
+    'a printer -> 'b printer -> 'c printer -> ('a * 'b * 'c) printer
+  val quad :
+    ?sep:string ->
+    'a printer ->
+    'b printer -> 'c printer -> 'd printer -> ('a * 'b * 'c * 'd) printer
+  val within : string -> string -> 'a printer -> 'a printer
+  val map : ('-> 'b) -> 'b printer -> 'a printer
+  val vbox : ?i:int -> 'a printer -> 'a printer
+  val hvbox : ?i:int -> 'a printer -> 'a printer
+  val hovbox : ?i:int -> 'a printer -> 'a printer
+  val hbox : 'a printer -> 'a printer
+  val set_color_tag_handling : t -> unit
+  val set_color_default : bool -> unit
+  val with_color : string -> 'a printer -> 'a printer
+  val with_colorf : string -> t -> ('a, t, unit, unit) format4 -> 'a
+  val output : t -> 'a printer -> '-> unit
+  val to_string : 'a printer -> '-> string
+  val stdout : t
+  val stderr : t
+  val sprintf : ('a, t, unit, string) format4 -> 'a
+  val sprintf_no_color : ('a, t, unit, string) format4 -> 'a
+  val fprintf : t -> ('a, t, unit) format -> 'a
+  val ksprintf :
+    f:(string -> 'b) -> ('a, Format.formatter, unit, 'b) format4 -> 'a
+  val to_file : string -> ('a, t, unit, unit) format4 -> 'a
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Fun.html b/0.17/type_Containers.Fun.html new file mode 100644 index 00000000..8dd0b5a2 --- /dev/null +++ b/0.17/type_Containers.Fun.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Fun + + +(module CCFun) \ No newline at end of file diff --git a/0.17/type_Containers.Hash.html b/0.17/type_Containers.Hash.html new file mode 100644 index 00000000..fd99f1c5 --- /dev/null +++ b/0.17/type_Containers.Hash.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hash + + +(module CCHash) \ No newline at end of file diff --git a/0.17/type_Containers.Hashtbl.Counter.html b/0.17/type_Containers.Hashtbl.Counter.html new file mode 100644 index 00000000..487edaae --- /dev/null +++ b/0.17/type_Containers.Hashtbl.Counter.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.Counter + + +(module CCHashtbl.MakeCounter) \ No newline at end of file diff --git a/0.17/type_Containers.Hashtbl.Make'.html b/0.17/type_Containers.Hashtbl.Make'.html new file mode 100644 index 00000000..548c31b3 --- /dev/null +++ b/0.17/type_Containers.Hashtbl.Make'.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.Make' + + +(module CCHashtbl.Make) \ No newline at end of file diff --git a/0.17/type_Containers.Hashtbl.MakeDefault.html b/0.17/type_Containers.Hashtbl.MakeDefault.html new file mode 100644 index 00000000..75060e71 --- /dev/null +++ b/0.17/type_Containers.Hashtbl.MakeDefault.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.MakeDefault + + +(module CCHashtbl.MakeDefault) \ No newline at end of file diff --git a/0.17/type_Containers.Hashtbl.S'.html b/0.17/type_Containers.Hashtbl.S'.html new file mode 100644 index 00000000..937dfe31 --- /dev/null +++ b/0.17/type_Containers.Hashtbl.S'.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl.S' + + +CCHashtbl.S \ No newline at end of file diff --git a/0.17/type_Containers.Hashtbl.html b/0.17/type_Containers.Hashtbl.html new file mode 100644 index 00000000..af0f4e50 --- /dev/null +++ b/0.17/type_Containers.Hashtbl.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Hashtbl + + +sig
+  type ('a, 'b) t = ('a, 'b) Hashtbl.t
+  val create : ?random:bool -> int -> ('a, 'b) t
+  val clear : ('a, 'b) t -> unit
+  val reset : ('a, 'b) t -> unit
+  val copy : ('a, 'b) t -> ('a, 'b) t
+  val add : ('a, 'b) t -> '-> '-> unit
+  val find : ('a, 'b) t -> '-> 'b
+  val find_all : ('a, 'b) t -> '-> 'b list
+  val mem : ('a, 'b) t -> '-> bool
+  val remove : ('a, 'b) t -> '-> unit
+  val replace : ('a, 'b) t -> '-> '-> unit
+  val iter : ('-> '-> unit) -> ('a, 'b) t -> unit
+  val fold : ('-> '-> '-> 'c) -> ('a, 'b) t -> '-> 'c
+  val length : ('a, 'b) t -> int
+  val randomize : unit -> unit
+  type statistics =
+    Hashtbl.statistics = {
+    num_bindings : int;
+    num_buckets : int;
+    max_bucket_length : int;
+    bucket_histogram : int array;
+  }
+  val stats : ('a, 'b) t -> statistics
+  module type HashedType =
+    sig type t val equal : t -> t -> bool val hash : t -> int end
+  module type S =
+    sig
+      type key
+      type 'a t
+      val create : int -> 'a t
+      val clear : 'a t -> unit
+      val reset : 'a t -> unit
+      val copy : 'a t -> 'a t
+      val add : 'a t -> key -> '-> unit
+      val remove : 'a t -> key -> unit
+      val find : 'a t -> key -> 'a
+      val find_all : 'a t -> key -> 'a list
+      val replace : 'a t -> key -> '-> unit
+      val mem : 'a t -> key -> bool
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+      val length : 'a t -> int
+      val stats : 'a t -> statistics
+    end
+  module Make :
+    functor (H : Hashtbl.HashedType->
+      sig
+        type key = H.t
+        type 'a t = 'Hashtbl.Make(H).t
+        val create : int -> 'a t
+        val clear : 'a t -> unit
+        val reset : 'a t -> unit
+        val copy : 'a t -> 'a t
+        val add : 'a t -> key -> '-> unit
+        val remove : 'a t -> key -> unit
+        val find : 'a t -> key -> 'a
+        val find_all : 'a t -> key -> 'a list
+        val replace : 'a t -> key -> '-> unit
+        val mem : 'a t -> key -> bool
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+        val length : 'a t -> int
+        val stats : 'a t -> Hashtbl.statistics
+      end
+  module type SeededHashedType =
+    sig type t val equal : t -> t -> bool val hash : int -> t -> int end
+  module type SeededS =
+    sig
+      type key
+      type 'a t
+      val create : ?random:bool -> int -> 'a t
+      val clear : 'a t -> unit
+      val reset : 'a t -> unit
+      val copy : 'a t -> 'a t
+      val add : 'a t -> key -> '-> unit
+      val remove : 'a t -> key -> unit
+      val find : 'a t -> key -> 'a
+      val find_all : 'a t -> key -> 'a list
+      val replace : 'a t -> key -> '-> unit
+      val mem : 'a t -> key -> bool
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+      val length : 'a t -> int
+      val stats : 'a t -> statistics
+    end
+  module MakeSeeded :
+    functor (H : SeededHashedType->
+      sig
+        type key = H.t
+        type 'a t
+        val create : ?random:bool -> int -> 'a t
+        val clear : 'a t -> unit
+        val reset : 'a t -> unit
+        val copy : 'a t -> 'a t
+        val add : 'a t -> key -> '-> unit
+        val remove : 'a t -> key -> unit
+        val find : 'a t -> key -> 'a
+        val find_all : 'a t -> key -> 'a list
+        val replace : 'a t -> key -> '-> unit
+        val mem : 'a t -> key -> bool
+        val iter : (key -> '-> unit) -> 'a t -> unit
+        val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+        val length : 'a t -> int
+        val stats : 'a t -> statistics
+      end
+  val hash : '-> int
+  val seeded_hash : int -> '-> int
+  val hash_param : int -> int -> '-> int
+  val seeded_hash_param : int -> int -> int -> '-> int
+  module type S' = CCHashtbl.S
+  module Make' = CCHashtbl.Make
+  module Counter = CCHashtbl.MakeCounter
+  module MakeDefault = CCHashtbl.MakeDefault
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Int.html b/0.17/type_Containers.Int.html new file mode 100644 index 00000000..3a666f40 --- /dev/null +++ b/0.17/type_Containers.Int.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Int + + +(module CCInt) \ No newline at end of file diff --git a/0.17/type_Containers.Int64.html b/0.17/type_Containers.Int64.html new file mode 100644 index 00000000..9ae40bf8 --- /dev/null +++ b/0.17/type_Containers.Int64.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Int64 + + +(module CCInt64) \ No newline at end of file diff --git a/0.17/type_Containers.List.html b/0.17/type_Containers.List.html new file mode 100644 index 00000000..6029cdba --- /dev/null +++ b/0.17/type_Containers.List.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.List + + +sig
+  val length : 'a list -> int
+  val hd : 'a list -> 'a
+  val tl : 'a list -> 'a list
+  val nth : 'a list -> int -> 'a
+  val rev : 'a list -> 'a list
+  val rev_append : 'a list -> 'a list -> 'a list
+  val concat : 'a list list -> 'a list
+  val iter : ('-> unit) -> 'a list -> unit
+  val iteri : (int -> '-> unit) -> 'a list -> unit
+  val mapi : (int -> '-> 'b) -> 'a list -> 'b list
+  val rev_map : ('-> 'b) -> 'a list -> 'b list
+  val fold_left : ('-> '-> 'a) -> '-> 'b list -> 'a
+  val iter2 : ('-> '-> unit) -> 'a list -> 'b list -> unit
+  val map2 : ('-> '-> 'c) -> 'a list -> 'b list -> 'c list
+  val rev_map2 : ('-> '-> 'c) -> 'a list -> 'b list -> 'c list
+  val fold_left2 : ('-> '-> '-> 'a) -> '-> 'b list -> 'c list -> 'a
+  val fold_right2 : ('-> '-> '-> 'c) -> 'a list -> 'b list -> '-> 'c
+  val for_all : ('-> bool) -> 'a list -> bool
+  val exists : ('-> bool) -> 'a list -> bool
+  val for_all2 : ('-> '-> bool) -> 'a list -> 'b list -> bool
+  val exists2 : ('-> '-> bool) -> 'a list -> 'b list -> bool
+  val mem : '-> 'a list -> bool
+  val memq : '-> 'a list -> bool
+  val find_all : ('-> bool) -> 'a list -> 'a list
+  val partition : ('-> bool) -> 'a list -> 'a list * 'a list
+  val assoc : '-> ('a * 'b) list -> 'b
+  val assq : '-> ('a * 'b) list -> 'b
+  val mem_assoc : '-> ('a * 'b) list -> bool
+  val mem_assq : '-> ('a * 'b) list -> bool
+  val remove_assoc : '-> ('a * 'b) list -> ('a * 'b) list
+  val remove_assq : '-> ('a * 'b) list -> ('a * 'b) list
+  val combine : 'a list -> 'b list -> ('a * 'b) list
+  val sort : ('-> '-> int) -> 'a list -> 'a list
+  val stable_sort : ('-> '-> int) -> 'a list -> 'a list
+  val fast_sort : ('-> '-> int) -> 'a list -> 'a list
+  val merge : ('-> '-> int) -> 'a list -> 'a list -> 'a list
+  type 'a t = 'a list
+  val empty : 'a t
+  val is_empty : 'a t -> bool
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val cons : '-> 'a t -> 'a t
+  val append : 'a t -> 'a t -> 'a t
+  val cons_maybe : 'a option -> 'a t -> 'a t
+  val ( @ ) : 'a t -> 'a t -> 'a t
+  val filter : ('-> bool) -> 'a t -> 'a t
+  val fold_right : ('-> '-> 'b) -> 'a t -> '-> 'b
+  val fold_while :
+    ('-> '-> 'a * [ `Continue | `Stop ]) -> '-> 'b t -> 'a
+  val fold_map :
+    ('acc -> '-> 'acc * 'b) -> 'acc -> 'a list -> 'acc * 'b list
+  val fold_map2 :
+    ('acc -> '-> '-> 'acc * 'c) ->
+    'acc -> 'a list -> 'b list -> 'acc * 'c list
+  val fold_filter_map :
+    ('acc -> '-> 'acc * 'b option) -> 'acc -> 'a list -> 'acc * 'b list
+  val fold_flat_map :
+    ('acc -> '-> 'acc * 'b list) -> 'acc -> 'a list -> 'acc * 'b list
+  val init : int -> (int -> 'a) -> 'a t
+  val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+  val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+  val flat_map : ('-> 'b t) -> 'a t -> 'b t
+  val flatten : 'a t t -> 'a t
+  val product : ('-> '-> 'c) -> 'a t -> 'b t -> 'c t
+  val fold_product : ('-> '-> '-> 'c) -> '-> 'a t -> 'b t -> 'c
+  val diagonal : 'a t -> ('a * 'a) t
+  val partition_map :
+    ('-> [< `Drop | `Left of '| `Right of 'c ]) ->
+    'a list -> 'b list * 'c list
+  val pure : '-> 'a t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  val ( <$> ) : ('-> 'b) -> 'a t -> 'b t
+  val return : '-> 'a t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val take : int -> 'a t -> 'a t
+  val drop : int -> 'a t -> 'a t
+  val hd_tl : 'a t -> 'a * 'a t
+  val take_drop : int -> 'a t -> 'a t * 'a t
+  val take_while : ('-> bool) -> 'a t -> 'a t
+  val drop_while : ('-> bool) -> 'a t -> 'a t
+  val split : int -> 'a t -> 'a t * 'a t
+  val last : int -> 'a t -> 'a t
+  val find_pred : ('-> bool) -> 'a t -> 'a option
+  val find_pred_exn : ('-> bool) -> 'a t -> 'a
+  val find_map : ('-> 'b option) -> 'a t -> 'b option
+  val find : ('-> 'b option) -> 'a list -> 'b option
+  val find_mapi : (int -> '-> 'b option) -> 'a t -> 'b option
+  val findi : (int -> '-> 'b option) -> 'a t -> 'b option
+  val find_idx : ('-> bool) -> 'a t -> (int * 'a) option
+  val remove : ?eq:('-> '-> bool) -> x:'-> 'a t -> 'a t
+  val filter_map : ('-> 'b option) -> 'a t -> 'b t
+  val sorted_merge : ?cmp:('-> '-> int) -> 'a list -> 'a list -> 'a list
+  val sort_uniq : ?cmp:('-> '-> int) -> 'a list -> 'a list
+  val sorted_merge_uniq :
+    ?cmp:('-> '-> int) -> 'a list -> 'a list -> 'a list
+  val is_sorted : ?cmp:('-> '-> int) -> 'a list -> bool
+  val sorted_insert :
+    ?cmp:('-> '-> int) -> ?uniq:bool -> '-> 'a list -> 'a list
+  val uniq_succ : ?eq:('-> '-> bool) -> 'a list -> 'a list
+  val group_succ : ?eq:('-> '-> bool) -> 'a list -> 'a list list
+  module Idx = CCList.Idx
+  module Set = CCList.Set
+  val range : int -> int -> int t
+  val range' : int -> int -> int t
+  val ( -- ) : int -> int -> int t
+  val ( --^ ) : int -> int -> int t
+  val replicate : int -> '-> 'a t
+  val repeat : int -> 'a t -> 'a t
+  module Assoc = CCList.Assoc
+  module Zipper = CCList.Zipper
+  module Ref = CCList.Ref
+  module type MONAD =
+    sig
+      type 'a t
+      val return : '-> 'a t
+      val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+    end
+  module Traverse = CCList.Traverse
+  type 'a sequence = ('-> unit) -> unit
+  type 'a gen = unit -> 'a option
+  type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ]
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  type 'a random_gen = Random.State.t -> 'a
+  val random : 'a random_gen -> 'a t random_gen
+  val random_non_empty : 'a random_gen -> 'a t random_gen
+  val random_len : int -> 'a random_gen -> 'a t random_gen
+  val random_choose : 'a t -> 'a random_gen
+  val random_sequence : 'a random_gen t -> 'a t random_gen
+  val to_seq : 'a t -> 'a sequence
+  val of_seq : 'a sequence -> 'a t
+  val to_gen : 'a t -> 'a gen
+  val of_gen : 'a gen -> 'a t
+  val to_klist : 'a t -> 'a klist
+  val of_klist : 'a klist -> 'a t
+  module Infix = CCList.Infix
+  val pp :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'a printer -> 'a t printer
+  val print :
+    ?start:string ->
+    ?stop:string -> ?sep:string -> 'a formatter -> 'a t formatter
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Map.OrderedType.html b/0.17/type_Containers.Map.OrderedType.html new file mode 100644 index 00000000..769d4496 --- /dev/null +++ b/0.17/type_Containers.Map.OrderedType.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Map.OrderedType + + +Map.OrderedType \ No newline at end of file diff --git a/0.17/type_Containers.Map.html b/0.17/type_Containers.Map.html new file mode 100644 index 00000000..e5a22de0 --- /dev/null +++ b/0.17/type_Containers.Map.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Map + + +sig
+  module type OrderedType = Map.OrderedType
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  module type S =
+    sig
+      type key
+      type +'a t
+      val empty : 'a t
+      val is_empty : 'a t -> bool
+      val mem : key -> 'a t -> bool
+      val add : key -> '-> 'a t -> 'a t
+      val singleton : key -> '-> 'a t
+      val remove : key -> 'a t -> 'a t
+      val merge :
+        (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
+      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
+      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
+      val iter : (key -> '-> unit) -> 'a t -> unit
+      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
+      val for_all : (key -> '-> bool) -> 'a t -> bool
+      val exists : (key -> '-> bool) -> 'a t -> bool
+      val filter : (key -> '-> bool) -> 'a t -> 'a t
+      val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
+      val cardinal : 'a t -> int
+      val bindings : 'a t -> (key * 'a) list
+      val min_binding : 'a t -> key * 'a
+      val max_binding : 'a t -> key * 'a
+      val choose : 'a t -> key * 'a
+      val split : key -> 'a t -> 'a t * 'a option * 'a t
+      val find : key -> 'a t -> 'a
+      val map : ('-> 'b) -> 'a t -> 'b t
+      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
+      val get : key -> 'a t -> 'a option
+      val get_or : key -> 'a t -> or_:'-> 'a
+      val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
+      val merge_safe :
+        f:(key ->
+           [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->
+        'a t -> 'b t -> 'c t
+      val of_seq : (key * 'a) sequence -> 'a t
+      val add_seq : 'a t -> (key * 'a) sequence -> 'a t
+      val to_seq : 'a t -> (key * 'a) sequence
+      val of_list : (key * 'a) list -> 'a t
+      val add_list : 'a t -> (key * 'a) list -> 'a t
+      val keys : 'a t -> key sequence
+      val values : 'a t -> 'a sequence
+      val to_list : 'a t -> (key * 'a) list
+      val pp :
+        ?start:string ->
+        ?stop:string ->
+        ?arrow:string ->
+        ?sep:string -> key printer -> 'a printer -> 'a t printer
+      val print :
+        ?start:string ->
+        ?stop:string ->
+        ?arrow:string ->
+        ?sep:string -> key formatter -> 'a formatter -> 'a t formatter
+    end
+  module Make = CCMap.Make
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Option.html b/0.17/type_Containers.Option.html new file mode 100644 index 00000000..e6b7248f --- /dev/null +++ b/0.17/type_Containers.Option.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Option + + +(module CCOpt) \ No newline at end of file diff --git a/0.17/type_Containers.Pair.html b/0.17/type_Containers.Pair.html new file mode 100644 index 00000000..e46c3c13 --- /dev/null +++ b/0.17/type_Containers.Pair.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Pair + + +(module CCPair) \ No newline at end of file diff --git a/0.17/type_Containers.Random.html b/0.17/type_Containers.Random.html new file mode 100644 index 00000000..e25309ae --- /dev/null +++ b/0.17/type_Containers.Random.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Random + + +sig
+  val init : int -> unit
+  val full_init : int array -> unit
+  val self_init : unit -> unit
+  val bits : unit -> int
+  val int32 : Int32.t -> Int32.t
+  val nativeint : Nativeint.t -> Nativeint.t
+  val int64 : Int64.t -> Int64.t
+  val bool : unit -> bool
+  module State = Random.State
+  val get_state : unit -> State.t
+  val set_state : State.t -> unit
+  type state = Random.State.t
+  type 'a t = state -> 'a
+  type 'a random_gen = 'a t
+  val return : '-> 'a t
+  val flat_map : ('-> 'b t) -> 'a t -> 'b t
+  val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t
+  val map : ('-> 'b) -> 'a t -> 'b t
+  val ( >|= ) : 'a t -> ('-> 'b) -> 'b t
+  val delay : (unit -> 'a t) -> 'a t
+  val choose : 'a t list -> 'a option t
+  val choose_exn : 'a t list -> 'a t
+  val choose_array : 'a t array -> 'a option t
+  val choose_return : 'a list -> 'a t
+  val replicate : int -> 'a t -> 'a list t
+  val sample_without_replacement :
+    ?compare:('-> '-> int) -> int -> 'a t -> 'a list t
+  val list_seq : 'a t list -> 'a list t
+  exception Pick_from_empty
+  val pick_list : 'a list -> 'a t
+  val pick_array : 'a array -> 'a t
+  val small_int : int t
+  val int : int -> int t
+  val int_range : int -> int -> int t
+  val small_float : float t
+  val float : float -> float t
+  val float_range : float -> float -> float t
+  val split : int -> (int * int) option t
+  val split_list : int -> len:int -> int list option t
+  val retry : ?max:int -> 'a option t -> 'a option t
+  val try_successively : 'a option t list -> 'a option t
+  val ( <?> ) : 'a option t -> 'a option t -> 'a option t
+  val fix :
+    ?sub1:('a t -> 'a t) list ->
+    ?sub2:('a t -> 'a t -> 'a t) list ->
+    ?subn:(int t * ('a list t -> 'a t)) list -> base:'a t -> int t -> 'a t
+  val pure : '-> 'a t
+  val ( <*> ) : ('-> 'b) t -> 'a t -> 'b t
+  val run : ?st:state -> 'a t -> 'a
+  val uniformity_test : ?size_hint:int -> int -> 'a t -> bool t
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Ref.html b/0.17/type_Containers.Ref.html new file mode 100644 index 00000000..c849bb9b --- /dev/null +++ b/0.17/type_Containers.Ref.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Ref + + +(module CCRef) \ No newline at end of file diff --git a/0.17/type_Containers.Result.html b/0.17/type_Containers.Result.html new file mode 100644 index 00000000..771fb1c7 --- /dev/null +++ b/0.17/type_Containers.Result.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Result + + +(module CCResult) \ No newline at end of file diff --git a/0.17/type_Containers.Set.OrderedType.html b/0.17/type_Containers.Set.OrderedType.html new file mode 100644 index 00000000..d46bb5bb --- /dev/null +++ b/0.17/type_Containers.Set.OrderedType.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Set.OrderedType + + +Set.OrderedType \ No newline at end of file diff --git a/0.17/type_Containers.Set.html b/0.17/type_Containers.Set.html new file mode 100644 index 00000000..34b02970 --- /dev/null +++ b/0.17/type_Containers.Set.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Set + + +sig
+  module type OrderedType = Set.OrderedType
+  type 'a sequence = ('-> unit) -> unit
+  type 'a printer = Buffer.t -> '-> unit
+  type 'a formatter = Format.formatter -> '-> unit
+  module type S =
+    sig
+      type elt
+      type t
+      val empty : t
+      val is_empty : t -> bool
+      val mem : elt -> t -> bool
+      val add : elt -> t -> t
+      val singleton : elt -> t
+      val remove : elt -> t -> t
+      val union : t -> t -> t
+      val inter : t -> t -> t
+      val diff : t -> t -> t
+      val compare : t -> t -> int
+      val equal : t -> t -> bool
+      val subset : t -> t -> bool
+      val iter : (elt -> unit) -> t -> unit
+      val fold : (elt -> '-> 'a) -> t -> '-> 'a
+      val for_all : (elt -> bool) -> t -> bool
+      val exists : (elt -> bool) -> t -> bool
+      val filter : (elt -> bool) -> t -> t
+      val partition : (elt -> bool) -> t -> t * t
+      val cardinal : t -> int
+      val elements : t -> elt list
+      val min_elt : t -> elt
+      val max_elt : t -> elt
+      val choose : t -> elt
+      val split : elt -> t -> t * bool * t
+      val find : elt -> t -> elt
+      val of_seq : elt sequence -> t
+      val add_seq : t -> elt sequence -> t
+      val to_seq : t -> elt sequence
+      val of_list : elt list -> t
+      val add_list : t -> elt list -> t
+      val to_list : t -> elt list
+      val pp :
+        ?start:string ->
+        ?stop:string -> ?sep:string -> elt printer -> t printer
+      val print :
+        ?start:string ->
+        ?stop:string -> ?sep:string -> elt formatter -> t formatter
+    end
+  module Make = CCSet.Make
+end
\ No newline at end of file diff --git a/0.17/type_Containers.String.html b/0.17/type_Containers.String.html new file mode 100644 index 00000000..effce184 --- /dev/null +++ b/0.17/type_Containers.String.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.String + + +sig
+  external get : string -> int -> char = "%string_safe_get"
+  external create : int -> bytes = "caml_create_string"
+  val make : int -> char -> string
+  val copy : string -> string
+  val sub : string -> int -> int -> string
+  val fill : bytes -> int -> int -> char -> unit
+  val concat : string -> string list -> string
+  val trim : string -> string
+  val escaped : string -> string
+  val index : string -> char -> int
+  val rindex : string -> char -> int
+  val index_from : string -> int -> char -> int
+  val rindex_from : string -> int -> char -> int
+  val contains : string -> char -> bool
+  val contains_from : string -> int -> char -> bool
+  val rcontains_from : string -> int -> char -> bool
+  val uppercase : string -> string
+  val lowercase : string -> string
+  val capitalize : string -> string
+  val uncapitalize : string -> string
+  type t = string
+  external unsafe_get : string -> int -> char = "%string_unsafe_get"
+  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
+  external unsafe_blit : string -> int -> bytes -> int -> int -> unit
+    = "caml_blit_string" "noalloc"
+  external unsafe_fill : bytes -> int -> int -> char -> unit
+    = "caml_fill_string" "noalloc"
+  type 'a gen = unit -> 'a option
+  type 'a sequence = ('-> unit) -> unit
+  type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ]
+  module type S =
+    sig
+      type t
+      val length : t -> int
+      val blit : t -> int -> Bytes.t -> int -> int -> unit
+      val fold : ('-> char -> 'a) -> '-> t -> 'a
+      val to_gen : t -> char gen
+      val to_seq : t -> char sequence
+      val to_klist : t -> char klist
+      val to_list : t -> char list
+      val pp : Buffer.t -> t -> unit
+      val print : Format.formatter -> t -> unit
+    end
+  val equal : string -> string -> bool
+  val compare : string -> string -> int
+  val hash : string -> int
+  val init : int -> (int -> char) -> string
+  val rev : string -> string
+  val pad : ?side:[ `Left | `Right ] -> ?c:char -> int -> string -> string
+  val of_gen : char gen -> string
+  val of_seq : char sequence -> string
+  val of_klist : char klist -> string
+  val of_list : char list -> string
+  val of_array : char array -> string
+  val to_array : string -> char array
+  val find : ?start:int -> sub:string -> string -> int
+  val find_all : ?start:int -> sub:string -> string -> int gen
+  val find_all_l : ?start:int -> sub:string -> string -> int list
+  val mem : ?start:int -> sub:string -> string -> bool
+  val rfind : sub:string -> string -> int
+  val replace :
+    ?which:[ `All | `Left | `Right ] ->
+    sub:string -> by:string -> string -> string
+  val is_sub : sub:string -> int -> string -> int -> len:int -> bool
+  val repeat : string -> int -> string
+  val prefix : pre:string -> string -> bool
+  val suffix : suf:string -> string -> bool
+  val chop_prefix : pre:string -> string -> string option
+  val chop_suffix : suf:string -> string -> string option
+  val take : int -> string -> string
+  val drop : int -> string -> string
+  val take_drop : int -> string -> string * string
+  val lines : string -> string list
+  val lines_gen : string -> string gen
+  val concat_gen : sep:string -> string gen -> string
+  val unlines : string list -> string
+  val unlines_gen : string gen -> string
+  val set : string -> int -> char -> string
+  val iter : (char -> unit) -> string -> unit
+  val iteri : (int -> char -> unit) -> string -> unit
+  val map : (char -> char) -> string -> string
+  val mapi : (int -> char -> char) -> string -> string
+  val filter_map : (char -> char option) -> string -> string
+  val filter : (char -> bool) -> string -> string
+  val flat_map : ?sep:string -> (char -> string) -> string -> string
+  val for_all : (char -> bool) -> string -> bool
+  val exists : (char -> bool) -> string -> bool
+  val length : string -> int
+  val blit : string -> int -> Bytes.t -> int -> int -> unit
+  val fold : ('-> char -> 'a) -> '-> string -> 'a
+  val to_gen : string -> char gen
+  val to_seq : string -> char sequence
+  val to_klist : string -> char klist
+  val to_list : string -> char list
+  val pp : Buffer.t -> string -> unit
+  val print : Format.formatter -> string -> unit
+  val map2 : (char -> char -> char) -> string -> string -> string
+  val iter2 : (char -> char -> unit) -> string -> string -> unit
+  val iteri2 : (int -> char -> char -> unit) -> string -> string -> unit
+  val fold2 : ('-> char -> char -> 'a) -> '-> string -> string -> 'a
+  val for_all2 : (char -> char -> bool) -> string -> string -> bool
+  val exists2 : (char -> char -> bool) -> string -> string -> bool
+  module Split = CCString.Split
+  val compare_versions : string -> string -> int
+  module Sub = CCString.Sub
+end
\ No newline at end of file diff --git a/0.17/type_Containers.Vector.html b/0.17/type_Containers.Vector.html new file mode 100644 index 00000000..a810869f --- /dev/null +++ b/0.17/type_Containers.Vector.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers.Vector + + +(module CCVector) \ No newline at end of file diff --git a/0.17/type_Containers.html b/0.17/type_Containers.html new file mode 100644 index 00000000..aecded79 --- /dev/null +++ b/0.17/type_Containers.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers + + +sig  end \ No newline at end of file diff --git a/0.17/type_Containers_advanced.Batch.html b/0.17/type_Containers_advanced.Batch.html new file mode 100644 index 00000000..5e9524cd --- /dev/null +++ b/0.17/type_Containers_advanced.Batch.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Batch + + +(module CCBatch) \ No newline at end of file diff --git a/0.17/type_Containers_advanced.Cat.html b/0.17/type_Containers_advanced.Cat.html new file mode 100644 index 00000000..e4799ae6 --- /dev/null +++ b/0.17/type_Containers_advanced.Cat.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Cat + + +(module CCCat) \ No newline at end of file diff --git a/0.17/type_Containers_advanced.Linq.html b/0.17/type_Containers_advanced.Linq.html new file mode 100644 index 00000000..629aea09 --- /dev/null +++ b/0.17/type_Containers_advanced.Linq.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.Linq + + +(module CCLinq) \ No newline at end of file diff --git a/0.17/type_Containers_advanced.MonadIO.html b/0.17/type_Containers_advanced.MonadIO.html new file mode 100644 index 00000000..f0f81b41 --- /dev/null +++ b/0.17/type_Containers_advanced.MonadIO.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced.MonadIO + + +(module CCMonadIO) \ No newline at end of file diff --git a/0.17/type_Containers_advanced.html b/0.17/type_Containers_advanced.html new file mode 100644 index 00000000..da69e762 --- /dev/null +++ b/0.17/type_Containers_advanced.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_advanced + + +sig  end \ No newline at end of file diff --git a/0.17/type_Containers_io_is_deprecated.html b/0.17/type_Containers_io_is_deprecated.html new file mode 100644 index 00000000..53ae0783 --- /dev/null +++ b/0.17/type_Containers_io_is_deprecated.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_io_is_deprecated + + +sig  end \ No newline at end of file diff --git a/0.17/type_Containers_string.App_parse.html b/0.17/type_Containers_string.App_parse.html new file mode 100644 index 00000000..fa6bdec0 --- /dev/null +++ b/0.17/type_Containers_string.App_parse.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.App_parse + + +(module CCApp_parse) \ No newline at end of file diff --git a/0.17/type_Containers_string.KMP.html b/0.17/type_Containers_string.KMP.html new file mode 100644 index 00000000..24bcb437 --- /dev/null +++ b/0.17/type_Containers_string.KMP.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.KMP + + +(module CCKMP) \ No newline at end of file diff --git a/0.17/type_Containers_string.Levenshtein.html b/0.17/type_Containers_string.Levenshtein.html new file mode 100644 index 00000000..62c60a92 --- /dev/null +++ b/0.17/type_Containers_string.Levenshtein.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.Levenshtein + + +(module CCLevenshtein) \ No newline at end of file diff --git a/0.17/type_Containers_string.Parse.html b/0.17/type_Containers_string.Parse.html new file mode 100644 index 00000000..0a95f0f9 --- /dev/null +++ b/0.17/type_Containers_string.Parse.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string.Parse + + +(module CCParse) \ No newline at end of file diff --git a/0.17/type_Containers_string.html b/0.17/type_Containers_string.html new file mode 100644 index 00000000..586465df --- /dev/null +++ b/0.17/type_Containers_string.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Containers doc : Containers_string + + +sig  end \ No newline at end of file