@fncts/base 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_cjs/collection/Iterable/api/traverseConc.cjs +8 -8
- package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
- package/_cjs/collection/Iterable/api.cjs +497 -444
- package/_cjs/collection/Iterable/api.cjs.map +1 -1
- package/_cjs/collection/Iterable/constructors.cjs +7 -7
- package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
- package/_cjs/collection/compat/Array/api.cjs +16 -12
- package/_cjs/collection/compat/Array/api.cjs.map +1 -1
- package/_cjs/collection/compat/Array/derivations.cjs +41 -19
- package/_cjs/collection/compat/Array/derivations.cjs.map +1 -1
- package/_cjs/collection/compat/ArrayLike/api.cjs +1 -1
- package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
- package/_cjs/collection/compat/Record/instances.cjs +39 -3
- package/_cjs/collection/compat/Record/instances.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -1
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api.cjs +866 -765
- package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/definition.cjs +55 -53
- package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/derivations.cjs +13 -2
- package/_cjs/collection/immutable/Conc/derivations.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc.cjs.map +1 -1
- package/_cjs/collection/immutable/Dictionary/api.cjs +57 -44
- package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/api.cjs +351 -258
- package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/api.cjs +230 -192
- package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +6 -4
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +6 -4
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +6 -4
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +15 -13
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/api.cjs +943 -749
- package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/derivations.cjs +12 -1
- package/_cjs/collection/immutable/ImmutableArray/derivations.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray/instances.cjs +33 -33
- package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +338 -273
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs +15 -4
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +2 -2
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +1 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +12 -12
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api/foldLeft.cjs +12 -10
- package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api.cjs +164 -141
- package/_cjs/collection/immutable/List/api.cjs.map +1 -1
- package/_cjs/collection/immutable/List.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/api.cjs +64 -48
- package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/definition.cjs +1 -1
- package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/api.cjs +50 -36
- package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/api.cjs +408 -368
- package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/api.cjs +723 -608
- package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/definition.cjs +18 -16
- package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/internal.cjs +40 -39
- package/_cjs/collection/immutable/Vector/internal.cjs.map +1 -1
- package/_cjs/collection/mutable/HashMap.cjs +3 -5
- package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
- package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
- package/_cjs/collection/mutable/ListBuffer.cjs +2 -2
- package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
- package/_cjs/collection/mutable/internal.cjs +0 -2
- package/_cjs/collection/mutable/internal.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakMap.cjs +7 -7
- package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakSet.cjs +7 -7
- package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
- package/_cjs/control/Eval/api.cjs +55 -43
- package/_cjs/control/Eval/api.cjs.map +1 -1
- package/_cjs/control/Eval/instance.cjs +4 -4
- package/_cjs/control/Eval/instance.cjs.map +1 -1
- package/_cjs/control/Eval/run.cjs +1 -1
- package/_cjs/control/Eval/run.cjs.map +1 -1
- package/_cjs/control/Z/api.cjs +241 -172
- package/_cjs/control/Z/api.cjs.map +1 -1
- package/_cjs/control/Z/instances.cjs +3 -3
- package/_cjs/control/Z/instances.cjs.map +1 -1
- package/_cjs/control/Z/runtime.cjs +250 -241
- package/_cjs/control/Z/runtime.cjs.map +1 -1
- package/_cjs/data/Branded/definition.cjs.map +1 -1
- package/_cjs/data/Branded/derivations.cjs +3 -3
- package/_cjs/data/Branded/derivations.cjs.map +1 -1
- package/_cjs/data/CaseClass.cjs.map +1 -1
- package/_cjs/data/Cause/api/fold.cjs +20 -18
- package/_cjs/data/Cause/api/fold.cjs.map +1 -1
- package/_cjs/data/Cause/api/isEmpty.cjs +1 -1
- package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
- package/_cjs/data/Cause/api/linearize.cjs +8 -8
- package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
- package/_cjs/data/Cause/api/prettyPrint.cjs +1 -1
- package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
- package/_cjs/data/Cause/api.cjs +160 -140
- package/_cjs/data/Cause/api.cjs.map +1 -1
- package/_cjs/data/Cause/definition.cjs +18 -18
- package/_cjs/data/Cause/definition.cjs.map +1 -1
- package/_cjs/data/Cause.cjs.map +1 -1
- package/_cjs/data/Const/api.cjs +8 -6
- package/_cjs/data/Const/api.cjs.map +1 -1
- package/_cjs/data/Const/instances.cjs +4 -4
- package/_cjs/data/Const/instances.cjs.map +1 -1
- package/_cjs/data/Datum/api.cjs +219 -176
- package/_cjs/data/Datum/api.cjs.map +1 -1
- package/_cjs/data/Datum/definition.cjs.map +1 -1
- package/_cjs/data/DatumEither/api.cjs +165 -133
- package/_cjs/data/DatumEither/api.cjs.map +1 -1
- package/_cjs/data/DecodeError/definition.cjs +14 -14
- package/_cjs/data/DecodeError/definition.cjs.map +1 -1
- package/_cjs/data/Decoder/api.cjs +9 -7
- package/_cjs/data/Decoder/api.cjs.map +1 -1
- package/_cjs/data/Duration/api.cjs +18 -12
- package/_cjs/data/Duration/api.cjs.map +1 -1
- package/_cjs/data/Either/api/align.cjs +8 -3
- package/_cjs/data/Either/api/align.cjs.map +1 -1
- package/_cjs/data/Either/api/alignWith.cjs +14 -12
- package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
- package/_cjs/data/Either/api.cjs +206 -169
- package/_cjs/data/Either/api.cjs.map +1 -1
- package/_cjs/data/Either/constructors.cjs +11 -9
- package/_cjs/data/Either/constructors.cjs.map +1 -1
- package/_cjs/data/Either/destructors.cjs +16 -14
- package/_cjs/data/Either/destructors.cjs.map +1 -1
- package/_cjs/data/Either/instances.cjs +8 -8
- package/_cjs/data/Either/instances.cjs.map +1 -1
- package/_cjs/data/EitherT/api.cjs +8 -8
- package/_cjs/data/EitherT/api.cjs.map +1 -1
- package/_cjs/data/Encoder/api.cjs +134 -0
- package/_cjs/data/Encoder/api.cjs.map +1 -0
- package/_cjs/data/Encoder/definition.cjs +25 -0
- package/_cjs/data/Encoder/definition.cjs.map +1 -0
- package/_cjs/data/Encoder.cjs +32 -0
- package/_cjs/data/Encoder.cjs.map +1 -0
- package/_cjs/data/Environment/api.cjs +45 -33
- package/_cjs/data/Environment/api.cjs.map +1 -1
- package/_cjs/data/EnvironmentPatch.cjs +17 -13
- package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
- package/_cjs/data/ExecutionStrategy.cjs +21 -29
- package/_cjs/data/ExecutionStrategy.cjs.map +1 -1
- package/_cjs/data/Exit/api.cjs +159 -127
- package/_cjs/data/Exit/api.cjs.map +1 -1
- package/_cjs/data/Exit/constructors.cjs +4 -4
- package/_cjs/data/Exit/constructors.cjs.map +1 -1
- package/_cjs/data/FiberId/api.cjs +23 -21
- package/_cjs/data/FiberId/api.cjs.map +1 -1
- package/_cjs/data/FiberId/constructors.cjs.map +1 -1
- package/_cjs/data/Identity/api.cjs +26 -18
- package/_cjs/data/Identity/api.cjs.map +1 -1
- package/_cjs/data/Identity/instances.cjs +3 -3
- package/_cjs/data/Identity/instances.cjs.map +1 -1
- package/_cjs/data/Interval.cjs +43 -33
- package/_cjs/data/Interval.cjs.map +1 -1
- package/_cjs/data/Intervals.cjs +35 -27
- package/_cjs/data/Intervals.cjs.map +1 -1
- package/_cjs/data/Maybe/api.cjs +160 -125
- package/_cjs/data/Maybe/api.cjs.map +1 -1
- package/_cjs/data/Maybe/constructors.cjs +2 -2
- package/_cjs/data/Maybe/constructors.cjs.map +1 -1
- package/_cjs/data/Maybe/definition.cjs.map +1 -1
- package/_cjs/data/Maybe/destructors.cjs +9 -7
- package/_cjs/data/Maybe/destructors.cjs.map +1 -1
- package/_cjs/data/Maybe/instances.cjs +11 -11
- package/_cjs/data/Maybe/instances.cjs.map +1 -1
- package/_cjs/data/Predicate/api.cjs +10 -8
- package/_cjs/data/Predicate/api.cjs.map +1 -1
- package/_cjs/data/Refinement/api.cjs +15 -9
- package/_cjs/data/Refinement/api.cjs.map +1 -1
- package/_cjs/data/Struct/api.cjs +62 -50
- package/_cjs/data/Struct/api.cjs.map +1 -1
- package/_cjs/data/Tag/constructors.cjs +3 -2
- package/_cjs/data/Tag/constructors.cjs.map +1 -1
- package/_cjs/data/Tag/definition.cjs +0 -3
- package/_cjs/data/Tag/definition.cjs.map +1 -1
- package/_cjs/data/These/api.cjs +188 -170
- package/_cjs/data/These/api.cjs.map +1 -1
- package/_cjs/data/These/constructors.cjs +1 -1
- package/_cjs/data/These/constructors.cjs.map +1 -1
- package/_cjs/data/These/destructors.cjs +39 -35
- package/_cjs/data/These/destructors.cjs.map +1 -1
- package/_cjs/data/These/instances.cjs +1 -1
- package/_cjs/data/These/instances.cjs.map +1 -1
- package/_cjs/data/Trace/api.cjs +7 -5
- package/_cjs/data/Trace/api.cjs.map +1 -1
- package/_cjs/data/Zipped.cjs.map +1 -1
- package/_cjs/data/function/api.cjs +6 -4
- package/_cjs/data/function/api.cjs.map +1 -1
- package/_cjs/data/function/pipe.cjs +9 -0
- package/_cjs/data/function/pipe.cjs.map +1 -1
- package/_cjs/data/string/api.cjs +53 -96
- package/_cjs/data/string/api.cjs.map +1 -1
- package/_cjs/global/api.cjs +4 -2
- package/_cjs/global/api.cjs.map +1 -1
- package/_cjs/internal/AtomicBoolean.cjs.map +1 -1
- package/_cjs/internal/AtomicNumber.cjs.map +1 -1
- package/_cjs/internal/AtomicReference.cjs.map +1 -1
- package/_cjs/internal/Stack.cjs +2 -2
- package/_cjs/internal/Stack.cjs.map +1 -1
- package/_cjs/optics/At/api.cjs +1 -1
- package/_cjs/optics/At/api.cjs.map +1 -1
- package/_cjs/optics/At/definition.cjs +2 -2
- package/_cjs/optics/At/definition.cjs.map +1 -1
- package/_cjs/optics/Fold/definition.cjs +3 -4
- package/_cjs/optics/Fold/definition.cjs.map +1 -1
- package/_cjs/optics/Getter/definition.cjs +2 -3
- package/_cjs/optics/Getter/definition.cjs.map +1 -1
- package/_cjs/optics/Index/api.cjs +4 -4
- package/_cjs/optics/Index/api.cjs.map +1 -1
- package/_cjs/optics/Index/definition.cjs +2 -2
- package/_cjs/optics/Index/definition.cjs.map +1 -1
- package/_cjs/optics/Iso/api.cjs +9 -7
- package/_cjs/optics/Iso/api.cjs.map +1 -1
- package/_cjs/optics/Iso/definition.cjs +12 -12
- package/_cjs/optics/Iso/definition.cjs.map +1 -1
- package/_cjs/optics/Lens/api.cjs +54 -44
- package/_cjs/optics/Lens/api.cjs.map +1 -1
- package/_cjs/optics/Lens/definition.cjs +10 -10
- package/_cjs/optics/Lens/definition.cjs.map +1 -1
- package/_cjs/optics/Optional/api/compose.cjs +9 -7
- package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
- package/_cjs/optics/Optional/definition.cjs +12 -13
- package/_cjs/optics/Optional/definition.cjs.map +1 -1
- package/_cjs/optics/Optional.cjs.map +1 -1
- package/_cjs/optics/Prism/api/compose.cjs +9 -7
- package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
- package/_cjs/optics/Prism/api/fromNullable.cjs +2 -2
- package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
- package/_cjs/optics/Prism/api/just.cjs +2 -2
- package/_cjs/optics/Prism/api/just.cjs.map +1 -1
- package/_cjs/optics/Prism/definition.cjs +9 -9
- package/_cjs/optics/Prism/definition.cjs.map +1 -1
- package/_cjs/optics/Prism.cjs.map +1 -1
- package/_cjs/optics/Setter/definition.cjs +8 -13
- package/_cjs/optics/Setter/definition.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/compose.cjs +8 -6
- package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/fromTraversable.cjs +2 -2
- package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
- package/_cjs/optics/Traversal/definition.cjs +12 -12
- package/_cjs/optics/Traversal/definition.cjs.map +1 -1
- package/_cjs/optics/Traversal.cjs.map +1 -1
- package/_cjs/typeclass/Align.cjs.map +1 -1
- package/_cjs/typeclass/Alt.cjs.map +1 -1
- package/_cjs/typeclass/Applicative.cjs.map +1 -1
- package/_cjs/typeclass/ApplicativeExcept.cjs +5 -10
- package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
- package/_cjs/typeclass/Apply.cjs +8 -8
- package/_cjs/typeclass/Apply.cjs.map +1 -1
- package/_cjs/typeclass/Chain.cjs +4 -4
- package/_cjs/typeclass/Chain.cjs.map +1 -1
- package/_cjs/typeclass/Eq/definition.cjs.map +1 -1
- package/_cjs/typeclass/Eq/derivations.cjs.map +1 -1
- package/_cjs/typeclass/Equatable/api.cjs.map +1 -1
- package/_cjs/typeclass/Equatable/definition.cjs.map +1 -1
- package/_cjs/typeclass/Equatable/fast-equals.cjs.map +1 -1
- package/_cjs/typeclass/Filterable.cjs.map +1 -1
- package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
- package/_cjs/typeclass/Foldable.cjs +1 -1
- package/_cjs/typeclass/Foldable.cjs.map +1 -1
- package/_cjs/typeclass/FoldableWithIndex.cjs +1 -1
- package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
- package/_cjs/typeclass/Functor.cjs.map +1 -1
- package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
- package/_cjs/typeclass/Guard/api.cjs +18 -10
- package/_cjs/typeclass/Guard/api.cjs.map +1 -1
- package/_cjs/typeclass/Guard/definition.cjs.map +1 -1
- package/_cjs/typeclass/Guard/derivations.cjs.map +1 -1
- package/_cjs/typeclass/Has.cjs +7 -5
- package/_cjs/typeclass/Has.cjs.map +1 -1
- package/_cjs/typeclass/HashEq.cjs.map +1 -1
- package/_cjs/typeclass/Hashable/definition.cjs.map +1 -1
- package/_cjs/typeclass/Hashable/hash.cjs.map +1 -1
- package/_cjs/typeclass/MonadExcept.cjs +1 -1
- package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
- package/_cjs/typeclass/Ord/api/contramap.cjs +7 -5
- package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
- package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
- package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
- package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
- package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
- package/_cjs/typeclass/Ordering.cjs.map +1 -1
- package/_cjs/typeclass/Semialign.cjs +7 -7
- package/_cjs/typeclass/Semialign.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
- package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
- package/_cjs/typeclass/Showable/definition.cjs.map +1 -1
- package/_cjs/typeclass/Showable/show.cjs +107 -107
- package/_cjs/typeclass/Showable/show.cjs.map +1 -1
- package/_cjs/typeclass/Showable/styles.cjs.map +1 -1
- package/_cjs/typeclass/Showable/util.cjs +1 -1
- package/_cjs/typeclass/Showable/util.cjs.map +1 -1
- package/_cjs/typeclass/Traversable.cjs +1 -2
- package/_cjs/typeclass/Traversable.cjs.map +1 -1
- package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
- package/_cjs/typeclass/Witherable.cjs +3 -1
- package/_cjs/typeclass/Witherable.cjs.map +1 -1
- package/_cjs/typeclass/WitherableWithIndex.cjs +3 -1
- package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
- package/_cjs/util/AnsiFormat.cjs +11 -11
- package/_cjs/util/AnsiFormat.cjs.map +1 -1
- package/_cjs/util/PCGRandom.cjs.map +1 -1
- package/_cjs/util/assert.cjs.map +1 -1
- package/_cjs/util/pattern.cjs.map +1 -1
- package/_cjs/util/predicates.cjs.map +1 -1
- package/_cjs/util/rand/Random.cjs.map +1 -1
- package/_cjs/util/rand/distribution/UniformArrayIntDistribution.cjs.map +1 -1
- package/_cjs/util/rand/distribution/UniformBigIntDistribution.cjs.map +1 -1
- package/_cjs/util/rand/distribution/UniformIntDistribution.cjs.map +1 -1
- package/_cjs/util/rand/distribution/internals/ArrayInt.cjs.map +1 -1
- package/_cjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.cjs.map +1 -1
- package/_cjs/util/rand/distribution/internals/UniformIntDistributionInternal.cjs.map +1 -1
- package/_cjs/util/rand/generator/MersenneTwister.cjs.map +1 -1
- package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
- package/_cjs/util/rand.cjs.map +1 -1
- package/_mjs/collection/Iterable/api/traverseConc.mjs +5 -5
- package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
- package/_mjs/collection/Iterable/api.mjs +465 -411
- package/_mjs/collection/Iterable/api.mjs.map +1 -1
- package/_mjs/collection/Iterable/constructors.mjs +5 -5
- package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
- package/_mjs/collection/compat/Array/api.mjs +16 -12
- package/_mjs/collection/compat/Array/api.mjs.map +1 -1
- package/_mjs/collection/compat/Array/derivations.mjs +35 -19
- package/_mjs/collection/compat/Array/derivations.mjs.map +1 -1
- package/_mjs/collection/compat/ArrayLike/api.mjs +1 -1
- package/_mjs/collection/compat/ArrayLike/api.mjs.map +1 -1
- package/_mjs/collection/compat/Record/instances.mjs +34 -3
- package/_mjs/collection/compat/Record/instances.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/api/makeBy.mjs +1 -1
- package/_mjs/collection/immutable/Conc/api/makeBy.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/api.mjs +795 -697
- package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs +53 -51
- package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/derivations.mjs +10 -2
- package/_mjs/collection/immutable/Conc/derivations.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc.mjs.map +1 -1
- package/_mjs/collection/immutable/Dictionary/api.mjs +47 -35
- package/_mjs/collection/immutable/Dictionary/api.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/api.mjs +295 -217
- package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/definition.mjs +1 -1
- package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/HashMap/internal.mjs.map +1 -1
- package/_mjs/collection/immutable/HashSet/api.mjs +206 -168
- package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
- package/_mjs/collection/immutable/HashSet/definition.mjs +1 -1
- package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs +5 -3
- package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +5 -3
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +5 -3
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +13 -11
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/api.mjs +816 -629
- package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/derivations.mjs +9 -1
- package/_mjs/collection/immutable/ImmutableArray/derivations.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray/instances.mjs +34 -34
- package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +301 -239
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs +12 -4
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +2 -2
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +1 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +13 -13
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
- package/_mjs/collection/immutable/List/api/foldLeft.mjs +11 -9
- package/_mjs/collection/immutable/List/api/foldLeft.mjs.map +1 -1
- package/_mjs/collection/immutable/List/api.mjs +157 -133
- package/_mjs/collection/immutable/List/api.mjs.map +1 -1
- package/_mjs/collection/immutable/List.mjs.map +1 -1
- package/_mjs/collection/immutable/Queue/api.mjs +55 -39
- package/_mjs/collection/immutable/Queue/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Queue/definition.mjs +1 -1
- package/_mjs/collection/immutable/Queue/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/RoseTree/api.mjs +50 -36
- package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -1
- package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/SortedMap/api.mjs +398 -358
- package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/api.mjs +650 -538
- package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/definition.mjs +16 -14
- package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Vector/internal.mjs +40 -39
- package/_mjs/collection/immutable/Vector/internal.mjs.map +1 -1
- package/_mjs/collection/mutable/HashMap.mjs +3 -5
- package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
- package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
- package/_mjs/collection/mutable/ListBuffer.mjs +2 -2
- package/_mjs/collection/mutable/ListBuffer.mjs.map +1 -1
- package/_mjs/collection/mutable/internal.mjs +0 -2
- package/_mjs/collection/mutable/internal.mjs.map +1 -1
- package/_mjs/collection/weak/IterableWeakMap.mjs +7 -7
- package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
- package/_mjs/collection/weak/IterableWeakSet.mjs +7 -7
- package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
- package/_mjs/control/Eval/api.mjs +40 -28
- package/_mjs/control/Eval/api.mjs.map +1 -1
- package/_mjs/control/Eval/instance.mjs +5 -5
- package/_mjs/control/Eval/instance.mjs.map +1 -1
- package/_mjs/control/Eval/run.mjs +1 -1
- package/_mjs/control/Eval/run.mjs.map +1 -1
- package/_mjs/control/Z/api.mjs +196 -128
- package/_mjs/control/Z/api.mjs.map +1 -1
- package/_mjs/control/Z/instances.mjs +4 -4
- package/_mjs/control/Z/instances.mjs.map +1 -1
- package/_mjs/control/Z/runtime.mjs +244 -234
- package/_mjs/control/Z/runtime.mjs.map +1 -1
- package/_mjs/data/Branded/definition.mjs.map +1 -1
- package/_mjs/data/Branded/derivations.mjs +3 -3
- package/_mjs/data/Branded/derivations.mjs.map +1 -1
- package/_mjs/data/CaseClass.mjs.map +1 -1
- package/_mjs/data/Cause/api/fold.mjs +19 -17
- package/_mjs/data/Cause/api/fold.mjs.map +1 -1
- package/_mjs/data/Cause/api/isEmpty.mjs +1 -1
- package/_mjs/data/Cause/api/isEmpty.mjs.map +1 -1
- package/_mjs/data/Cause/api/linearize.mjs +8 -8
- package/_mjs/data/Cause/api/linearize.mjs.map +1 -1
- package/_mjs/data/Cause/api/prettyPrint.mjs +1 -1
- package/_mjs/data/Cause/api/prettyPrint.mjs.map +1 -1
- package/_mjs/data/Cause/api.mjs +149 -129
- package/_mjs/data/Cause/api.mjs.map +1 -1
- package/_mjs/data/Cause/definition.mjs +18 -18
- package/_mjs/data/Cause/definition.mjs.map +1 -1
- package/_mjs/data/Cause.mjs.map +1 -1
- package/_mjs/data/Const/api.mjs +6 -4
- package/_mjs/data/Const/api.mjs.map +1 -1
- package/_mjs/data/Const/instances.mjs +4 -4
- package/_mjs/data/Const/instances.mjs.map +1 -1
- package/_mjs/data/Datum/api.mjs +220 -179
- package/_mjs/data/Datum/api.mjs.map +1 -1
- package/_mjs/data/Datum/definition.mjs.map +1 -1
- package/_mjs/data/DatumEither/api.mjs +163 -132
- package/_mjs/data/DatumEither/api.mjs.map +1 -1
- package/_mjs/data/DecodeError/definition.mjs +14 -14
- package/_mjs/data/DecodeError/definition.mjs.map +1 -1
- package/_mjs/data/Decoder/api.mjs +9 -7
- package/_mjs/data/Decoder/api.mjs.map +1 -1
- package/_mjs/data/Duration/api.mjs +16 -10
- package/_mjs/data/Duration/api.mjs.map +1 -1
- package/_mjs/data/Either/api/align.mjs +8 -2
- package/_mjs/data/Either/api/align.mjs.map +1 -1
- package/_mjs/data/Either/api/alignWith.mjs +13 -11
- package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
- package/_mjs/data/Either/api.mjs +175 -136
- package/_mjs/data/Either/api.mjs.map +1 -1
- package/_mjs/data/Either/constructors.mjs +7 -5
- package/_mjs/data/Either/constructors.mjs.map +1 -1
- package/_mjs/data/Either/destructors.mjs +15 -13
- package/_mjs/data/Either/destructors.mjs.map +1 -1
- package/_mjs/data/Either/instances.mjs +9 -9
- package/_mjs/data/Either/instances.mjs.map +1 -1
- package/_mjs/data/EitherT/api.mjs +8 -8
- package/_mjs/data/EitherT/api.mjs.map +1 -1
- package/_mjs/data/Encoder/api.mjs +102 -0
- package/_mjs/data/Encoder/api.mjs.map +1 -0
- package/_mjs/data/Encoder/definition.mjs +15 -0
- package/_mjs/data/Encoder/definition.mjs.map +1 -0
- package/_mjs/data/Encoder.mjs +4 -0
- package/_mjs/data/Encoder.mjs.map +1 -0
- package/_mjs/data/Environment/api.mjs +45 -33
- package/_mjs/data/Environment/api.mjs.map +1 -1
- package/_mjs/data/EnvironmentPatch.mjs +17 -13
- package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
- package/_mjs/data/ExecutionStrategy.mjs +19 -27
- package/_mjs/data/ExecutionStrategy.mjs.map +1 -1
- package/_mjs/data/Exit/api.mjs +140 -108
- package/_mjs/data/Exit/api.mjs.map +1 -1
- package/_mjs/data/Exit/constructors.mjs +3 -3
- package/_mjs/data/Exit/constructors.mjs.map +1 -1
- package/_mjs/data/FiberId/api.mjs +22 -20
- package/_mjs/data/FiberId/api.mjs.map +1 -1
- package/_mjs/data/FiberId/constructors.mjs.map +1 -1
- package/_mjs/data/Identity/api.mjs +21 -13
- package/_mjs/data/Identity/api.mjs.map +1 -1
- package/_mjs/data/Identity/instances.mjs +4 -4
- package/_mjs/data/Identity/instances.mjs.map +1 -1
- package/_mjs/data/Interval.mjs +38 -28
- package/_mjs/data/Interval.mjs.map +1 -1
- package/_mjs/data/Intervals.mjs +35 -27
- package/_mjs/data/Intervals.mjs.map +1 -1
- package/_mjs/data/Maybe/api.mjs +141 -106
- package/_mjs/data/Maybe/api.mjs.map +1 -1
- package/_mjs/data/Maybe/constructors.mjs +1 -1
- package/_mjs/data/Maybe/constructors.mjs.map +1 -1
- package/_mjs/data/Maybe/definition.mjs.map +1 -1
- package/_mjs/data/Maybe/destructors.mjs +8 -6
- package/_mjs/data/Maybe/destructors.mjs.map +1 -1
- package/_mjs/data/Maybe/instances.mjs +12 -12
- package/_mjs/data/Maybe/instances.mjs.map +1 -1
- package/_mjs/data/Predicate/api.mjs +10 -8
- package/_mjs/data/Predicate/api.mjs.map +1 -1
- package/_mjs/data/Refinement/api.mjs +15 -9
- package/_mjs/data/Refinement/api.mjs.map +1 -1
- package/_mjs/data/Struct/api.mjs +56 -44
- package/_mjs/data/Struct/api.mjs.map +1 -1
- package/_mjs/data/Tag/constructors.mjs +3 -2
- package/_mjs/data/Tag/constructors.mjs.map +1 -1
- package/_mjs/data/Tag/definition.mjs +0 -2
- package/_mjs/data/Tag/definition.mjs.map +1 -1
- package/_mjs/data/These/api.mjs +187 -169
- package/_mjs/data/These/api.mjs.map +1 -1
- package/_mjs/data/These/constructors.mjs +1 -1
- package/_mjs/data/These/constructors.mjs.map +1 -1
- package/_mjs/data/These/destructors.mjs +35 -31
- package/_mjs/data/These/destructors.mjs.map +1 -1
- package/_mjs/data/These/instances.mjs +1 -1
- package/_mjs/data/These/instances.mjs.map +1 -1
- package/_mjs/data/Trace/api.mjs +6 -4
- package/_mjs/data/Trace/api.mjs.map +1 -1
- package/_mjs/data/Zipped.mjs.map +1 -1
- package/_mjs/data/function/api.mjs +5 -3
- package/_mjs/data/function/api.mjs.map +1 -1
- package/_mjs/data/function/pipe.mjs +7 -0
- package/_mjs/data/function/pipe.mjs.map +1 -1
- package/_mjs/data/string/api.mjs +46 -66
- package/_mjs/data/string/api.mjs.map +1 -1
- package/_mjs/global/api.mjs +4 -2
- package/_mjs/global/api.mjs.map +1 -1
- package/_mjs/internal/AtomicBoolean.mjs.map +1 -1
- package/_mjs/internal/AtomicNumber.mjs.map +1 -1
- package/_mjs/internal/AtomicReference.mjs.map +1 -1
- package/_mjs/internal/Stack.mjs +1 -1
- package/_mjs/internal/Stack.mjs.map +1 -1
- package/_mjs/optics/At/api.mjs +1 -1
- package/_mjs/optics/At/api.mjs.map +1 -1
- package/_mjs/optics/At/definition.mjs +2 -2
- package/_mjs/optics/At/definition.mjs.map +1 -1
- package/_mjs/optics/Fold/definition.mjs +2 -3
- package/_mjs/optics/Fold/definition.mjs.map +1 -1
- package/_mjs/optics/Getter/definition.mjs +1 -2
- package/_mjs/optics/Getter/definition.mjs.map +1 -1
- package/_mjs/optics/Index/api.mjs +4 -4
- package/_mjs/optics/Index/api.mjs.map +1 -1
- package/_mjs/optics/Index/definition.mjs +1 -1
- package/_mjs/optics/Index/definition.mjs.map +1 -1
- package/_mjs/optics/Iso/api.mjs +8 -6
- package/_mjs/optics/Iso/api.mjs.map +1 -1
- package/_mjs/optics/Iso/definition.mjs +9 -9
- package/_mjs/optics/Iso/definition.mjs.map +1 -1
- package/_mjs/optics/Lens/api.mjs +49 -39
- package/_mjs/optics/Lens/api.mjs.map +1 -1
- package/_mjs/optics/Lens/definition.mjs +7 -7
- package/_mjs/optics/Lens/definition.mjs.map +1 -1
- package/_mjs/optics/Optional/api/compose.mjs +8 -6
- package/_mjs/optics/Optional/api/compose.mjs.map +1 -1
- package/_mjs/optics/Optional/definition.mjs +8 -10
- package/_mjs/optics/Optional/definition.mjs.map +1 -1
- package/_mjs/optics/Optional.mjs.map +1 -1
- package/_mjs/optics/Prism/api/compose.mjs +8 -6
- package/_mjs/optics/Prism/api/compose.mjs.map +1 -1
- package/_mjs/optics/Prism/api/fromNullable.mjs +2 -2
- package/_mjs/optics/Prism/api/fromNullable.mjs.map +1 -1
- package/_mjs/optics/Prism/api/just.mjs +2 -2
- package/_mjs/optics/Prism/api/just.mjs.map +1 -1
- package/_mjs/optics/Prism/definition.mjs +6 -6
- package/_mjs/optics/Prism/definition.mjs.map +1 -1
- package/_mjs/optics/Prism.mjs.map +1 -1
- package/_mjs/optics/Setter/definition.mjs +5 -10
- package/_mjs/optics/Setter/definition.mjs.map +1 -1
- package/_mjs/optics/Traversal/api/compose.mjs +7 -5
- package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
- package/_mjs/optics/Traversal/api/fromTraversable.mjs +2 -2
- package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
- package/_mjs/optics/Traversal/definition.mjs +9 -9
- package/_mjs/optics/Traversal/definition.mjs.map +1 -1
- package/_mjs/optics/Traversal.mjs.map +1 -1
- package/_mjs/typeclass/Align.mjs.map +1 -1
- package/_mjs/typeclass/Alt.mjs.map +1 -1
- package/_mjs/typeclass/Applicative.mjs.map +1 -1
- package/_mjs/typeclass/ApplicativeExcept.mjs +6 -10
- package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
- package/_mjs/typeclass/Apply.mjs +9 -9
- package/_mjs/typeclass/Apply.mjs.map +1 -1
- package/_mjs/typeclass/Chain.mjs +5 -5
- package/_mjs/typeclass/Chain.mjs.map +1 -1
- package/_mjs/typeclass/Eq/definition.mjs.map +1 -1
- package/_mjs/typeclass/Eq/derivations.mjs.map +1 -1
- package/_mjs/typeclass/Equatable/api.mjs.map +1 -1
- package/_mjs/typeclass/Equatable/definition.mjs.map +1 -1
- package/_mjs/typeclass/Equatable/fast-equals.mjs.map +1 -1
- package/_mjs/typeclass/Filterable.mjs.map +1 -1
- package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
- package/_mjs/typeclass/Foldable.mjs +1 -1
- package/_mjs/typeclass/Foldable.mjs.map +1 -1
- package/_mjs/typeclass/FoldableWithIndex.mjs +1 -1
- package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
- package/_mjs/typeclass/Functor.mjs.map +1 -1
- package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
- package/_mjs/typeclass/Guard/api.mjs +18 -10
- package/_mjs/typeclass/Guard/api.mjs.map +1 -1
- package/_mjs/typeclass/Guard/definition.mjs.map +1 -1
- package/_mjs/typeclass/Guard/derivations.mjs.map +1 -1
- package/_mjs/typeclass/Has.mjs +7 -5
- package/_mjs/typeclass/Has.mjs.map +1 -1
- package/_mjs/typeclass/HashEq.mjs.map +1 -1
- package/_mjs/typeclass/Hashable/definition.mjs.map +1 -1
- package/_mjs/typeclass/Hashable/hash.mjs.map +1 -1
- package/_mjs/typeclass/MonadExcept.mjs +1 -1
- package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
- package/_mjs/typeclass/Ord/api/contramap.mjs +7 -5
- package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
- package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
- package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
- package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
- package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
- package/_mjs/typeclass/Ordering.mjs.map +1 -1
- package/_mjs/typeclass/Semialign.mjs +7 -7
- package/_mjs/typeclass/Semialign.mjs.map +1 -1
- package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
- package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
- package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -1
- package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
- package/_mjs/typeclass/Showable/definition.mjs.map +1 -1
- package/_mjs/typeclass/Showable/show.mjs +107 -107
- package/_mjs/typeclass/Showable/show.mjs.map +1 -1
- package/_mjs/typeclass/Showable/styles.mjs.map +1 -1
- package/_mjs/typeclass/Showable/util.mjs +1 -1
- package/_mjs/typeclass/Showable/util.mjs.map +1 -1
- package/_mjs/typeclass/Traversable.mjs +1 -2
- package/_mjs/typeclass/Traversable.mjs.map +1 -1
- package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
- package/_mjs/typeclass/Witherable.mjs +2 -1
- package/_mjs/typeclass/Witherable.mjs.map +1 -1
- package/_mjs/typeclass/WitherableWithIndex.mjs +2 -1
- package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
- package/_mjs/util/AnsiFormat.mjs +11 -11
- package/_mjs/util/AnsiFormat.mjs.map +1 -1
- package/_mjs/util/PCGRandom.mjs.map +1 -1
- package/_mjs/util/assert.mjs.map +1 -1
- package/_mjs/util/pattern.mjs.map +1 -1
- package/_mjs/util/predicates.mjs.map +1 -1
- package/_mjs/util/rand/Random.mjs.map +1 -1
- package/_mjs/util/rand/distribution/UniformArrayIntDistribution.mjs.map +1 -1
- package/_mjs/util/rand/distribution/UniformBigIntDistribution.mjs.map +1 -1
- package/_mjs/util/rand/distribution/UniformIntDistribution.mjs.map +1 -1
- package/_mjs/util/rand/distribution/internals/ArrayInt.mjs.map +1 -1
- package/_mjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.mjs.map +1 -1
- package/_mjs/util/rand/distribution/internals/UniformIntDistributionInternal.mjs.map +1 -1
- package/_mjs/util/rand/generator/MersenneTwister.mjs.map +1 -1
- package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
- package/_mjs/util/rand.mjs.map +1 -1
- package/_src/collection/Iterable/api/traverseConc.ts +3 -3
- package/_src/collection/Iterable/api.ts +445 -408
- package/_src/collection/Iterable/constructors.ts +1 -1
- package/_src/collection/compat/Array/api.ts +16 -13
- package/_src/collection/compat/Array/derivations.ts +27 -1
- package/_src/collection/compat/Record/instances.ts +51 -2
- package/_src/collection/immutable/Conc/api.ts +716 -607
- package/_src/collection/immutable/Conc/definition.ts +60 -68
- package/_src/collection/immutable/Conc/derivations.ts +13 -0
- package/_src/collection/immutable/Conc.ts +0 -1
- package/_src/collection/immutable/Dictionary/api.ts +44 -32
- package/_src/collection/immutable/HashMap/api.ts +338 -224
- package/_src/collection/immutable/HashMap/internal.ts +3 -7
- package/_src/collection/immutable/HashSet/api.ts +193 -158
- package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +5 -3
- package/_src/collection/immutable/ImmutableArray/api/slice.ts +5 -3
- package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +5 -3
- package/_src/collection/immutable/ImmutableArray/api/splitWhere.ts +13 -14
- package/_src/collection/immutable/ImmutableArray/api.ts +870 -722
- package/_src/collection/immutable/ImmutableArray/derivations.ts +13 -0
- package/_src/collection/immutable/ImmutableArray/instances.ts +54 -73
- package/_src/collection/immutable/ImmutableArray.ts +0 -1
- package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +311 -273
- package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +19 -4
- package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -1
- package/_src/collection/immutable/ImmutableNonEmptyArray/derivations.ts +13 -0
- package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +22 -23
- package/_src/collection/immutable/List/api/foldLeft.ts +11 -9
- package/_src/collection/immutable/List/api.ts +147 -133
- package/_src/collection/immutable/List.ts +0 -1
- package/_src/collection/immutable/Queue/api.ts +53 -37
- package/_src/collection/immutable/Queue/definition.ts +0 -1
- package/_src/collection/immutable/RoseTree/api.ts +38 -32
- package/_src/collection/immutable/RoseTree/definition.ts +2 -0
- package/_src/collection/immutable/SortedMap/api.ts +364 -332
- package/_src/collection/immutable/Vector/api.ts +608 -482
- package/_src/collection/immutable/Vector/definition.ts +11 -12
- package/_src/collection/immutable/Vector/internal.ts +37 -38
- package/_src/collection/mutable/HashMap.ts +1 -4
- package/_src/collection/mutable/HashSet.ts +1 -2
- package/_src/collection/mutable/ListBuffer.ts +1 -1
- package/_src/collection/mutable/internal.ts +0 -2
- package/_src/collection/weak/IterableWeakMap.ts +11 -7
- package/_src/collection/weak/IterableWeakSet.ts +10 -5
- package/_src/control/Eval/api.ts +35 -19
- package/_src/control/Eval/instance.ts +5 -5
- package/_src/control/Z/api.ts +191 -208
- package/_src/control/Z/instances.ts +4 -5
- package/_src/control/Z/runtime.ts +190 -189
- package/_src/data/Branded/definition.ts +11 -12
- package/_src/data/Branded/derivations.ts +2 -2
- package/_src/data/CaseClass.ts +4 -1
- package/_src/data/Cause/api/fold.ts +13 -14
- package/_src/data/Cause/api.ts +125 -105
- package/_src/data/Cause.ts +0 -1
- package/_src/data/Const/api.ts +6 -4
- package/_src/data/Const/instances.ts +3 -3
- package/_src/data/Datum/api.ts +229 -197
- package/_src/data/Datum/definition.ts +2 -5
- package/_src/data/DatumEither/api.ts +208 -193
- package/_src/data/Decoder/api.ts +5 -3
- package/_src/data/Duration/api.ts +19 -15
- package/_src/data/Either/api/align.ts +7 -2
- package/_src/data/Either/api/alignWith.ts +13 -15
- package/_src/data/Either/api.ts +141 -119
- package/_src/data/Either/constructors.ts +12 -10
- package/_src/data/Either/destructors.ts +11 -9
- package/_src/data/Either/instances.ts +24 -20
- package/_src/data/EitherT/api.ts +43 -49
- package/_src/data/Encoder/api.ts +123 -0
- package/_src/data/Encoder/definition.ts +12 -0
- package/_src/data/Encoder.ts +4 -0
- package/_src/data/Environment/api.ts +52 -44
- package/_src/data/EnvironmentPatch.ts +10 -9
- package/_src/data/ExecutionStrategy.ts +14 -24
- package/_src/data/Exit/api.ts +104 -73
- package/_src/data/Exit/constructors.ts +2 -2
- package/_src/data/FiberId/api.ts +19 -17
- package/_src/data/FiberId/constructors.ts +1 -2
- package/_src/data/Identity/api.ts +20 -12
- package/_src/data/Identity/instances.ts +4 -7
- package/_src/data/Interval.ts +39 -29
- package/_src/data/Intervals.ts +31 -23
- package/_src/data/Maybe/api.ts +112 -79
- package/_src/data/Maybe/constructors.ts +3 -3
- package/_src/data/Maybe/definition.ts +11 -1
- package/_src/data/Maybe/destructors.ts +6 -4
- package/_src/data/Maybe/instances.ts +10 -21
- package/_src/data/Predicate/api.ts +14 -8
- package/_src/data/Refinement/api.ts +19 -13
- package/_src/data/Struct/api.ts +75 -55
- package/_src/data/Tag/constructors.ts +1 -2
- package/_src/data/Tag/definition.ts +0 -1
- package/_src/data/These/api.ts +114 -114
- package/_src/data/These/destructors.ts +23 -24
- package/_src/data/Trace/api.ts +5 -3
- package/_src/data/Zipped.ts +3 -4
- package/_src/data/function/api.ts +6 -7
- package/_src/data/function/pipe.ts +9 -1
- package/_src/data/string/api.ts +40 -60
- package/_src/data.ts +1 -0
- package/_src/global/api.ts +7 -12
- package/_src/global.ts +4 -0
- package/_src/internal/AtomicBoolean.ts +0 -1
- package/_src/internal/AtomicNumber.ts +0 -7
- package/_src/internal/AtomicReference.ts +0 -4
- package/_src/internal/Stack.ts +1 -7
- package/_src/optics/At/definition.ts +5 -3
- package/_src/optics/Fold/definition.ts +3 -10
- package/_src/optics/Getter/definition.ts +1 -2
- package/_src/optics/Index/definition.ts +1 -1
- package/_src/optics/Iso/api.ts +8 -6
- package/_src/optics/Iso/definition.ts +3 -3
- package/_src/optics/Lens/api.ts +44 -42
- package/_src/optics/Lens/definition.ts +5 -5
- package/_src/optics/Optional/api/compose.ts +9 -9
- package/_src/optics/Optional/definition.ts +9 -16
- package/_src/optics/Optional.ts +0 -1
- package/_src/optics/Prism/api/compose.ts +9 -6
- package/_src/optics/Prism/definition.ts +3 -3
- package/_src/optics/Prism.ts +0 -1
- package/_src/optics/Setter/definition.ts +3 -23
- package/_src/optics/Traversal/api/compose.ts +7 -8
- package/_src/optics/Traversal/api/fromTraversable.ts +1 -1
- package/_src/optics/Traversal/definition.ts +10 -15
- package/_src/optics/Traversal.ts +0 -1
- package/_src/typeclass/Align.ts +0 -3
- package/_src/typeclass/Alt.ts +2 -1
- package/_src/typeclass/Applicative.ts +0 -1
- package/_src/typeclass/ApplicativeExcept.ts +15 -10
- package/_src/typeclass/Apply.ts +30 -33
- package/_src/typeclass/Chain.ts +9 -12
- package/_src/typeclass/Eq/definition.ts +0 -3
- package/_src/typeclass/Eq/derivations.ts +0 -2
- package/_src/typeclass/Equatable/api.ts +0 -2
- package/_src/typeclass/Equatable/definition.ts +0 -4
- package/_src/typeclass/Equatable/fast-equals.ts +11 -93
- package/_src/typeclass/Filterable.ts +19 -13
- package/_src/typeclass/FilterableWithIndex.ts +19 -13
- package/_src/typeclass/Foldable.ts +7 -10
- package/_src/typeclass/FoldableWithIndex.ts +7 -10
- package/_src/typeclass/Functor.ts +6 -4
- package/_src/typeclass/FunctorWithIndex.ts +3 -2
- package/_src/typeclass/Guard/api.ts +21 -16
- package/_src/typeclass/Guard/definition.ts +0 -3
- package/_src/typeclass/Guard/derivations.ts +5 -6
- package/_src/typeclass/Has.ts +6 -4
- package/_src/typeclass/HashEq.ts +0 -7
- package/_src/typeclass/Hashable/definition.ts +0 -4
- package/_src/typeclass/Hashable/hash.ts +0 -26
- package/_src/typeclass/MonadExcept.ts +1 -1
- package/_src/typeclass/Ord/api/contramap.ts +7 -6
- package/_src/typeclass/Ord/api/max.ts +0 -1
- package/_src/typeclass/Ord/api/min.ts +0 -1
- package/_src/typeclass/Ord/definition.ts +0 -4
- package/_src/typeclass/Ord/instances.ts +0 -2
- package/_src/typeclass/Ordering.ts +2 -0
- package/_src/typeclass/Semialign.ts +43 -32
- package/_src/typeclass/Semigroup/api.ts +0 -2
- package/_src/typeclass/Semigroup/definition.ts +0 -4
- package/_src/typeclass/Semigroup/derivations.ts +0 -2
- package/_src/typeclass/Semimonoidal.ts +3 -2
- package/_src/typeclass/Showable/definition.ts +0 -6
- package/_src/typeclass/Showable/show.ts +1 -57
- package/_src/typeclass/Showable/styles.ts +0 -8
- package/_src/typeclass/Showable/util.ts +22 -57
- package/_src/typeclass/Traversable.ts +13 -18
- package/_src/typeclass/TraversableWithIndex.ts +5 -7
- package/_src/typeclass/Witherable.ts +21 -13
- package/_src/typeclass/WitherableWithIndex.ts +26 -17
- package/_src/typeclass/builtin/Symbol.ts +0 -1
- package/_src/types/extractions.ts +12 -3
- package/_src/types/utility.ts +3 -5
- package/_src/util/AnsiFormat.ts +0 -25
- package/_src/util/PCGRandom.ts +4 -9
- package/_src/util/assert.ts +1 -2
- package/_src/util/pattern.ts +91 -12
- package/_src/util/predicates.ts +3 -1
- package/_src/util/rand/Random.ts +12 -16
- package/_src/util/rand/distribution/Distribution.ts +0 -1
- package/_src/util/rand/distribution/UniformArrayIntDistribution.ts +0 -3
- package/_src/util/rand/distribution/UniformBigIntDistribution.ts +0 -5
- package/_src/util/rand/distribution/UniformIntDistribution.ts +0 -7
- package/_src/util/rand/distribution/internals/ArrayInt.ts +3 -13
- package/_src/util/rand/distribution/internals/UniformArrayIntDistributionInternal.ts +0 -3
- package/_src/util/rand/distribution/internals/UniformIntDistributionInternal.ts +0 -4
- package/_src/util/rand/generator/MersenneTwister.ts +6 -29
- package/_src/util/rand/generator/RandomGenerator.ts +0 -3
- package/_src/util/rand.ts +0 -2
- package/collection/Iterable/api/traverseConc.d.ts +2 -2
- package/collection/Iterable/api.d.ts +64 -64
- package/collection/Iterable/constructors.d.ts +1 -1
- package/collection/compat/Array/api.d.ts +6 -6
- package/collection/compat/Array/derivations.d.ts +11 -0
- package/collection/compat/Record/instances.d.ts +30 -6
- package/collection/immutable/Conc/api.d.ts +108 -105
- package/collection/immutable/Conc/definition.d.ts +2 -2
- package/collection/immutable/Conc/derivations.d.ts +6 -0
- package/collection/immutable/Dictionary/api.d.ts +12 -12
- package/collection/immutable/HashMap/api.d.ts +76 -70
- package/collection/immutable/HashSet/api.d.ts +45 -41
- package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +2 -2
- package/collection/immutable/ImmutableArray/api/slice.d.ts +2 -2
- package/collection/immutable/ImmutableArray/api/splitAt.d.ts +2 -2
- package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +3 -3
- package/collection/immutable/ImmutableArray/api.d.ts +206 -206
- package/collection/immutable/ImmutableArray/derivations.d.ts +6 -0
- package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +64 -63
- package/collection/immutable/ImmutableNonEmptyArray/derivations.d.ts +6 -0
- package/collection/immutable/List/api/foldLeft.d.ts +2 -2
- package/collection/immutable/List/api.d.ts +24 -24
- package/collection/immutable/Queue/api.d.ts +16 -16
- package/collection/immutable/RoseTree/api.d.ts +14 -14
- package/collection/immutable/SortedMap/api.d.ts +41 -41
- package/collection/immutable/Vector/api.d.ts +121 -117
- package/collection/immutable/Vector/definition.d.ts +2 -2
- package/collection/immutable/Vector/internal.d.ts +2 -2
- package/collection/mutable/ListBuffer.d.ts +1 -1
- package/control/Eval/api.d.ts +12 -12
- package/control/Z/api.d.ts +68 -68
- package/control/Z/runtime.d.ts +10 -10
- package/data/Branded/derivations.d.ts +2 -2
- package/data/Cause/api/fold.d.ts +3 -3
- package/data/Cause/api.d.ts +20 -20
- package/data/Const/api.d.ts +3 -3
- package/data/Datum/api.d.ts +43 -41
- package/data/DatumEither/api.d.ts +48 -46
- package/data/Decoder/api.d.ts +2 -2
- package/data/Duration/api.d.ts +7 -7
- package/data/Either/api/align.d.ts +5 -1
- package/data/Either/api/alignWith.d.ts +2 -2
- package/data/Either/api.d.ts +40 -46
- package/data/Either/constructors.d.ts +6 -6
- package/data/Either/destructors.d.ts +2 -2
- package/data/EitherT/api.d.ts +6 -6
- package/data/Encoder/api.d.ts +73 -0
- package/data/Encoder/definition.d.ts +12 -0
- package/data/Encoder.d.ts +2 -0
- package/data/Environment/api.d.ts +14 -14
- package/data/EnvironmentPatch.d.ts +4 -4
- package/data/ExecutionStrategy.d.ts +1 -6
- package/data/Exit/api.d.ts +32 -32
- package/data/Exit/constructors.d.ts +2 -2
- package/data/FiberId/api.d.ts +2 -2
- package/data/Identity/api.d.ts +8 -8
- package/data/Interval.d.ts +11 -11
- package/data/Intervals.d.ts +11 -11
- package/data/Maybe/api.d.ts +36 -37
- package/data/Maybe/constructors.d.ts +2 -2
- package/data/Maybe/definition.d.ts +7 -3
- package/data/Maybe/destructors.d.ts +2 -2
- package/data/Predicate/api.d.ts +5 -5
- package/data/Refinement/api.d.ts +9 -9
- package/data/Struct/api.d.ts +13 -23
- package/data/Tag/constructors.d.ts +1 -2
- package/data/Tag/definition.d.ts +0 -1
- package/data/These/api.d.ts +18 -22
- package/data/These/destructors.d.ts +4 -4
- package/data/Trace/api.d.ts +2 -2
- package/data/function/api.d.ts +3 -3
- package/data/function/pipe.d.ts +7 -1
- package/data/string/api.d.ts +9 -49
- package/data.d.ts +1 -0
- package/global/api.d.ts +3 -3
- package/global.d.ts +4 -0
- package/internal/Stack.d.ts +1 -1
- package/optics/At/definition.d.ts +1 -1
- package/optics/Fold/definition.d.ts +2 -6
- package/optics/Getter/definition.d.ts +1 -1
- package/optics/Index/definition.d.ts +1 -1
- package/optics/Iso/api.d.ts +2 -2
- package/optics/Iso/definition.d.ts +2 -2
- package/optics/Lens/api.d.ts +10 -10
- package/optics/Lens/definition.d.ts +4 -4
- package/optics/Optional/api/compose.d.ts +2 -2
- package/optics/Optional/definition.d.ts +4 -8
- package/optics/Prism/api/compose.d.ts +2 -2
- package/optics/Prism/definition.d.ts +2 -2
- package/optics/Setter/definition.d.ts +2 -14
- package/optics/Traversal/api/compose.d.ts +2 -2
- package/optics/Traversal/definition.d.ts +4 -4
- package/package.json +1 -1
- package/typeclass/Alt.d.ts +1 -1
- package/typeclass/ApplicativeExcept.d.ts +2 -6
- package/typeclass/Apply.d.ts +5 -5
- package/typeclass/Chain.d.ts +4 -4
- package/typeclass/Filterable.d.ts +6 -6
- package/typeclass/FilterableWithIndex.d.ts +6 -6
- package/typeclass/Foldable.d.ts +4 -4
- package/typeclass/FoldableWithIndex.d.ts +4 -4
- package/typeclass/Functor.d.ts +2 -2
- package/typeclass/FunctorWithIndex.d.ts +1 -1
- package/typeclass/Guard/api.d.ts +7 -7
- package/typeclass/Has.d.ts +3 -3
- package/typeclass/Ord/api/contramap.d.ts +2 -2
- package/typeclass/Semialign.d.ts +14 -14
- package/typeclass/Semimonoidal.d.ts +1 -1
- package/typeclass/Traversable.d.ts +4 -6
- package/typeclass/TraversableWithIndex.d.ts +2 -2
- package/typeclass/Witherable.d.ts +3 -3
- package/typeclass/WitherableWithIndex.d.ts +5 -5
- package/types/extractions.d.ts +10 -6
- package/util/assert.d.ts +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Concat, ConcF } from "@fncts/base/collection/immutable/Conc/definition";
|
|
2
2
|
import type { Eq } from "@fncts/base/typeclass";
|
|
3
|
+
import type * as P from "@fncts/base/typeclass";
|
|
3
4
|
|
|
4
5
|
import {
|
|
5
6
|
_Empty,
|
|
@@ -11,49 +12,53 @@ import {
|
|
|
11
12
|
Slice,
|
|
12
13
|
} from "@fncts/base/collection/immutable/Conc/definition";
|
|
13
14
|
import { EitherTag } from "@fncts/base/data/Either";
|
|
14
|
-
import { identity, tuple } from "@fncts/base/data/function";
|
|
15
|
+
import { identity, pipe, tuple } from "@fncts/base/data/function";
|
|
15
16
|
import { Stack } from "@fncts/base/internal/Stack";
|
|
16
|
-
import * as P from "@fncts/base/typeclass";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* @tsplus
|
|
19
|
+
* @tsplus pipeable fncts.Conc align
|
|
20
20
|
*/
|
|
21
|
-
export function
|
|
22
|
-
return self
|
|
21
|
+
export function align<B>(fb: Conc<B>) {
|
|
22
|
+
return <A>(self: Conc<A>): Conc<These<A, B>> => {
|
|
23
|
+
return self.alignWith(fb, identity);
|
|
24
|
+
};
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
|
-
* @tsplus
|
|
28
|
+
* @tsplus pipeable fncts.Conc alignWith
|
|
27
29
|
*/
|
|
28
|
-
export function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (minlen === maxlen) {
|
|
38
|
-
return out.result();
|
|
39
|
-
} else if (self.length > fb.length) {
|
|
40
|
-
for (let i = minlen; i < maxlen; i++) {
|
|
41
|
-
out.append(f(These.left(self.get(i))));
|
|
30
|
+
export function alignWith<A, B, C>(fb: Conc<B>, f: (_: These<A, B>) => C) {
|
|
31
|
+
return (self: Conc<A>): Conc<C> => {
|
|
32
|
+
concrete(self);
|
|
33
|
+
concrete(fb);
|
|
34
|
+
const out = builder<C>();
|
|
35
|
+
const minlen = Math.min(self.length, fb.length);
|
|
36
|
+
const maxlen = Math.max(self.length, fb.length);
|
|
37
|
+
for (let i = 0; i < minlen; i++) {
|
|
38
|
+
out.append(f(These.both(self.get(i), fb.get(i))));
|
|
42
39
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
if (minlen === maxlen) {
|
|
41
|
+
return out.result();
|
|
42
|
+
} else if (self.length > fb.length) {
|
|
43
|
+
for (let i = minlen; i < maxlen; i++) {
|
|
44
|
+
out.append(f(These.left(self.get(i))));
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
for (let i = minlen; i < maxlen; i++) {
|
|
48
|
+
out.append(f(These.right(fb.get(i))));
|
|
49
|
+
}
|
|
46
50
|
}
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
return out.result();
|
|
52
|
+
};
|
|
49
53
|
}
|
|
50
|
-
|
|
51
54
|
/**
|
|
52
|
-
* @tsplus
|
|
55
|
+
* @tsplus pipeable fncts.Conc append
|
|
53
56
|
*/
|
|
54
|
-
export function
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
export function append<A2>(a: A2) {
|
|
58
|
+
return <A1>(self: Conc<A1>): Conc<A1 | A2> => {
|
|
59
|
+
concrete(self);
|
|
60
|
+
return self.append(a);
|
|
61
|
+
};
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
export class ConcBuilder<A> {
|
|
@@ -75,22 +80,24 @@ export function builder<A>(): ConcBuilder<A> {
|
|
|
75
80
|
}
|
|
76
81
|
|
|
77
82
|
/**
|
|
78
|
-
* @tsplus
|
|
83
|
+
* @tsplus pipeable fncts.Conc flatMap
|
|
79
84
|
*/
|
|
80
|
-
export function
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
export function flatMap<A, B>(f: (a: A) => Conc<B>) {
|
|
86
|
+
return (ma: Conc<A>): Conc<B> => {
|
|
87
|
+
concrete(ma);
|
|
88
|
+
const iterator = ma.arrayIterator();
|
|
89
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
90
|
+
let out = Conc.empty<B>();
|
|
91
|
+
while (!(result = iterator.next()).done) {
|
|
92
|
+
const arr = result.value;
|
|
93
|
+
const length = arr.length;
|
|
94
|
+
for (let i = 0; i < length; i++) {
|
|
95
|
+
const a = arr[i]!;
|
|
96
|
+
out = out.concat(f(a));
|
|
97
|
+
}
|
|
91
98
|
}
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
return out;
|
|
100
|
+
};
|
|
94
101
|
}
|
|
95
102
|
|
|
96
103
|
/**
|
|
@@ -145,55 +152,60 @@ export function chainRecBreadthFirst<A, B>(a: A, f: (a: A) => Conc<Either<A, B>>
|
|
|
145
152
|
}
|
|
146
153
|
|
|
147
154
|
/**
|
|
148
|
-
* @tsplus
|
|
155
|
+
* @tsplus pipeable fncts.Conc chop
|
|
149
156
|
*/
|
|
150
|
-
export function
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
export function chop<A, B>(f: (as: Conc<A>) => readonly [B, Conc<A>]) {
|
|
158
|
+
return (self: Conc<A>): Conc<B> => {
|
|
159
|
+
const out = builder<B>();
|
|
160
|
+
let cs: Conc<A> = self;
|
|
161
|
+
while (cs.isNonEmpty) {
|
|
162
|
+
const [b, c] = f(cs);
|
|
163
|
+
out.append(b);
|
|
164
|
+
cs = c;
|
|
165
|
+
}
|
|
166
|
+
return out.result();
|
|
167
|
+
};
|
|
159
168
|
}
|
|
160
169
|
|
|
161
170
|
/**
|
|
162
|
-
* @tsplus
|
|
171
|
+
* @tsplus pipeable fncts.Conc chunksOf
|
|
163
172
|
*/
|
|
164
|
-
export function
|
|
165
|
-
return self
|
|
173
|
+
export function chunksOf(n: number) {
|
|
174
|
+
return <A>(self: Conc<A>): Conc<Conc<A>> => {
|
|
175
|
+
return self.chop((as) => as.splitAt(n));
|
|
176
|
+
};
|
|
166
177
|
}
|
|
167
178
|
|
|
168
179
|
/**
|
|
169
180
|
* Transforms all elements of the Conc for as long as the specified partial function is defined.
|
|
170
181
|
*
|
|
171
|
-
* @tsplus
|
|
172
|
-
*/
|
|
173
|
-
export function
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
182
|
+
* @tsplus pipeable fncts.Conc collectWhile
|
|
183
|
+
*/
|
|
184
|
+
export function collectWhile<A, B>(f: (a: A) => Maybe<B>) {
|
|
185
|
+
return (as: Conc<A>): Conc<B> => {
|
|
186
|
+
concrete(as);
|
|
187
|
+
switch (as._tag) {
|
|
188
|
+
case ConcTag.Singleton: {
|
|
189
|
+
return f(as.value).match(() => Conc.empty(), Conc.single);
|
|
190
|
+
}
|
|
191
|
+
case ConcTag.Chunk: {
|
|
192
|
+
const array = as.arrayLike();
|
|
193
|
+
let dest = Conc.empty<B>();
|
|
194
|
+
for (let i = 0; i < array.length; i++) {
|
|
195
|
+
const rhs = f(array[i]!);
|
|
196
|
+
if (rhs.isJust()) {
|
|
197
|
+
dest = dest.append(rhs.value);
|
|
198
|
+
} else {
|
|
199
|
+
return dest;
|
|
200
|
+
}
|
|
189
201
|
}
|
|
202
|
+
return dest;
|
|
203
|
+
}
|
|
204
|
+
default: {
|
|
205
|
+
return (as.materialize() as Conc<A>).collectWhile(f);
|
|
190
206
|
}
|
|
191
|
-
return dest;
|
|
192
|
-
}
|
|
193
|
-
default: {
|
|
194
|
-
return collectWhile_(as.materialize(), f);
|
|
195
207
|
}
|
|
196
|
-
}
|
|
208
|
+
};
|
|
197
209
|
}
|
|
198
210
|
|
|
199
211
|
/**
|
|
@@ -204,219 +216,241 @@ export function compact<A>(self: Conc<Maybe<A>>): Conc<A> {
|
|
|
204
216
|
}
|
|
205
217
|
|
|
206
218
|
/**
|
|
207
|
-
* @tsplus
|
|
219
|
+
* @tsplus pipeable fncts.Conc concat
|
|
208
220
|
*/
|
|
209
|
-
export function
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
221
|
+
export function concat<B>(that: Conc<B>) {
|
|
222
|
+
return <A>(self: Conc<A>): Conc<A | B> => {
|
|
223
|
+
concrete(self);
|
|
224
|
+
concrete(that);
|
|
225
|
+
return self.concat(that);
|
|
226
|
+
};
|
|
213
227
|
}
|
|
214
228
|
|
|
215
229
|
/**
|
|
216
|
-
* @tsplus
|
|
230
|
+
* @tsplus pipeable fncts.Conc elem
|
|
217
231
|
*/
|
|
218
|
-
export function
|
|
219
|
-
return self
|
|
232
|
+
export function elem<A>(a: A, /** @tsplus auto */ E: Eq<A>) {
|
|
233
|
+
return (self: Conc<A>): boolean => {
|
|
234
|
+
return self.exists((el) => E.equals(el, a));
|
|
235
|
+
};
|
|
220
236
|
}
|
|
221
237
|
|
|
222
238
|
/**
|
|
223
|
-
* @tsplus
|
|
239
|
+
* @tsplus pipeable fncts.Conc exists
|
|
224
240
|
*/
|
|
225
|
-
export function
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
241
|
+
export function exists<A>(predicate: Predicate<A>) {
|
|
242
|
+
return (as: Conc<A>): boolean => {
|
|
243
|
+
concrete(as);
|
|
244
|
+
const iterator = as.arrayIterator();
|
|
245
|
+
let exists = false;
|
|
246
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
247
|
+
while (!exists && !(result = iterator.next()).done) {
|
|
248
|
+
const array = result.value;
|
|
249
|
+
for (let i = 0; !exists && i < array.length; i++) {
|
|
250
|
+
exists = predicate(array[i]!);
|
|
251
|
+
}
|
|
234
252
|
}
|
|
235
|
-
|
|
236
|
-
|
|
253
|
+
return exists;
|
|
254
|
+
};
|
|
237
255
|
}
|
|
238
256
|
|
|
239
257
|
/**
|
|
240
|
-
* @tsplus
|
|
258
|
+
* @tsplus pipeable fncts.Conc drop
|
|
241
259
|
*/
|
|
242
|
-
export function
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
260
|
+
export function drop(n: number) {
|
|
261
|
+
return <A>(self: Conc<A>): Conc<A> => {
|
|
262
|
+
concrete(self);
|
|
263
|
+
const len = self.length;
|
|
264
|
+
if (len <= 0) {
|
|
265
|
+
return self;
|
|
266
|
+
} else if (n >= len) {
|
|
267
|
+
return Conc.empty();
|
|
268
|
+
} else {
|
|
269
|
+
switch (self._tag) {
|
|
270
|
+
case ConcTag.Slice:
|
|
271
|
+
return new Slice(self.conc, self.offset + n, self.l - n);
|
|
272
|
+
case ConcTag.Singleton:
|
|
273
|
+
return n > 0 ? Conc.empty() : self;
|
|
274
|
+
case ConcTag.Empty:
|
|
275
|
+
return Conc.empty();
|
|
276
|
+
default:
|
|
277
|
+
return new Slice(self, n, len - n);
|
|
278
|
+
}
|
|
259
279
|
}
|
|
260
|
-
}
|
|
280
|
+
};
|
|
261
281
|
}
|
|
262
282
|
|
|
263
283
|
/**
|
|
264
|
-
* @tsplus
|
|
284
|
+
* @tsplus pipeable fncts.Conc dropUntil
|
|
265
285
|
*/
|
|
266
|
-
export function dropUntil<A>(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
286
|
+
export function dropUntil<A>(p: Predicate<A>) {
|
|
287
|
+
return (self: Conc<A>): Conc<A> => {
|
|
288
|
+
let cont = true;
|
|
289
|
+
let i = 0;
|
|
290
|
+
for (const elem of self) {
|
|
291
|
+
if (!cont) {
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
i++;
|
|
295
|
+
cont = !p(elem);
|
|
272
296
|
}
|
|
273
|
-
i
|
|
274
|
-
|
|
275
|
-
}
|
|
276
|
-
return self.drop(i);
|
|
297
|
+
return self.drop(i);
|
|
298
|
+
};
|
|
277
299
|
}
|
|
278
300
|
|
|
279
301
|
/**
|
|
280
|
-
* @tsplus
|
|
302
|
+
* @tsplus pipeable fncts.Conc dropWhile
|
|
281
303
|
*/
|
|
282
|
-
export function
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
i
|
|
304
|
+
export function dropWhile<A>(p: Predicate<A>) {
|
|
305
|
+
return (self: Conc<A>): Conc<A> => {
|
|
306
|
+
concrete(self);
|
|
307
|
+
switch (self._tag) {
|
|
308
|
+
case ConcTag.Chunk: {
|
|
309
|
+
const arr = self.arrayLike();
|
|
310
|
+
let i = 0;
|
|
311
|
+
while (i < arr.length && p(arr[i]!)) {
|
|
312
|
+
i++;
|
|
313
|
+
}
|
|
314
|
+
return (self as Conc<A>).drop(i);
|
|
290
315
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
cont = false;
|
|
316
|
+
default: {
|
|
317
|
+
const iterator = self.arrayIterator();
|
|
318
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
319
|
+
let cont = true;
|
|
320
|
+
let i = 0;
|
|
321
|
+
while (cont && !(result = iterator.next()).done) {
|
|
322
|
+
const array = result.value;
|
|
323
|
+
let j = 0;
|
|
324
|
+
while (cont && j < array.length) {
|
|
325
|
+
if (p(array[j]!)) {
|
|
326
|
+
i++;
|
|
327
|
+
j++;
|
|
328
|
+
} else {
|
|
329
|
+
cont = false;
|
|
330
|
+
}
|
|
307
331
|
}
|
|
308
332
|
}
|
|
333
|
+
return (self as Conc<A>).drop(i);
|
|
309
334
|
}
|
|
310
|
-
return drop_(self, i);
|
|
311
335
|
}
|
|
312
|
-
}
|
|
336
|
+
};
|
|
313
337
|
}
|
|
314
338
|
|
|
315
339
|
/**
|
|
316
|
-
* @tsplus
|
|
340
|
+
* @tsplus pipeable fncts.Conc filter
|
|
317
341
|
*/
|
|
318
|
-
export function
|
|
319
|
-
export function
|
|
320
|
-
export function
|
|
321
|
-
return self
|
|
342
|
+
export function filter<A, B extends A>(p: Refinement<A, B>): (self: Conc<A>) => Conc<B>;
|
|
343
|
+
export function filter<A>(p: Predicate<A>): (self: Conc<A>) => Conc<A>;
|
|
344
|
+
export function filter<A>(p: Predicate<A>) {
|
|
345
|
+
return (self: Conc<A>): Conc<A> => {
|
|
346
|
+
return self.filterWithIndex((_, a) => p(a));
|
|
347
|
+
};
|
|
322
348
|
}
|
|
323
349
|
|
|
324
350
|
/**
|
|
325
|
-
* @tsplus
|
|
351
|
+
* @tsplus pipeable fncts.Conc filterMap
|
|
326
352
|
*/
|
|
327
|
-
export function
|
|
328
|
-
return self
|
|
353
|
+
export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
|
|
354
|
+
return (self: Conc<A>): Conc<B> => {
|
|
355
|
+
return self.filterMapWithIndex((_, a) => f(a));
|
|
356
|
+
};
|
|
329
357
|
}
|
|
330
358
|
|
|
331
359
|
/**
|
|
332
|
-
* @tsplus
|
|
360
|
+
* @tsplus pipeable fncts.Conc filterMapWithIndex
|
|
333
361
|
*/
|
|
334
|
-
export function
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
362
|
+
export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
|
|
363
|
+
return (self: Conc<A>): Conc<B> => {
|
|
364
|
+
concrete(self);
|
|
365
|
+
const iterator = self.arrayIterator();
|
|
366
|
+
const out = builder<B>();
|
|
367
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
368
|
+
let i = 0;
|
|
369
|
+
while (!(result = iterator.next()).done) {
|
|
370
|
+
const array = result.value;
|
|
371
|
+
for (let j = 0; j < array.length; j++) {
|
|
372
|
+
const ob = f(i, array[j]!);
|
|
373
|
+
if (ob.isJust()) {
|
|
374
|
+
out.append(ob.value);
|
|
375
|
+
}
|
|
376
|
+
i++;
|
|
346
377
|
}
|
|
347
|
-
i++;
|
|
348
378
|
}
|
|
349
|
-
|
|
350
|
-
|
|
379
|
+
return out.result();
|
|
380
|
+
};
|
|
351
381
|
}
|
|
352
382
|
|
|
353
383
|
/**
|
|
354
|
-
* @tsplus
|
|
384
|
+
* @tsplus pipeable fncts.Conc filterWithIndex
|
|
355
385
|
*/
|
|
356
|
-
export function
|
|
357
|
-
export function
|
|
358
|
-
export function
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
386
|
+
export function filterWithIndex<A, B extends A>(p: RefinementWithIndex<number, A, B>): (self: Conc<A>) => Conc<B>;
|
|
387
|
+
export function filterWithIndex<A>(p: PredicateWithIndex<number, A>): (self: Conc<A>) => Conc<A>;
|
|
388
|
+
export function filterWithIndex<A>(p: PredicateWithIndex<number, A>) {
|
|
389
|
+
return (self: Conc<A>): Conc<A> => {
|
|
390
|
+
concrete(self);
|
|
391
|
+
switch (self._tag) {
|
|
392
|
+
case ConcTag.Empty: {
|
|
393
|
+
return _Empty;
|
|
394
|
+
}
|
|
395
|
+
case ConcTag.Chunk: {
|
|
396
|
+
const arr = self.arrayLike();
|
|
397
|
+
let builder = Conc.empty<A>();
|
|
398
|
+
for (let i = 0; i < arr.length; i++) {
|
|
399
|
+
const a = arr[i]!;
|
|
400
|
+
if (p(i, a)) {
|
|
401
|
+
builder = builder.append(a);
|
|
402
|
+
}
|
|
371
403
|
}
|
|
404
|
+
return builder;
|
|
372
405
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
return
|
|
406
|
+
case ConcTag.Singleton: {
|
|
407
|
+
if (p(0, self.value)) {
|
|
408
|
+
return self;
|
|
409
|
+
}
|
|
410
|
+
return _Empty;
|
|
378
411
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
412
|
+
default: {
|
|
413
|
+
const iterator = self.arrayIterator();
|
|
414
|
+
let out = Conc.empty<A>();
|
|
415
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
416
|
+
let i = 0;
|
|
417
|
+
while (!(result = iterator.next()).done) {
|
|
418
|
+
const array = result.value;
|
|
419
|
+
for (let j = 0; j < array.length; j++) {
|
|
420
|
+
const a = array[j]!;
|
|
421
|
+
if (p(i, a)) {
|
|
422
|
+
out = out.append(a);
|
|
423
|
+
}
|
|
424
|
+
i++;
|
|
392
425
|
}
|
|
393
|
-
i++;
|
|
394
426
|
}
|
|
427
|
+
return out;
|
|
395
428
|
}
|
|
396
|
-
return out;
|
|
397
429
|
}
|
|
398
|
-
}
|
|
430
|
+
};
|
|
399
431
|
}
|
|
400
432
|
|
|
401
433
|
/**
|
|
402
|
-
* @tsplus
|
|
434
|
+
* @tsplus pipeable fncts.Conc find
|
|
403
435
|
*/
|
|
404
|
-
export function
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
436
|
+
export function find<A>(f: (a: A) => boolean) {
|
|
437
|
+
return (self: Conc<A>): Maybe<A> => {
|
|
438
|
+
concrete(self);
|
|
439
|
+
const iterator = self.arrayIterator();
|
|
440
|
+
let out = Nothing<A>();
|
|
441
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
442
|
+
while (out.isNothing() && !(result = iterator.next()).done) {
|
|
443
|
+
const array = result.value;
|
|
444
|
+
const length = array.length;
|
|
445
|
+
for (let i = 0; out.isNothing() && i < length; i++) {
|
|
446
|
+
const a = array[i]!;
|
|
447
|
+
if (f(a)) {
|
|
448
|
+
out = Just(a);
|
|
449
|
+
}
|
|
416
450
|
}
|
|
417
451
|
}
|
|
418
|
-
|
|
419
|
-
|
|
452
|
+
return out;
|
|
453
|
+
};
|
|
420
454
|
}
|
|
421
455
|
|
|
422
456
|
/**
|
|
@@ -425,115 +459,136 @@ export function find_<A>(self: Conc<A>, f: (a: A) => boolean): Maybe<A> {
|
|
|
425
459
|
export function flatten<A>(self: Conc<Conc<A>>): Conc<A> {
|
|
426
460
|
return self.flatMap(identity);
|
|
427
461
|
}
|
|
462
|
+
|
|
428
463
|
/**
|
|
429
464
|
* Folds over the elements in this Conc from the left.
|
|
430
465
|
* Stops the fold early when the condition is not fulfilled.
|
|
431
466
|
*
|
|
432
|
-
* @tsplus
|
|
433
|
-
*/
|
|
434
|
-
export function
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
467
|
+
* @tsplus pipeable fncts.Conc foldLeftWhile
|
|
468
|
+
*/
|
|
469
|
+
export function foldLeftWhile<A, B>(b: B, p: Predicate<B>, f: (b: B, a: A) => B) {
|
|
470
|
+
return (as: Conc<A>): B => {
|
|
471
|
+
concrete(as);
|
|
472
|
+
const iterator = as.arrayIterator();
|
|
473
|
+
let s = b;
|
|
474
|
+
let cont = p(s);
|
|
475
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
476
|
+
while (cont && !(result = iterator.next()).done) {
|
|
477
|
+
const array = result.value;
|
|
478
|
+
for (let i = 0; cont && i < array.length; i++) {
|
|
479
|
+
s = f(s, array[i]!);
|
|
480
|
+
cont = p(s);
|
|
481
|
+
}
|
|
445
482
|
}
|
|
446
|
-
|
|
447
|
-
|
|
483
|
+
return s;
|
|
484
|
+
};
|
|
448
485
|
}
|
|
449
486
|
|
|
450
487
|
/**
|
|
451
|
-
* @tsplus
|
|
488
|
+
* @tsplus pipeable fncts.Conc foldLeft
|
|
452
489
|
*/
|
|
453
|
-
export function
|
|
454
|
-
return self
|
|
490
|
+
export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
|
|
491
|
+
return (self: Conc<A>): B => {
|
|
492
|
+
return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
|
|
493
|
+
};
|
|
455
494
|
}
|
|
456
495
|
|
|
457
496
|
/**
|
|
458
|
-
* @tsplus
|
|
497
|
+
* @tsplus pipeable fncts.Conc foldLeftWithIndex
|
|
459
498
|
*/
|
|
460
|
-
export function
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
499
|
+
export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
|
|
500
|
+
return (self: Conc<A>): B => {
|
|
501
|
+
concrete(self);
|
|
502
|
+
const iterator = self.arrayIterator();
|
|
503
|
+
let out = b;
|
|
504
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
505
|
+
let i = 0;
|
|
506
|
+
while (!(result = iterator.next()).done) {
|
|
507
|
+
const array = result.value;
|
|
508
|
+
for (let j = 0; j < array.length; j++) {
|
|
509
|
+
out = f(i, out, array[j]!);
|
|
510
|
+
i++;
|
|
511
|
+
}
|
|
471
512
|
}
|
|
472
|
-
|
|
473
|
-
|
|
513
|
+
return out;
|
|
514
|
+
};
|
|
474
515
|
}
|
|
475
516
|
|
|
476
517
|
/**
|
|
477
|
-
* @tsplus
|
|
518
|
+
* @tsplus pipeable fncts.Conc foldMap
|
|
478
519
|
*/
|
|
479
|
-
export function
|
|
480
|
-
return fa
|
|
520
|
+
export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: P.Monoid<M>) {
|
|
521
|
+
return (fa: Conc<A>): M => {
|
|
522
|
+
return fa.foldMapWithIndex((_, a) => f(a), M);
|
|
523
|
+
};
|
|
481
524
|
}
|
|
482
525
|
|
|
483
526
|
/**
|
|
484
|
-
* @tsplus
|
|
527
|
+
* @tsplus pipeable fncts.Conc foldMapWithIndex
|
|
485
528
|
*/
|
|
486
|
-
export function
|
|
487
|
-
return fa
|
|
529
|
+
export function foldMapWithIndex<A, M>(f: (i: number, a: A) => M, /** @tsplus auto */ M: P.Monoid<M>) {
|
|
530
|
+
return (fa: Conc<A>): M => {
|
|
531
|
+
return fa.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
|
|
532
|
+
};
|
|
488
533
|
}
|
|
489
534
|
|
|
490
535
|
/**
|
|
491
|
-
* @tsplus
|
|
536
|
+
* @tsplus pipeable fncts.Conc foldRight
|
|
492
537
|
*/
|
|
493
|
-
export function
|
|
494
|
-
return fa
|
|
538
|
+
export function foldRight<A, B>(b: B, f: (a: A, b: B) => B) {
|
|
539
|
+
return (fa: Conc<A>): B => {
|
|
540
|
+
return fa.foldRightWithIndex(b, (_, a, b) => f(a, b));
|
|
541
|
+
};
|
|
495
542
|
}
|
|
496
543
|
|
|
497
544
|
/**
|
|
498
|
-
* @tsplus
|
|
545
|
+
* @tsplus pipeable fncts.Conc foldRightWithIndex
|
|
499
546
|
*/
|
|
500
|
-
export function
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
547
|
+
export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B) {
|
|
548
|
+
return (self: Conc<A>): B => {
|
|
549
|
+
concrete(self);
|
|
550
|
+
const iterator = self.reverseArrayIterator();
|
|
551
|
+
let out = b;
|
|
552
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
553
|
+
let i = self.length - 1;
|
|
554
|
+
while (!(result = iterator.next()).done) {
|
|
555
|
+
const array = result.value;
|
|
556
|
+
for (let j = array.length - 1; j >= 0; j--) {
|
|
557
|
+
out = f(i, array[i]!, out);
|
|
558
|
+
i--;
|
|
559
|
+
}
|
|
511
560
|
}
|
|
512
|
-
|
|
513
|
-
|
|
561
|
+
return out;
|
|
562
|
+
};
|
|
514
563
|
}
|
|
515
564
|
|
|
516
565
|
/**
|
|
517
|
-
* @tsplus
|
|
566
|
+
* @tsplus pipeable fncts.Conc forEach
|
|
518
567
|
*/
|
|
519
|
-
export function
|
|
520
|
-
|
|
521
|
-
|
|
568
|
+
export function forEach<A, B>(f: (a: A) => B) {
|
|
569
|
+
return (self: Conc<A>): void => {
|
|
570
|
+
concrete(self);
|
|
571
|
+
return self.forEach(0, (_, a) => f(a));
|
|
572
|
+
};
|
|
522
573
|
}
|
|
523
574
|
|
|
524
575
|
/**
|
|
525
|
-
* @tsplus
|
|
576
|
+
* @tsplus pipeable fncts.Conc forEachWithIndex
|
|
526
577
|
*/
|
|
527
|
-
export function
|
|
528
|
-
|
|
529
|
-
|
|
578
|
+
export function forEachWithIndex<A, B>(f: (i: number, a: A) => B) {
|
|
579
|
+
return (self: Conc<A>): void => {
|
|
580
|
+
concrete(self);
|
|
581
|
+
self.forEach(0, f);
|
|
582
|
+
};
|
|
530
583
|
}
|
|
531
584
|
|
|
532
585
|
/**
|
|
533
|
-
* @tsplus
|
|
586
|
+
* @tsplus pipeable fncts.Conc get
|
|
534
587
|
*/
|
|
535
|
-
export function
|
|
536
|
-
return
|
|
588
|
+
export function get(n: number) {
|
|
589
|
+
return <A>(as: Conc<A>): Maybe<A> => {
|
|
590
|
+
return Maybe.tryCatch(() => as[n]);
|
|
591
|
+
};
|
|
537
592
|
}
|
|
538
593
|
|
|
539
594
|
/**
|
|
@@ -558,13 +613,15 @@ export function init<A>(self: Conc<A>): Maybe<Conc<A>> {
|
|
|
558
613
|
}
|
|
559
614
|
|
|
560
615
|
/**
|
|
561
|
-
* @tsplus
|
|
616
|
+
* @tsplus pipeable fncts.Conc join
|
|
562
617
|
*/
|
|
563
|
-
export function
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
618
|
+
export function join(separator: string) {
|
|
619
|
+
return (self: Conc<string>): string => {
|
|
620
|
+
if (self.length === 0) {
|
|
621
|
+
return "";
|
|
622
|
+
}
|
|
623
|
+
return self.unsafeTail.foldLeft(self.unsafeGet(0), (b, s) => b + separator + s);
|
|
624
|
+
};
|
|
568
625
|
}
|
|
569
626
|
|
|
570
627
|
/**
|
|
@@ -579,40 +636,44 @@ export function last<A>(self: Conc<A>): Maybe<A> {
|
|
|
579
636
|
}
|
|
580
637
|
|
|
581
638
|
/**
|
|
582
|
-
* @tsplus
|
|
639
|
+
* @tsplus pipeable fncts.Conc map
|
|
583
640
|
*/
|
|
584
|
-
export function
|
|
585
|
-
return self
|
|
641
|
+
export function map<A, B>(f: (a: A) => B) {
|
|
642
|
+
return (self: Conc<A>): Conc<B> => {
|
|
643
|
+
return self.mapWithIndex((_, a) => f(a));
|
|
644
|
+
};
|
|
586
645
|
}
|
|
587
646
|
|
|
588
647
|
/**
|
|
589
648
|
* Statefully maps over the Conc, producing new elements of type `B`.
|
|
590
649
|
*
|
|
591
|
-
* @tsplus
|
|
592
|
-
*/
|
|
593
|
-
export function
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
650
|
+
* @tsplus pipeable fncts.Conc mapAccum
|
|
651
|
+
*/
|
|
652
|
+
export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [S, B]) {
|
|
653
|
+
return (self: Conc<A>): readonly [S, Conc<B>] => {
|
|
654
|
+
concrete(self);
|
|
655
|
+
const iterator = self.arrayIterator();
|
|
656
|
+
const out = builder<B>();
|
|
657
|
+
let state = s;
|
|
658
|
+
let result;
|
|
659
|
+
while (!(result = iterator.next()).done) {
|
|
660
|
+
const array = result.value;
|
|
661
|
+
const length = array.length;
|
|
662
|
+
for (let i = 0; i < length; i++) {
|
|
663
|
+
const a = array[i]!;
|
|
664
|
+
const tup = f(state, a);
|
|
665
|
+
out.append(tup[1]);
|
|
666
|
+
state = tup[0];
|
|
667
|
+
}
|
|
607
668
|
}
|
|
608
|
-
|
|
609
|
-
|
|
669
|
+
return tuple(s, out.result());
|
|
670
|
+
};
|
|
610
671
|
}
|
|
611
672
|
|
|
612
673
|
function mapArrayLike<A, B>(as: ArrayLike<A>, len: number, startIndex: number, f: (i: number, a: A) => B): Conc<B> {
|
|
613
674
|
let bs = Conc.empty<B>();
|
|
614
675
|
for (let i = 0; i < len; i++) {
|
|
615
|
-
bs =
|
|
676
|
+
bs = bs.append(f(i + startIndex, as[i]!));
|
|
616
677
|
}
|
|
617
678
|
return bs;
|
|
618
679
|
}
|
|
@@ -625,7 +686,7 @@ function mapArrayLikeReverse<A, B>(
|
|
|
625
686
|
): Conc<B> {
|
|
626
687
|
let bs = Conc.empty<B>();
|
|
627
688
|
for (let i = BUFFER_SIZE - len, j = len - 1; i < BUFFER_SIZE; i++, j--) {
|
|
628
|
-
bs =
|
|
689
|
+
bs = bs.append(f(endIndex - j, as[i]!));
|
|
629
690
|
}
|
|
630
691
|
return bs;
|
|
631
692
|
}
|
|
@@ -658,101 +719,99 @@ class PrependFrame<A, B> {
|
|
|
658
719
|
type Frame<A, B> = DoneFrame | ConcatLeftFrame<A> | ConcatRightFrame<B> | AppendFrame<A> | PrependFrame<A, B>;
|
|
659
720
|
|
|
660
721
|
/**
|
|
661
|
-
* @tsplus
|
|
662
|
-
*/
|
|
663
|
-
export function
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
f,
|
|
722
|
+
* @tsplus pipeable fncts.Conc mapWithIndex
|
|
723
|
+
*/
|
|
724
|
+
export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
|
|
725
|
+
return (self: Conc<A>): Conc<B> => {
|
|
726
|
+
let current = self;
|
|
727
|
+
let index = 0;
|
|
728
|
+
const stack = Stack<Frame<A, B>>();
|
|
729
|
+
stack.push(new DoneFrame());
|
|
730
|
+
let result: Conc<B> = Conc.empty();
|
|
731
|
+
recursion: while (stack.hasNext) {
|
|
732
|
+
// eslint-disable-next-line no-constant-condition
|
|
733
|
+
pushing: while (true) {
|
|
734
|
+
concrete<A>(current);
|
|
735
|
+
switch (current._tag) {
|
|
736
|
+
case ConcTag.Singleton: {
|
|
737
|
+
result = new Singleton(f(index++, current.value));
|
|
738
|
+
break pushing;
|
|
739
|
+
}
|
|
740
|
+
case ConcTag.Empty: {
|
|
741
|
+
result = _Empty;
|
|
742
|
+
break pushing;
|
|
743
|
+
}
|
|
744
|
+
case ConcTag.Chunk: {
|
|
745
|
+
result = new Chunk(current._array.map((a, i) => f(i + index, a)));
|
|
746
|
+
index += current.length;
|
|
747
|
+
break pushing;
|
|
748
|
+
}
|
|
749
|
+
case ConcTag.Concat: {
|
|
750
|
+
stack.push(new ConcatLeftFrame(current, index));
|
|
751
|
+
current = current.left;
|
|
752
|
+
continue pushing;
|
|
753
|
+
}
|
|
754
|
+
case ConcTag.AppendN: {
|
|
755
|
+
stack.push(new AppendFrame(current.buffer as ArrayLike<A>, current.bufferUsed, index));
|
|
756
|
+
current = current.start;
|
|
757
|
+
continue pushing;
|
|
758
|
+
}
|
|
759
|
+
case ConcTag.PrependN: {
|
|
760
|
+
stack.push(
|
|
761
|
+
new PrependFrame(
|
|
762
|
+
mapArrayLikeReverse(
|
|
763
|
+
current.buffer as ArrayLike<A>,
|
|
764
|
+
current.bufferUsed,
|
|
765
|
+
index + current.bufferUsed - 1,
|
|
766
|
+
f,
|
|
767
|
+
),
|
|
768
|
+
current.end,
|
|
709
769
|
),
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
770
|
+
);
|
|
771
|
+
index += current.bufferUsed;
|
|
772
|
+
break pushing;
|
|
773
|
+
}
|
|
774
|
+
case ConcTag.Slice: {
|
|
775
|
+
let r = Conc.empty<B>();
|
|
776
|
+
for (let i = 0; i < current.length; i++) {
|
|
777
|
+
r = r.append(f(i + index, current[i]));
|
|
778
|
+
}
|
|
779
|
+
result = r;
|
|
780
|
+
index += current.length;
|
|
781
|
+
break pushing;
|
|
720
782
|
}
|
|
721
|
-
result = r;
|
|
722
|
-
index += current.length;
|
|
723
|
-
break pushing;
|
|
724
783
|
}
|
|
725
784
|
}
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
785
|
+
// eslint-disable-next-line no-constant-condition
|
|
786
|
+
popping: while (true) {
|
|
787
|
+
const top = stack.pop()!;
|
|
788
|
+
switch (top._tag) {
|
|
789
|
+
case "Done": {
|
|
790
|
+
return result;
|
|
791
|
+
}
|
|
792
|
+
case "ConcatLeft": {
|
|
793
|
+
current = top.conc.right;
|
|
794
|
+
stack.push(new ConcatRightFrame(result));
|
|
795
|
+
continue recursion;
|
|
796
|
+
}
|
|
797
|
+
case "ConcatRight": {
|
|
798
|
+
result = top.leftResult.concat(result);
|
|
799
|
+
continue popping;
|
|
800
|
+
}
|
|
801
|
+
case "Append": {
|
|
802
|
+
result = result.concat(mapArrayLike(top.buffer, top.bufferUsed, index, f));
|
|
803
|
+
continue popping;
|
|
804
|
+
}
|
|
805
|
+
case "Prepend": {
|
|
806
|
+
current = top.end;
|
|
807
|
+
stack.push(new ConcatRightFrame(top.pre));
|
|
808
|
+
continue recursion;
|
|
809
|
+
}
|
|
751
810
|
}
|
|
752
811
|
}
|
|
753
812
|
}
|
|
754
|
-
|
|
755
|
-
|
|
813
|
+
throw new Error("bug");
|
|
814
|
+
};
|
|
756
815
|
}
|
|
757
816
|
|
|
758
817
|
/**
|
|
@@ -771,84 +830,90 @@ export function isNonEmpty<A>(conc: Conc<A>): boolean {
|
|
|
771
830
|
}
|
|
772
831
|
|
|
773
832
|
/**
|
|
774
|
-
* @tsplus
|
|
833
|
+
* @tsplus pipeable fncts.Conc partition
|
|
775
834
|
*/
|
|
776
|
-
export function
|
|
777
|
-
export function
|
|
778
|
-
export function
|
|
779
|
-
return self
|
|
835
|
+
export function partition<A, B extends A>(p: Refinement<A, B>): (self: Conc<A>) => readonly [Conc<A>, Conc<B>];
|
|
836
|
+
export function partition<A>(p: Predicate<A>): (self: Conc<A>) => readonly [Conc<A>, Conc<A>];
|
|
837
|
+
export function partition<A>(p: Predicate<A>) {
|
|
838
|
+
return (self: Conc<A>): readonly [Conc<A>, Conc<A>] => {
|
|
839
|
+
return self.partitionWithIndex((_, a) => p(a));
|
|
840
|
+
};
|
|
780
841
|
}
|
|
781
842
|
|
|
782
843
|
/**
|
|
783
|
-
* @tsplus
|
|
844
|
+
* @tsplus pipeable fncts.Conc partitionMap
|
|
784
845
|
*/
|
|
785
|
-
export function
|
|
786
|
-
return self
|
|
846
|
+
export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
|
|
847
|
+
return (self: Conc<A>): readonly [Conc<B>, Conc<C>] => {
|
|
848
|
+
return self.partitionMapWithIndex((_, a) => f(a));
|
|
849
|
+
};
|
|
787
850
|
}
|
|
788
851
|
|
|
789
852
|
/**
|
|
790
|
-
* @tsplus
|
|
853
|
+
* @tsplus pipeable fncts.Conc partitionMapWithIndex
|
|
791
854
|
*/
|
|
792
|
-
export function
|
|
793
|
-
fa: Conc<A>,
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
i++;
|
|
855
|
+
export function partitionMapWithIndex<A, B, C>(f: (i: number, a: A) => Either<B, C>) {
|
|
856
|
+
return (fa: Conc<A>): readonly [Conc<B>, Conc<C>] => {
|
|
857
|
+
concrete(fa);
|
|
858
|
+
const iterator = fa.arrayIterator();
|
|
859
|
+
const left = builder<B>();
|
|
860
|
+
const right = builder<C>();
|
|
861
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
862
|
+
let i = 0;
|
|
863
|
+
while (!(result = iterator.next()).done) {
|
|
864
|
+
const array = result.value;
|
|
865
|
+
for (let j = 0; j < array.length; j++) {
|
|
866
|
+
const eab = f(i, array[j]!);
|
|
867
|
+
eab.match(
|
|
868
|
+
(b) => left.append(b),
|
|
869
|
+
(c) => right.append(c),
|
|
870
|
+
);
|
|
871
|
+
i++;
|
|
872
|
+
}
|
|
811
873
|
}
|
|
812
|
-
|
|
813
|
-
|
|
874
|
+
return [left.result(), right.result()];
|
|
875
|
+
};
|
|
814
876
|
}
|
|
815
877
|
|
|
816
878
|
/**
|
|
817
|
-
* @tsplus
|
|
879
|
+
* @tsplus pipeable fncts.Conc partitionWithIndex
|
|
818
880
|
*/
|
|
819
|
-
export function
|
|
820
|
-
self: Conc<A>,
|
|
881
|
+
export function partitionWithIndex<A, B extends A>(
|
|
821
882
|
p: RefinementWithIndex<number, A, B>,
|
|
822
|
-
): readonly [Conc<A>, Conc<B>];
|
|
823
|
-
export function
|
|
824
|
-
export function
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
883
|
+
): (self: Conc<A>) => readonly [Conc<A>, Conc<B>];
|
|
884
|
+
export function partitionWithIndex<A>(p: PredicateWithIndex<number, A>): (self: Conc<A>) => readonly [Conc<A>, Conc<A>];
|
|
885
|
+
export function partitionWithIndex<A>(p: PredicateWithIndex<number, A>) {
|
|
886
|
+
return (self: Conc<A>): readonly [Conc<A>, Conc<A>] => {
|
|
887
|
+
concrete(self);
|
|
888
|
+
const iterator = self.arrayIterator();
|
|
889
|
+
const left = builder<A>();
|
|
890
|
+
const right = builder<A>();
|
|
891
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
892
|
+
let i = 0;
|
|
893
|
+
while (!(result = iterator.next()).done) {
|
|
894
|
+
const array = result.value;
|
|
895
|
+
for (let j = 0; j < array.length; j++) {
|
|
896
|
+
const a = array[j]!;
|
|
897
|
+
if (p(i, a)) {
|
|
898
|
+
right.append(a);
|
|
899
|
+
} else {
|
|
900
|
+
left.append(a);
|
|
901
|
+
}
|
|
902
|
+
i++;
|
|
839
903
|
}
|
|
840
|
-
i++;
|
|
841
904
|
}
|
|
842
|
-
|
|
843
|
-
|
|
905
|
+
return [left.result(), right.result()];
|
|
906
|
+
};
|
|
844
907
|
}
|
|
845
908
|
|
|
846
909
|
/**
|
|
847
|
-
* @tsplus
|
|
910
|
+
* @tsplus pipeable fncts.Conc prepend
|
|
848
911
|
*/
|
|
849
|
-
export function
|
|
850
|
-
|
|
851
|
-
|
|
912
|
+
export function prepend<B>(a: B) {
|
|
913
|
+
return <A>(self: Conc<A>): Conc<A | B> => {
|
|
914
|
+
concrete(self);
|
|
915
|
+
return self.prepend(a);
|
|
916
|
+
};
|
|
852
917
|
}
|
|
853
918
|
|
|
854
919
|
/**
|
|
@@ -887,40 +952,42 @@ export function separate<E, A>(self: Conc<Either<E, A>>): readonly [Conc<E>, Con
|
|
|
887
952
|
}
|
|
888
953
|
|
|
889
954
|
/**
|
|
890
|
-
* @tsplus
|
|
955
|
+
* @tsplus pipeable fncts.Conc splitAt
|
|
891
956
|
*/
|
|
892
|
-
export function
|
|
893
|
-
return
|
|
957
|
+
export function splitAt(n: number) {
|
|
958
|
+
return <A>(self: Conc<A>): readonly [Conc<A>, Conc<A>] => {
|
|
959
|
+
return [self.take(n), self.drop(n)];
|
|
960
|
+
};
|
|
894
961
|
}
|
|
895
962
|
|
|
896
963
|
/**
|
|
897
964
|
* Splits this Conc on the first element that matches this predicate.
|
|
898
965
|
*
|
|
899
|
-
* @tsplus
|
|
900
|
-
*/
|
|
901
|
-
export function
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
966
|
+
* @tsplus pipeable fncts.Conc splitWhere
|
|
967
|
+
*/
|
|
968
|
+
export function splitWhere<A>(f: (a: A) => boolean) {
|
|
969
|
+
return (self: Conc<A>): readonly [Conc<A>, Conc<A>] => {
|
|
970
|
+
concrete(self);
|
|
971
|
+
const iterator = self.arrayIterator();
|
|
972
|
+
let next;
|
|
973
|
+
let cont = true;
|
|
974
|
+
let i = 0;
|
|
975
|
+
while (cont && (next = iterator.next()) && !next.done) {
|
|
976
|
+
const array = next.value;
|
|
977
|
+
const len = array.length;
|
|
978
|
+
let j = 0;
|
|
979
|
+
while (cont && j < len) {
|
|
980
|
+
const a = array[j]!;
|
|
981
|
+
if (f(a)) {
|
|
982
|
+
cont = false;
|
|
983
|
+
} else {
|
|
984
|
+
i++;
|
|
985
|
+
j++;
|
|
986
|
+
}
|
|
919
987
|
}
|
|
920
988
|
}
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
return splitAt_(self, i);
|
|
989
|
+
return (self as Conc<A>).splitAt(i);
|
|
990
|
+
};
|
|
924
991
|
}
|
|
925
992
|
|
|
926
993
|
/**
|
|
@@ -934,62 +1001,92 @@ export function tail<A>(conc: Conc<A>): Maybe<Conc<A>> {
|
|
|
934
1001
|
}
|
|
935
1002
|
|
|
936
1003
|
/**
|
|
937
|
-
* @tsplus
|
|
1004
|
+
* @tsplus pipeable fncts.Conc take
|
|
938
1005
|
*/
|
|
939
|
-
export function
|
|
940
|
-
|
|
941
|
-
|
|
1006
|
+
export function take(n: number) {
|
|
1007
|
+
return <A>(self: Conc<A>): Conc<A> => {
|
|
1008
|
+
concrete(self);
|
|
1009
|
+
return self.take(n);
|
|
1010
|
+
};
|
|
942
1011
|
}
|
|
943
1012
|
|
|
944
1013
|
/**
|
|
945
|
-
* @tsplus
|
|
1014
|
+
* @tsplus pipeable fncts.Conc takeWhile
|
|
946
1015
|
*/
|
|
947
|
-
export function
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
i
|
|
1016
|
+
export function takeWhile<A>(p: Predicate<A>) {
|
|
1017
|
+
return (self: Conc<A>): Conc<A> => {
|
|
1018
|
+
concrete(self);
|
|
1019
|
+
switch (self._tag) {
|
|
1020
|
+
case ConcTag.Chunk: {
|
|
1021
|
+
const arr = self.arrayLike();
|
|
1022
|
+
let i = 0;
|
|
1023
|
+
while (i < arr.length && p(arr[i]!)) {
|
|
1024
|
+
i++;
|
|
1025
|
+
}
|
|
1026
|
+
return self.take(i);
|
|
955
1027
|
}
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
j++;
|
|
1028
|
+
default: {
|
|
1029
|
+
const iterator = self.arrayIterator();
|
|
1030
|
+
let result: IteratorResult<ArrayLike<A>>;
|
|
1031
|
+
let cont = true;
|
|
1032
|
+
let i = 0;
|
|
1033
|
+
while (cont && !(result = iterator.next()).done) {
|
|
1034
|
+
const array = result.value;
|
|
1035
|
+
let j = 0;
|
|
1036
|
+
while (cont && j < array.length) {
|
|
1037
|
+
if (!p(array[j]!)) {
|
|
1038
|
+
cont = false;
|
|
1039
|
+
} else {
|
|
1040
|
+
i++;
|
|
1041
|
+
j++;
|
|
1042
|
+
}
|
|
972
1043
|
}
|
|
973
1044
|
}
|
|
1045
|
+
return self.take(i);
|
|
974
1046
|
}
|
|
975
|
-
return take_(self, i);
|
|
976
1047
|
}
|
|
977
|
-
}
|
|
1048
|
+
};
|
|
978
1049
|
}
|
|
979
1050
|
|
|
1051
|
+
export const traverse: P.Traversable<ConcF>["traverse"] = (G) => (f) => (self) => self.traverse(G)(f);
|
|
1052
|
+
|
|
1053
|
+
export const traverseWithIndex: P.TraversableWithIndex<ConcF>["traverseWithIndex"] = (G) => (f) => (self) =>
|
|
1054
|
+
self.traverseWithIndex(G)(f);
|
|
1055
|
+
|
|
980
1056
|
/**
|
|
981
|
-
* @tsplus getter fncts.Conc
|
|
1057
|
+
* @tsplus getter fncts.Conc traverseWithIndex
|
|
982
1058
|
*/
|
|
983
|
-
export
|
|
984
|
-
self
|
|
1059
|
+
export function _traverseWithIndex<A>(
|
|
1060
|
+
self: Conc<A>,
|
|
1061
|
+
): <G extends HKT, GC = HKT.None>(
|
|
1062
|
+
G: P.Applicative<G, GC>,
|
|
1063
|
+
) => <K, Q, W, X, I, S, R, E, B>(
|
|
1064
|
+
f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
|
1065
|
+
) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Conc<B>>;
|
|
1066
|
+
export function _traverseWithIndex<A>(
|
|
1067
|
+
self: Conc<A>,
|
|
1068
|
+
): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, Conc<B>> {
|
|
1069
|
+
return (G) => (f) =>
|
|
1070
|
+
self.foldLeftWithIndex(G.pure(Conc.empty()), (i, fbs, a) =>
|
|
1071
|
+
pipe(
|
|
1072
|
+
fbs,
|
|
1073
|
+
G.zipWith(f(i, a), (bs, b) => bs.append(b)),
|
|
1074
|
+
),
|
|
1075
|
+
);
|
|
1076
|
+
}
|
|
985
1077
|
|
|
986
1078
|
/**
|
|
987
|
-
* @tsplus getter fncts.Conc
|
|
1079
|
+
* @tsplus getter fncts.Conc traverse
|
|
988
1080
|
*/
|
|
989
|
-
export
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
1081
|
+
export function _traverse<A>(
|
|
1082
|
+
self: Conc<A>,
|
|
1083
|
+
): <G extends HKT, GC = HKT.None>(
|
|
1084
|
+
G: P.Applicative<G, GC>,
|
|
1085
|
+
) => <K, Q, W, X, I, S, R, E, B>(
|
|
1086
|
+
f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
|
1087
|
+
) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Conc<B>> {
|
|
1088
|
+
return (G) => (f) => self.traverseWithIndex(G)((_, a) => f(a));
|
|
1089
|
+
}
|
|
993
1090
|
|
|
994
1091
|
/**
|
|
995
1092
|
* @tsplus getter fncts.Conc toBuffer
|
|
@@ -1000,7 +1097,7 @@ export function toBuffer(self: Conc<Byte>): Uint8Array {
|
|
|
1000
1097
|
}
|
|
1001
1098
|
|
|
1002
1099
|
/**
|
|
1003
|
-
* @tsplus
|
|
1100
|
+
* @tsplus static fncts.ConcOps unfold
|
|
1004
1101
|
*/
|
|
1005
1102
|
export function unfold<A, B>(b: B, f: (b: B) => Maybe<readonly [A, B]>): Conc<A> {
|
|
1006
1103
|
const out = builder<A>();
|
|
@@ -1018,12 +1115,14 @@ export function unfold<A, B>(b: B, f: (b: B) => Maybe<readonly [A, B]>): Conc<A>
|
|
|
1018
1115
|
}
|
|
1019
1116
|
|
|
1020
1117
|
/**
|
|
1021
|
-
* @tsplus
|
|
1022
|
-
* @tsplus index fncts.Conc
|
|
1118
|
+
* @tsplus pipeable fncts.Conc unsafeGet
|
|
1119
|
+
* @tsplus pipeable-index fncts.Conc
|
|
1023
1120
|
*/
|
|
1024
|
-
export function
|
|
1025
|
-
|
|
1026
|
-
|
|
1121
|
+
export function unsafeGet(n: number) {
|
|
1122
|
+
return <A>(self: Conc<A>): A => {
|
|
1123
|
+
concrete(self);
|
|
1124
|
+
return self.get(n);
|
|
1125
|
+
};
|
|
1027
1126
|
}
|
|
1028
1127
|
|
|
1029
1128
|
/**
|
|
@@ -1055,70 +1154,78 @@ export function unsafeTail<A>(self: Conc<A>): Conc<A> {
|
|
|
1055
1154
|
}
|
|
1056
1155
|
|
|
1057
1156
|
/**
|
|
1058
|
-
* @tsplus
|
|
1157
|
+
* @tsplus pipeable fncts.Conc unsafeUpdateAt
|
|
1059
1158
|
*/
|
|
1060
|
-
export function
|
|
1061
|
-
|
|
1062
|
-
|
|
1159
|
+
export function unsafeUpdateAt<A1>(i: number, a: A1) {
|
|
1160
|
+
return <A>(self: Conc<A>): Conc<A | A1> => {
|
|
1161
|
+
concrete(self);
|
|
1162
|
+
return self.update(i, a);
|
|
1163
|
+
};
|
|
1063
1164
|
}
|
|
1064
1165
|
|
|
1065
1166
|
/**
|
|
1066
|
-
* @tsplus
|
|
1167
|
+
* @tsplus pipeable fncts.Conc updateAt
|
|
1067
1168
|
*/
|
|
1068
|
-
export function
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1169
|
+
export function updateAt<A1>(i: number, a: A1) {
|
|
1170
|
+
return <A>(self: Conc<A>): Maybe<Conc<A | A1>> => {
|
|
1171
|
+
try {
|
|
1172
|
+
return Just(self.unsafeUpdateAt(i, a));
|
|
1173
|
+
} catch {
|
|
1174
|
+
return Nothing();
|
|
1175
|
+
}
|
|
1176
|
+
};
|
|
1074
1177
|
}
|
|
1075
1178
|
|
|
1076
1179
|
/**
|
|
1077
|
-
* @tsplus
|
|
1180
|
+
* @tsplus pipeable fncts.Conc zip
|
|
1078
1181
|
*/
|
|
1079
|
-
export function
|
|
1080
|
-
return self
|
|
1182
|
+
export function zip<B>(fb: Conc<B>) {
|
|
1183
|
+
return <A>(self: Conc<A>): Conc<readonly [A, B]> => {
|
|
1184
|
+
return self.zipWith(fb, tuple);
|
|
1185
|
+
};
|
|
1081
1186
|
}
|
|
1082
1187
|
|
|
1083
1188
|
/**
|
|
1084
|
-
* @tsplus
|
|
1189
|
+
* @tsplus pipeable fncts.Conc zipWith
|
|
1085
1190
|
*/
|
|
1086
|
-
export function
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
leftLength =
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
rightLength =
|
|
1117
|
-
|
|
1191
|
+
export function zipWith<A, B, C>(fb: Conc<B>, f: (a: A, b: B) => C) {
|
|
1192
|
+
return (self: Conc<A>): Conc<C> => {
|
|
1193
|
+
concrete(self);
|
|
1194
|
+
concrete(fb);
|
|
1195
|
+
const length = Math.min(self.length, fb.length);
|
|
1196
|
+
if (length === 0) {
|
|
1197
|
+
return Conc.empty();
|
|
1198
|
+
} else {
|
|
1199
|
+
const leftIterator = self.arrayIterator();
|
|
1200
|
+
const rightIterator = fb.arrayIterator();
|
|
1201
|
+
const out = builder<C>();
|
|
1202
|
+
let left: IteratorResult<ArrayLike<A>> = null as any;
|
|
1203
|
+
let right: IteratorResult<ArrayLike<B>> = null as any;
|
|
1204
|
+
let leftLength = 0;
|
|
1205
|
+
let rightLength = 0;
|
|
1206
|
+
let i = 0;
|
|
1207
|
+
let j = 0;
|
|
1208
|
+
let k = 0;
|
|
1209
|
+
while (i < length) {
|
|
1210
|
+
if (j < leftLength && k < rightLength) {
|
|
1211
|
+
const a = left.value[j];
|
|
1212
|
+
const b = right.value[k];
|
|
1213
|
+
const c = f(a, b);
|
|
1214
|
+
out.append(c);
|
|
1215
|
+
i++;
|
|
1216
|
+
j++;
|
|
1217
|
+
k++;
|
|
1218
|
+
} else if (j === leftLength && !(left = leftIterator.next()).done) {
|
|
1219
|
+
leftLength = left.value.length;
|
|
1220
|
+
j = 0;
|
|
1221
|
+
} else if (k === rightLength && !(right = rightIterator.next()).done) {
|
|
1222
|
+
rightLength = right.value.length;
|
|
1223
|
+
k = 0;
|
|
1224
|
+
}
|
|
1118
1225
|
}
|
|
1226
|
+
return out.result();
|
|
1119
1227
|
}
|
|
1120
|
-
|
|
1121
|
-
}
|
|
1228
|
+
};
|
|
1122
1229
|
}
|
|
1123
1230
|
|
|
1124
1231
|
/**
|
|
@@ -1129,20 +1236,22 @@ export function zipWithIndex<A>(self: Conc<A>): Conc<readonly [A, number]> {
|
|
|
1129
1236
|
}
|
|
1130
1237
|
|
|
1131
1238
|
/**
|
|
1132
|
-
* @tsplus
|
|
1239
|
+
* @tsplus pipeable fncts.Conc zipWithIndexOffset
|
|
1133
1240
|
*/
|
|
1134
|
-
export function
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1241
|
+
export function zipWithIndexOffset(offset: number) {
|
|
1242
|
+
return <A>(as: Conc<A>): Conc<readonly [A, number]> => {
|
|
1243
|
+
concrete(as);
|
|
1244
|
+
const iterator = as.arrayIterator();
|
|
1245
|
+
let next: IteratorResult<ArrayLike<A>>;
|
|
1246
|
+
let i = offset;
|
|
1247
|
+
const out = builder<readonly [A, number]>();
|
|
1248
|
+
while (!(next = iterator.next()).done) {
|
|
1249
|
+
const array = next.value;
|
|
1250
|
+
const len = array.length;
|
|
1251
|
+
for (let j = 0; i < len; j++, i++) {
|
|
1252
|
+
out.append([array[j]!, i]);
|
|
1253
|
+
}
|
|
1145
1254
|
}
|
|
1146
|
-
|
|
1147
|
-
|
|
1255
|
+
return out.result();
|
|
1256
|
+
};
|
|
1148
1257
|
}
|