@fncts/base 0.0.40 → 0.0.41
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/AsyncIterable/api.cjs +384 -0
- package/_cjs/collection/AsyncIterable/api.cjs.map +1 -0
- package/_cjs/collection/AsyncIterable/definition.cjs +2 -0
- package/_cjs/collection/AsyncIterable/definition.cjs.map +1 -0
- package/_cjs/collection/{compat/Array.cjs → AsyncIterable.cjs} +3 -3
- package/_cjs/collection/AsyncIterable.cjs.map +1 -0
- package/_cjs/collection/Iterable/api/traverseConc.cjs +1 -2
- package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
- package/_cjs/collection/Iterable/api.cjs +180 -137
- package/_cjs/collection/Iterable/api.cjs.map +1 -1
- package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
- package/_cjs/collection/compat/ArrayLike/api.cjs +1 -2
- package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api/replicate.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/api.cjs +1 -2
- package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/constructors.cjs +3 -4
- package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/definition.cjs +3 -3
- package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Dictionary/api.cjs +1 -2
- package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Dictionary/definition.cjs +1 -2
- package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/api.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/definition.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/HashMap/internal.cjs +1 -2
- package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/api.cjs +1 -2
- package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
- package/_cjs/collection/immutable/HashSet/definition.cjs +1 -2
- package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api/foldLeft.cjs +1 -2
- package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api/unsafeTail.cjs +1 -2
- package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
- package/_cjs/collection/immutable/List/api.cjs +3 -4
- package/_cjs/collection/immutable/List/api.cjs.map +1 -1
- package/_cjs/collection/immutable/List/constructors.cjs +1 -2
- package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/List/definition.cjs +1 -2
- package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/api.cjs +1 -2
- package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/constructors.cjs +1 -2
- package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/definition.cjs +1 -2
- package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Queue/guards.cjs +1 -2
- package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
- package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs +18 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs +15 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs +26 -0
- package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api.cjs +562 -538
- package/_cjs/collection/immutable/ReadonlyArray/api.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs +55 -0
- package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyArray/definition.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.cjs +5 -7
- package/_cjs/collection/immutable/ReadonlyArray/instances.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableArray.cjs → ReadonlyArray.cjs} +8 -19
- package/_cjs/collection/immutable/ReadonlyArray.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs +472 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs +79 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs +2 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs.map +1 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs +49 -0
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.cjs +3 -4
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray/instances.cjs.map +1 -0
- package/_cjs/collection/immutable/{ImmutableNonEmptyArray.cjs → ReadonlyNonEmptyArray.cjs} +6 -6
- package/_cjs/collection/immutable/ReadonlyNonEmptyArray.cjs.map +1 -0
- package/_cjs/collection/immutable/RoseTree/api.cjs +1 -2
- package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
- package/_cjs/collection/immutable/RoseTree/definition.cjs +1 -2
- package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/api.cjs +1 -2
- package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
- package/_cjs/collection/immutable/SortedMap/iterator.cjs +1 -2
- package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/api.cjs +229 -230
- package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Vector/definition.cjs +1 -2
- package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
- package/_cjs/collection/mutable/ArrayDeque.cjs +1 -2
- package/_cjs/collection/mutable/ArrayDeque.cjs.map +1 -1
- package/_cjs/collection/mutable/HashMap.cjs +1 -2
- package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
- package/_cjs/collection/mutable/HashSet.cjs +1 -2
- package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
- package/_cjs/collection/mutable/ListBuffer.cjs +1 -2
- package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
- package/_cjs/collection/weak/IterableWeakMap.cjs +1 -2
- package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
- package/_cjs/control/Eval/api.cjs +89 -41
- package/_cjs/control/Eval/api.cjs.map +1 -1
- package/_cjs/control/Eval/constructors.cjs +5 -1
- package/_cjs/control/Eval/constructors.cjs.map +1 -1
- package/_cjs/control/Eval/instance.cjs +1 -2
- package/_cjs/control/Eval/instance.cjs.map +1 -1
- package/_cjs/control/Eval/run.cjs +1 -2
- package/_cjs/control/Eval/run.cjs.map +1 -1
- package/_cjs/control/Pure/api.cjs +1 -2
- package/_cjs/control/Pure/api.cjs.map +1 -1
- package/_cjs/control/Pure/definition.cjs +1 -2
- package/_cjs/control/Pure/definition.cjs.map +1 -1
- package/_cjs/control/Pure/instances.cjs +1 -2
- package/_cjs/control/Pure/instances.cjs.map +1 -1
- package/_cjs/control/Pure/runtime.cjs +15 -10
- package/_cjs/control/Pure/runtime.cjs.map +1 -1
- package/_cjs/data/CaseClass.cjs +11 -14
- package/_cjs/data/CaseClass.cjs.map +1 -1
- package/_cjs/data/Cause/api/fold.cjs +33 -34
- package/_cjs/data/Cause/api/fold.cjs.map +1 -1
- package/_cjs/data/Cause/api/isEmpty.cjs +1 -2
- package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
- package/_cjs/data/Cause/api/linearize.cjs +1 -2
- package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
- package/_cjs/data/Cause/api/prettyPrint.cjs +1 -2
- package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
- package/_cjs/data/Cause/api/unified.cjs +1 -2
- package/_cjs/data/Cause/api/unified.cjs.map +1 -1
- package/_cjs/data/Cause/api.cjs +1 -2
- package/_cjs/data/Cause/api.cjs.map +1 -1
- package/_cjs/data/Cause/definition.cjs +1 -2
- package/_cjs/data/Cause/definition.cjs.map +1 -1
- package/_cjs/data/Const/api.cjs +7 -7
- package/_cjs/data/Const/api.cjs.map +1 -1
- package/_cjs/data/Const/instances.cjs +12 -13
- package/_cjs/data/Const/instances.cjs.map +1 -1
- package/_cjs/data/Data.cjs +1 -2
- package/_cjs/data/Data.cjs.map +1 -1
- package/_cjs/data/Datum/api.cjs +110 -113
- package/_cjs/data/Datum/api.cjs.map +1 -1
- package/_cjs/data/Datum/definition.cjs +1 -2
- package/_cjs/data/Datum/definition.cjs.map +1 -1
- package/_cjs/data/Datum/instances.cjs +1 -2
- package/_cjs/data/Datum/instances.cjs.map +1 -1
- package/_cjs/data/Datum.cjs +39 -0
- package/_cjs/data/Datum.cjs.map +1 -0
- package/_cjs/data/DatumEither/api.cjs +56 -57
- package/_cjs/data/DatumEither/api.cjs.map +1 -1
- package/_cjs/data/Duration/api.cjs +1 -2
- package/_cjs/data/Duration/api.cjs.map +1 -1
- package/_cjs/data/Duration/definition.cjs +1 -2
- package/_cjs/data/Duration/definition.cjs.map +1 -1
- package/_cjs/data/Either/api/align.cjs +1 -2
- package/_cjs/data/Either/api/align.cjs.map +1 -1
- package/_cjs/data/Either/api/alignWith.cjs +1 -2
- package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
- package/_cjs/data/Either/api.cjs +53 -55
- package/_cjs/data/Either/api.cjs.map +1 -1
- package/_cjs/data/Either/constructors.cjs +21 -22
- package/_cjs/data/Either/constructors.cjs.map +1 -1
- package/_cjs/data/Either/definition.cjs +1 -2
- package/_cjs/data/Either/definition.cjs.map +1 -1
- package/_cjs/data/Either/instances.cjs +1 -2
- package/_cjs/data/Either/instances.cjs.map +1 -1
- package/_cjs/data/EitherT/api.cjs +28 -29
- package/_cjs/data/EitherT/api.cjs.map +1 -1
- package/_cjs/data/Environment/api.cjs +1 -2
- package/_cjs/data/Environment/api.cjs.map +1 -1
- package/_cjs/data/Environment/definition.cjs +1 -2
- package/_cjs/data/Environment/definition.cjs.map +1 -1
- package/_cjs/data/EnvironmentPatch.cjs +2 -3
- package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
- package/_cjs/data/Eq/api.cjs +189 -5
- package/_cjs/data/Eq/api.cjs.map +1 -1
- package/_cjs/data/Eq/derivations.cjs +10 -21
- package/_cjs/data/Eq/derivations.cjs.map +1 -1
- package/_cjs/data/Equatable/api.cjs +1 -2
- package/_cjs/data/Equatable/api.cjs.map +1 -1
- package/_cjs/data/Equatable/definition.cjs +1 -2
- package/_cjs/data/Equatable/definition.cjs.map +1 -1
- package/_cjs/data/Exit/api.cjs +90 -80
- package/_cjs/data/Exit/api.cjs.map +1 -1
- package/_cjs/data/Exit/constructors.cjs +1 -2
- package/_cjs/data/Exit/constructors.cjs.map +1 -1
- package/_cjs/data/Exit/definition.cjs +1 -2
- package/_cjs/data/Exit/definition.cjs.map +1 -1
- package/_cjs/data/FiberId/api.cjs +1 -2
- package/_cjs/data/FiberId/api.cjs.map +1 -1
- package/_cjs/data/FiberId/definition.cjs +1 -2
- package/_cjs/data/FiberId/definition.cjs.map +1 -1
- package/_cjs/data/Guard/api.cjs +13 -17
- package/_cjs/data/Guard/api.cjs.map +1 -1
- package/_cjs/data/HashEq.cjs +1 -2
- package/_cjs/data/HashEq.cjs.map +1 -1
- package/_cjs/data/Hashable/definition.cjs +1 -2
- package/_cjs/data/Hashable/definition.cjs.map +1 -1
- package/_cjs/data/Hashable/hash.cjs +1 -2
- package/_cjs/data/Hashable/hash.cjs.map +1 -1
- package/_cjs/data/Identity/api.cjs +1 -2
- package/_cjs/data/Identity/api.cjs.map +1 -1
- package/_cjs/data/Identity/definition.cjs +1 -2
- package/_cjs/data/Identity/definition.cjs.map +1 -1
- package/_cjs/data/Identity/instances.cjs +1 -2
- package/_cjs/data/Identity/instances.cjs.map +1 -1
- package/_cjs/data/Interval.cjs +1 -2
- package/_cjs/data/Interval.cjs.map +1 -1
- package/_cjs/data/Intervals.cjs +1 -2
- package/_cjs/data/Intervals.cjs.map +1 -1
- package/_cjs/data/Maybe/api.cjs +73 -60
- package/_cjs/data/Maybe/api.cjs.map +1 -1
- package/_cjs/data/Maybe/constructors.cjs +37 -38
- package/_cjs/data/Maybe/constructors.cjs.map +1 -1
- package/_cjs/data/Maybe/definition.cjs +1 -2
- package/_cjs/data/Maybe/definition.cjs.map +1 -1
- package/_cjs/data/Maybe/instances.cjs +1 -2
- package/_cjs/data/Maybe/instances.cjs.map +1 -1
- package/_cjs/data/Newtype.cjs +1 -2
- package/_cjs/data/Newtype.cjs.map +1 -1
- package/_cjs/data/Ord/api.cjs +1 -2
- package/_cjs/data/Ord/api.cjs.map +1 -1
- package/_cjs/data/Ord/definition.cjs +1 -2
- package/_cjs/data/Ord/definition.cjs.map +1 -1
- package/_cjs/data/Ord/instances.cjs +1 -2
- package/_cjs/data/Ord/instances.cjs.map +1 -1
- package/_cjs/data/Showable/definition.cjs +1 -2
- package/_cjs/data/Showable/definition.cjs.map +1 -1
- package/_cjs/data/Showable/show.cjs +1 -2
- package/_cjs/data/Showable/show.cjs.map +1 -1
- package/_cjs/data/Showable/styles.cjs +1 -2
- package/_cjs/data/Showable/styles.cjs.map +1 -1
- package/_cjs/data/Showable/util.cjs +1 -2
- package/_cjs/data/Showable/util.cjs.map +1 -1
- package/_cjs/data/Struct/api.cjs +5 -7
- package/_cjs/data/Struct/api.cjs.map +1 -1
- package/_cjs/data/Struct/definition.cjs +1 -2
- package/_cjs/data/Struct/definition.cjs.map +1 -1
- package/_cjs/data/Tag/constructors.cjs +1 -2
- package/_cjs/data/Tag/constructors.cjs.map +1 -1
- package/_cjs/data/Tag/definition.cjs +1 -2
- package/_cjs/data/Tag/definition.cjs.map +1 -1
- package/_cjs/data/These/api.cjs +86 -87
- package/_cjs/data/These/api.cjs.map +1 -1
- package/_cjs/data/These/constructors.cjs +1 -2
- package/_cjs/data/These/constructors.cjs.map +1 -1
- package/_cjs/data/These/definition.cjs +1 -2
- package/_cjs/data/These/definition.cjs.map +1 -1
- package/_cjs/data/These/destructors.cjs +1 -2
- package/_cjs/data/These/destructors.cjs.map +1 -1
- package/_cjs/data/These/instances.cjs +1 -2
- package/_cjs/data/These/instances.cjs.map +1 -1
- package/_cjs/data/Trace/api.cjs +1 -2
- package/_cjs/data/Trace/api.cjs.map +1 -1
- package/_cjs/data/Trace/constructors.cjs +1 -2
- package/_cjs/data/Trace/constructors.cjs.map +1 -1
- package/_cjs/data/Zipped.cjs +1 -2
- package/_cjs/data/Zipped.cjs.map +1 -1
- package/_cjs/data/bigint/instances.cjs +1 -2
- package/_cjs/data/bigint/instances.cjs.map +1 -1
- package/_cjs/data/boolean/instances.cjs +1 -2
- package/_cjs/data/boolean/instances.cjs.map +1 -1
- package/_cjs/data/exceptions/IOError.cjs +1 -2
- package/_cjs/data/exceptions/IOError.cjs.map +1 -1
- package/_cjs/data/exceptions/InterruptedException.cjs +1 -2
- package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
- package/_cjs/data/number/instances.cjs +1 -2
- package/_cjs/data/number/instances.cjs.map +1 -1
- package/_cjs/data/object/instances.cjs +1 -2
- package/_cjs/data/object/instances.cjs.map +1 -1
- package/_cjs/data/string/api.cjs +1 -2
- package/_cjs/data/string/api.cjs.map +1 -1
- package/_cjs/data/string/instances.cjs +1 -2
- package/_cjs/data/string/instances.cjs.map +1 -1
- package/_cjs/internal/Stack.cjs +7 -2
- package/_cjs/internal/Stack.cjs.map +1 -1
- package/_cjs/optics/At/api.cjs +1 -2
- package/_cjs/optics/At/api.cjs.map +1 -1
- package/_cjs/optics/At/definition.cjs +1 -2
- package/_cjs/optics/At/definition.cjs.map +1 -1
- package/_cjs/optics/Index/api.cjs +3 -4
- package/_cjs/optics/Index/api.cjs.map +1 -1
- package/_cjs/optics/Iso/api.cjs +1 -2
- package/_cjs/optics/Iso/api.cjs.map +1 -1
- package/_cjs/optics/Iso/definition.cjs +1 -2
- package/_cjs/optics/Iso/definition.cjs.map +1 -1
- package/_cjs/optics/Lens/api.cjs +2 -3
- package/_cjs/optics/Lens/api.cjs.map +1 -1
- package/_cjs/optics/Lens/definition.cjs +1 -2
- package/_cjs/optics/Lens/definition.cjs.map +1 -1
- package/_cjs/optics/Optional/api/compose.cjs +1 -2
- package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
- package/_cjs/optics/Optional/api/focus.cjs +1 -2
- package/_cjs/optics/Optional/api/focus.cjs.map +1 -1
- package/_cjs/optics/Optional/api.cjs +1 -2
- package/_cjs/optics/Optional/api.cjs.map +1 -1
- package/_cjs/optics/Optional/definition.cjs +1 -2
- package/_cjs/optics/Optional/definition.cjs.map +1 -1
- package/_cjs/optics/Prism/api/compose.cjs +1 -2
- package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
- package/_cjs/optics/Prism/api/focus.cjs +1 -2
- package/_cjs/optics/Prism/api/focus.cjs.map +1 -1
- package/_cjs/optics/Prism/api/fromNullable.cjs +1 -2
- package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
- package/_cjs/optics/Prism/api/just.cjs +1 -2
- package/_cjs/optics/Prism/api/just.cjs.map +1 -1
- package/_cjs/optics/Prism/definition.cjs +1 -2
- package/_cjs/optics/Prism/definition.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/compose.cjs +1 -2
- package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/focus.cjs +1 -2
- package/_cjs/optics/Traversal/api/focus.cjs.map +1 -1
- package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -2
- package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
- package/_cjs/optics/Traversal/definition.cjs +1 -2
- package/_cjs/optics/Traversal/definition.cjs.map +1 -1
- package/_cjs/typeclass/ApplicativeExcept.cjs +1 -2
- package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
- package/_cjs/typeclass/Apply.cjs +1 -2
- package/_cjs/typeclass/Apply.cjs.map +1 -1
- package/_cjs/typeclass/Chain.cjs +1 -2
- package/_cjs/typeclass/Chain.cjs.map +1 -1
- package/_cjs/typeclass/MonadExcept.cjs +1 -2
- package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
- package/_cjs/typeclass/Monoid.cjs +1 -2
- package/_cjs/typeclass/Monoid.cjs.map +1 -1
- package/_cjs/typeclass/Semialign.cjs +1 -2
- package/_cjs/typeclass/Semialign.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/api.cjs +1 -2
- package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
- package/_cjs/typeclass/Semigroup/derivations.cjs +1 -2
- package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
- package/_cjs/typeclass/Witherable.cjs +1 -2
- package/_cjs/typeclass/Witherable.cjs.map +1 -1
- package/_cjs/typeclass/WitherableWithIndex.cjs +1 -2
- package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
- package/_cjs/util/AnsiFormat.cjs +1 -2
- package/_cjs/util/AnsiFormat.cjs.map +1 -1
- package/_cjs/util/assert.cjs +1 -1
- package/_cjs/util/assert.cjs.map +1 -1
- package/_cjs/util/pattern.cjs.map +1 -1
- package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
- package/_mjs/collection/AsyncIterable/api.mjs +366 -0
- package/_mjs/collection/AsyncIterable/api.mjs.map +1 -0
- package/_mjs/collection/AsyncIterable/definition.mjs +2 -0
- package/_mjs/collection/AsyncIterable/definition.mjs.map +1 -0
- package/_mjs/collection/AsyncIterable.mjs +4 -0
- package/_mjs/collection/AsyncIterable.mjs.map +1 -0
- package/_mjs/collection/Iterable/api.mjs +175 -134
- package/_mjs/collection/Iterable/api.mjs.map +1 -1
- package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/constructors.mjs +2 -2
- package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs +1 -1
- package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/List/api.mjs +2 -2
- package/_mjs/collection/immutable/List/api.mjs.map +1 -1
- package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api/chunksOf.mjs +3 -3
- package/_mjs/collection/immutable/ReadonlyArray/api/chunksOf.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs +9 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs +19 -0
- package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/api.mjs +1302 -0
- package/_mjs/collection/immutable/ReadonlyArray/api.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs +44 -0
- package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray/definition.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.mjs +4 -5
- package/_mjs/collection/immutable/ReadonlyArray/instances.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyArray.mjs +11 -0
- package/_mjs/collection/immutable/ReadonlyArray.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs +433 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/constructors.mjs +16 -15
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/constructors.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs +2 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs +41 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs.map +1 -0
- package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.mjs +2 -2
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray/instances.mjs.map +1 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs +7 -0
- package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs.map +1 -0
- package/_mjs/collection/immutable/Vector/api.mjs +224 -224
- package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
- package/_mjs/control/Eval/api.mjs +83 -15
- package/_mjs/control/Eval/api.mjs.map +1 -1
- package/_mjs/control/Eval/constructors.mjs +4 -0
- package/_mjs/control/Eval/constructors.mjs.map +1 -1
- package/_mjs/control/Pure/runtime.mjs +14 -8
- package/_mjs/control/Pure/runtime.mjs.map +1 -1
- package/_mjs/data/CaseClass.mjs +10 -12
- package/_mjs/data/CaseClass.mjs.map +1 -1
- package/_mjs/data/Cause/api/fold.mjs +32 -32
- package/_mjs/data/Cause/api/fold.mjs.map +1 -1
- package/_mjs/data/Const/api.mjs +7 -7
- package/_mjs/data/Const/api.mjs.map +1 -1
- package/_mjs/data/Const/instances.mjs +11 -11
- package/_mjs/data/Const/instances.mjs.map +1 -1
- package/_mjs/data/Datum/api.mjs +107 -108
- package/_mjs/data/Datum/api.mjs.map +1 -1
- package/_mjs/data/Datum.mjs +5 -0
- package/_mjs/data/Datum.mjs.map +1 -0
- package/_mjs/data/DatumEither/api.mjs +53 -53
- package/_mjs/data/DatumEither/api.mjs.map +1 -1
- package/_mjs/data/Either/api.mjs +42 -42
- package/_mjs/data/Either/api.mjs.map +1 -1
- package/_mjs/data/Either/constructors.mjs +20 -20
- package/_mjs/data/Either/constructors.mjs.map +1 -1
- package/_mjs/data/EitherT/api.mjs +27 -27
- package/_mjs/data/EitherT/api.mjs.map +1 -1
- package/_mjs/data/Environment/api.mjs.map +1 -1
- package/_mjs/data/EnvironmentPatch.mjs +1 -1
- package/_mjs/data/Eq/api.mjs +175 -3
- package/_mjs/data/Eq/api.mjs.map +1 -1
- package/_mjs/data/Eq/derivations.mjs +8 -19
- package/_mjs/data/Eq/derivations.mjs.map +1 -1
- package/_mjs/data/Exit/api.mjs +88 -78
- package/_mjs/data/Exit/api.mjs.map +1 -1
- package/_mjs/data/Guard/api.mjs +12 -15
- package/_mjs/data/Guard/api.mjs.map +1 -1
- package/_mjs/data/Maybe/api.mjs +71 -58
- package/_mjs/data/Maybe/api.mjs.map +1 -1
- package/_mjs/data/Maybe/constructors.mjs +36 -36
- package/_mjs/data/Maybe/constructors.mjs.map +1 -1
- package/_mjs/data/Struct/api.mjs +4 -5
- package/_mjs/data/Struct/api.mjs.map +1 -1
- package/_mjs/data/These/api.mjs +85 -85
- package/_mjs/data/These/api.mjs.map +1 -1
- package/_mjs/internal/Stack.mjs +7 -2
- package/_mjs/internal/Stack.mjs.map +1 -1
- package/_mjs/optics/Index/api.mjs +2 -2
- package/_mjs/optics/Index/api.mjs.map +1 -1
- package/_mjs/optics/Lens/api.mjs +1 -1
- package/_mjs/util/assert.mjs +1 -1
- package/_mjs/util/assert.mjs.map +1 -1
- package/_mjs/util/pattern.mjs.map +1 -1
- package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
- package/_src/collection/AsyncIterable/api.ts +369 -0
- package/_src/collection/AsyncIterable/definition.ts +7 -0
- package/_src/collection/AsyncIterable.ts +4 -0
- package/_src/collection/Iterable/api.ts +215 -162
- package/_src/collection/Iterable/constructors.ts +0 -2
- package/_src/collection/compat/ArrayLike/definition.ts +2 -2
- package/_src/collection/compat.ts +0 -1
- package/_src/collection/immutable/Conc/constructors.ts +1 -2
- package/_src/collection/immutable/Conc/definition.ts +7 -6
- package/_src/collection/immutable/List/api.ts +2 -2
- package/_src/collection/immutable/ReadonlyArray/api/chunksOf.ts +8 -0
- package/_src/collection/immutable/ReadonlyArray/api/splitAt.ts +8 -0
- package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/api/splitWhere.ts +3 -3
- package/_src/collection/immutable/ReadonlyArray/api.ts +1536 -0
- package/_src/collection/immutable/ReadonlyArray/constructors.ts +47 -0
- package/_src/collection/{compat/Array → immutable/ReadonlyArray}/definition.ts +8 -0
- package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.ts +22 -22
- package/_src/collection/immutable/ReadonlyArray.ts +12 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/api.ts +481 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/constructors.ts +76 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/definition.ts +22 -0
- package/_src/collection/immutable/ReadonlyNonEmptyArray/destructors.ts +41 -0
- package/_src/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.ts +13 -13
- package/_src/collection/immutable/ReadonlyNonEmptyArray.ts +7 -0
- package/_src/collection/immutable/Vector/api.ts +310 -309
- package/_src/collection/immutable.ts +11 -11
- package/_src/collection.ts +6 -5
- package/_src/control/Eval/api.ts +109 -16
- package/_src/control/Eval/constructors.ts +5 -0
- package/_src/control/Pure/runtime.ts +8 -2
- package/_src/data/CaseClass.ts +5 -5
- package/_src/data/Cause/api/fold.ts +2 -2
- package/_src/data/Const/api.ts +8 -8
- package/_src/data/Const/instances.ts +10 -10
- package/_src/data/Datum/api.ts +113 -113
- package/_src/data/Datum.ts +5 -0
- package/_src/data/DatumEither/api.ts +41 -43
- package/_src/data/Either/api.ts +47 -47
- package/_src/data/Either/constructors.ts +14 -16
- package/_src/data/EitherT/api.ts +111 -110
- package/_src/data/Environment/api.ts +6 -3
- package/_src/data/Eq/api.ts +193 -4
- package/_src/data/Eq/derivations.ts +12 -19
- package/_src/data/Exit/api.ts +89 -77
- package/_src/data/Guard/api.ts +11 -11
- package/_src/data/Maybe/api.ts +82 -73
- package/_src/data/Maybe/constructors.ts +34 -36
- package/_src/data/Struct/api.ts +1 -1
- package/_src/data/These/api.ts +93 -92
- package/_src/data.ts +1 -0
- package/_src/global.ts +7 -12
- package/_src/internal/Stack.ts +6 -2
- package/_src/optics/Index/api.ts +1 -1
- package/_src/util/assert.ts +2 -2
- package/_src/util/pattern.ts +8 -90
- package/_src/util/rand/generator/RandomGenerator.ts +1 -0
- package/collection/AsyncIterable/api.d.ts +71 -0
- package/collection/AsyncIterable/definition.d.ts +9 -0
- package/collection/AsyncIterable.d.ts +2 -0
- package/collection/Iterable/api.d.ts +40 -25
- package/collection/compat/ArrayLike/definition.d.ts +2 -2
- package/collection/compat.d.ts +0 -1
- package/collection/immutable/Conc/definition.d.ts +1 -1
- package/collection/immutable/ReadonlyArray/api/chunksOf.d.ts +5 -0
- package/collection/immutable/ReadonlyArray/api/splitAt.d.ts +5 -0
- package/collection/immutable/ReadonlyArray/api/splitWhere.d.ts +6 -0
- package/collection/immutable/ReadonlyArray/api.d.ts +614 -0
- package/collection/immutable/ReadonlyArray/constructors.d.ts +30 -0
- package/collection/{compat/Array → immutable/ReadonlyArray}/definition.d.ts +8 -0
- package/collection/immutable/ReadonlyArray/instances.d.ts +87 -0
- package/collection/immutable/ReadonlyArray.d.ts +7 -0
- package/collection/immutable/ReadonlyNonEmptyArray/api.d.ts +186 -0
- package/collection/immutable/ReadonlyNonEmptyArray/constructors.d.ts +45 -0
- package/collection/immutable/ReadonlyNonEmptyArray/definition.d.ts +21 -0
- package/collection/immutable/ReadonlyNonEmptyArray/destructors.d.ts +31 -0
- package/collection/immutable/ReadonlyNonEmptyArray/instances.d.ts +52 -0
- package/collection/immutable/ReadonlyNonEmptyArray.d.ts +5 -0
- package/collection/immutable/Vector/api.d.ts +93 -93
- package/collection/immutable.d.ts +2 -2
- package/collection.d.ts +1 -0
- package/control/Eval/api.d.ts +27 -5
- package/control/Eval/constructors.d.ts +5 -0
- package/data/CaseClass.d.ts +2 -3
- package/data/Const/api.d.ts +5 -5
- package/data/Const/instances.d.ts +4 -4
- package/data/Datum/api.d.ts +64 -64
- package/data/Datum.d.ts +3 -0
- package/data/DatumEither/api.d.ts +25 -25
- package/data/Either/api.d.ts +24 -24
- package/data/Either/constructors.d.ts +12 -12
- package/data/EitherT/api.d.ts +16 -16
- package/data/Environment/api.d.ts +4 -2
- package/data/Eq/api.d.ts +89 -2
- package/data/Eq/derivations.d.ts +7 -0
- package/data/Exit/api.d.ts +43 -37
- package/data/Guard/api.d.ts +7 -8
- package/data/Maybe/api.d.ts +38 -33
- package/data/Maybe/constructors.d.ts +16 -16
- package/data/These/api.d.ts +26 -26
- package/data.d.ts +1 -0
- package/global.d.ts +4 -8
- package/internal/Stack.d.ts +2 -0
- package/optics/Lens/api.d.ts +1 -1
- package/package.json +3 -3
- package/util/assert.d.ts +1 -1
- package/_cjs/collection/compat/Array/api.cjs +0 -142
- package/_cjs/collection/compat/Array/api.cjs.map +0 -1
- package/_cjs/collection/compat/Array/definition.cjs.map +0 -1
- package/_cjs/collection/compat/Array.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +0 -19
- package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +0 -18
- package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +0 -18
- package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +0 -28
- package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +0 -59
- package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs +0 -44
- package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableArray.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +0 -474
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +0 -79
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +0 -36
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +0 -53
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +0 -1
- package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +0 -1
- package/_cjs/control/Eval/api/sequenceArray.cjs +0 -17
- package/_cjs/control/Eval/api/sequenceArray.cjs.map +0 -1
- package/_mjs/collection/compat/Array/api.mjs +0 -125
- package/_mjs/collection/compat/Array/api.mjs.map +0 -1
- package/_mjs/collection/compat/Array/definition.mjs.map +0 -1
- package/_mjs/collection/compat/Array.mjs +0 -4
- package/_mjs/collection/compat/Array.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +0 -10
- package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +0 -10
- package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +0 -20
- package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/api.mjs +0 -1284
- package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +0 -46
- package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs +0 -35
- package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableArray.mjs +0 -12
- package/_mjs/collection/immutable/ImmutableArray.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +0 -437
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -25
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +0 -43
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +0 -1
- package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +0 -7
- package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +0 -1
- package/_mjs/control/Eval/api/sequenceArray.mjs +0 -9
- package/_mjs/control/Eval/api/sequenceArray.mjs.map +0 -1
- package/_src/collection/compat/Array/api.ts +0 -134
- package/_src/collection/compat/Array.ts +0 -4
- package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api/slice.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +0 -8
- package/_src/collection/immutable/ImmutableArray/api.ts +0 -1526
- package/_src/collection/immutable/ImmutableArray/constructors.ts +0 -47
- package/_src/collection/immutable/ImmutableArray/definition.ts +0 -48
- package/_src/collection/immutable/ImmutableArray.ts +0 -13
- package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +0 -483
- package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +0 -83
- package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -47
- package/_src/collection/immutable/ImmutableNonEmptyArray/destructors.ts +0 -41
- package/_src/collection/immutable/ImmutableNonEmptyArray.ts +0 -7
- package/_src/control/Eval/api/sequenceArray.ts +0 -6
- package/collection/compat/Array/api.d.ts +0 -62
- package/collection/compat/Array.d.ts +0 -2
- package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/slice.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/splitAt.d.ts +0 -6
- package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +0 -7
- package/collection/immutable/ImmutableArray/api.d.ts +0 -602
- package/collection/immutable/ImmutableArray/constructors.d.ts +0 -32
- package/collection/immutable/ImmutableArray/definition.d.ts +0 -34
- package/collection/immutable/ImmutableArray/instances.d.ts +0 -87
- package/collection/immutable/ImmutableArray.d.ts +0 -8
- package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +0 -186
- package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +0 -46
- package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +0 -40
- package/collection/immutable/ImmutableNonEmptyArray/destructors.d.ts +0 -32
- package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +0 -52
- package/collection/immutable/ImmutableNonEmptyArray.d.ts +0 -5
- package/control/Eval/api/sequenceArray.d.ts +0 -6
- /package/_cjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.cjs +0 -0
- /package/_mjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.mjs +0 -0
@@ -1,47 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @tsplus getter fncts.ReadonlyArray asImmutableArray
|
3
|
-
* @tsplus getter fncts.Array asImmutableArray
|
4
|
-
*/
|
5
|
-
export function asImmutableArray<A>(self: ReadonlyArray<A>): ImmutableArray<A> {
|
6
|
-
return new ImmutableArray(self);
|
7
|
-
}
|
8
|
-
|
9
|
-
/**
|
10
|
-
* @tsplus static fncts.ImmutableArrayOps empty
|
11
|
-
*/
|
12
|
-
export function empty<A = never>(): ImmutableArray<A> {
|
13
|
-
return new ImmutableArray([]);
|
14
|
-
}
|
15
|
-
|
16
|
-
/**
|
17
|
-
* @tsplus static fncts.ImmutableArrayOps makeBy
|
18
|
-
*/
|
19
|
-
export function makeBy<A>(n: number, f: (i: number) => A): ImmutableArray<A> {
|
20
|
-
const j = Math.max(0, Math.floor(n));
|
21
|
-
const out = [];
|
22
|
-
for (let i = 0; i < j; i++) {
|
23
|
-
out.push(f(i));
|
24
|
-
}
|
25
|
-
return out.asImmutableArray;
|
26
|
-
}
|
27
|
-
|
28
|
-
/**
|
29
|
-
* @tsplus static fncts.ImmutableArrayOps range
|
30
|
-
*/
|
31
|
-
export function range(start: number, end: number): ImmutableArray<number> {
|
32
|
-
return ImmutableArray.makeBy(end - start + 1, (i) => start + i);
|
33
|
-
}
|
34
|
-
|
35
|
-
/**
|
36
|
-
* @tsplus static fncts.ImmutableArrayOps replicate
|
37
|
-
*/
|
38
|
-
export function replicate<A>(n: number, a: A): ImmutableArray<A> {
|
39
|
-
return ImmutableArray.makeBy(n, () => a);
|
40
|
-
}
|
41
|
-
|
42
|
-
/**
|
43
|
-
* @tsplus static fncts.ImmutableArrayOps __call
|
44
|
-
*/
|
45
|
-
export function make<A>(...values: ReadonlyArray<A>): ImmutableArray<A> {
|
46
|
-
return new ImmutableArray(values);
|
47
|
-
}
|
@@ -1,48 +0,0 @@
|
|
1
|
-
export const ImmutableArrayVariance = Symbol.for("fncts.ImmutableArray.Variance");
|
2
|
-
export type ImmutableArrayVariance = typeof ImmutableArrayVariance;
|
3
|
-
|
4
|
-
export const ImmutableArrayTypeId = Symbol.for("fncts.ImmutableArray");
|
5
|
-
export type ImmutableArrayTypeId = typeof ImmutableArrayTypeId;
|
6
|
-
|
7
|
-
export interface ImmutableArrayF extends HKT {
|
8
|
-
type: ImmutableArray<this["A"]>;
|
9
|
-
variance: {
|
10
|
-
A: "+";
|
11
|
-
};
|
12
|
-
index: number;
|
13
|
-
}
|
14
|
-
|
15
|
-
/**
|
16
|
-
* @tsplus type fncts.ImmutableArray
|
17
|
-
* @tsplus companion fncts.ImmutableArrayOps
|
18
|
-
*/
|
19
|
-
export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
|
20
|
-
readonly [ImmutableArrayTypeId]: ImmutableArrayTypeId = ImmutableArrayTypeId;
|
21
|
-
declare [ImmutableArrayVariance]: {
|
22
|
-
readonly _A: (_: never) => A;
|
23
|
-
};
|
24
|
-
constructor(readonly _array: ReadonlyArray<A>) {}
|
25
|
-
|
26
|
-
[Symbol.equals](that: unknown): boolean {
|
27
|
-
return (
|
28
|
-
isImmutableArray(that) &&
|
29
|
-
this._array.length === that._array.length &&
|
30
|
-
this._array.every((a, i) => Equatable.strictEquals(a, that._array[i]))
|
31
|
-
);
|
32
|
-
}
|
33
|
-
|
34
|
-
get [Symbol.hash]() {
|
35
|
-
return Hashable.array(this._array);
|
36
|
-
}
|
37
|
-
|
38
|
-
[Symbol.iterator]() {
|
39
|
-
return this._array[Symbol.iterator]();
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
/**
|
44
|
-
* @tsplus static fncts.ImmutableArrayOps is
|
45
|
-
*/
|
46
|
-
export function isImmutableArray(u: unknown): u is ImmutableArray<unknown> {
|
47
|
-
return isObject(u) && ImmutableArrayTypeId in u;
|
48
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// codegen:start { preset: barrel, include: ./ImmutableArray/*.ts }
|
2
|
-
export * from "./ImmutableArray/api.js";
|
3
|
-
export * from "./ImmutableArray/constructors.js";
|
4
|
-
export * from "./ImmutableArray/definition.js";
|
5
|
-
export * from "./ImmutableArray/instances.js";
|
6
|
-
// codegen:end
|
7
|
-
|
8
|
-
// codegen:start { preset: barrel, include: ./ImmutableArray/api/*.ts }
|
9
|
-
export * from "./ImmutableArray/api/chunksOf.js";
|
10
|
-
export * from "./ImmutableArray/api/slice.js";
|
11
|
-
export * from "./ImmutableArray/api/splitAt.js";
|
12
|
-
export * from "./ImmutableArray/api/splitWhere.js";
|
13
|
-
// codegen:end
|
@@ -1,483 +0,0 @@
|
|
1
|
-
import type { ImmutableNonEmptyArrayF } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
|
2
|
-
|
3
|
-
import { allocWithHead } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/constructors";
|
4
|
-
import { ImmutableNonEmptyArray } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
|
5
|
-
import { identity } from "@fncts/base/data/function";
|
6
|
-
import * as P from "@fncts/base/typeclass";
|
7
|
-
|
8
|
-
/**
|
9
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray ap
|
10
|
-
*/
|
11
|
-
export function ap_<A>(fa: ImmutableNonEmptyArray<A>) {
|
12
|
-
return <B>(self: ImmutableNonEmptyArray<(a: A) => B>): ImmutableNonEmptyArray<B> => {
|
13
|
-
return self.flatMap((f) => fa.map((a) => f(a)));
|
14
|
-
};
|
15
|
-
}
|
16
|
-
|
17
|
-
/**
|
18
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray append
|
19
|
-
*/
|
20
|
-
export function append<B>(last: B) {
|
21
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A | B> => {
|
22
|
-
const len = self.length;
|
23
|
-
const r = Array<A | B>(len + 1);
|
24
|
-
r[len] = last;
|
25
|
-
for (let i = 0; i < len; i++) {
|
26
|
-
r[i] = self._array[i]!;
|
27
|
-
}
|
28
|
-
return r.unsafeAsNonEmptyArray;
|
29
|
-
};
|
30
|
-
}
|
31
|
-
|
32
|
-
/**
|
33
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray align
|
34
|
-
*/
|
35
|
-
export function align<B>(fb: ImmutableNonEmptyArray<B>) {
|
36
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<These<A, B>> => {
|
37
|
-
return self.alignWith(fb, identity);
|
38
|
-
};
|
39
|
-
}
|
40
|
-
|
41
|
-
/**
|
42
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray alignWith
|
43
|
-
*/
|
44
|
-
export function alignWith<A, B, C>(fb: ImmutableNonEmptyArray<B>, f: (_: These<A, B>) => C) {
|
45
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<C> => {
|
46
|
-
const minlen = Math.min(self.length, fb.length);
|
47
|
-
const maxlen = Math.max(self.length, fb.length);
|
48
|
-
const ret = allocWithHead(f(These.both(self.head, fb.head)), maxlen);
|
49
|
-
for (let i = 1; i < minlen; i++) {
|
50
|
-
ret[i] = f(These.both(self._array[i]!, fb._array[i]!));
|
51
|
-
}
|
52
|
-
if (minlen === maxlen) {
|
53
|
-
return ImmutableNonEmptyArray.from(ret);
|
54
|
-
} else if (self.length > fb.length) {
|
55
|
-
for (let i = minlen; i < maxlen; i++) {
|
56
|
-
ret[i] = f(These.left(self._array[i]!));
|
57
|
-
}
|
58
|
-
} else {
|
59
|
-
for (let i = minlen; i < maxlen; i++) {
|
60
|
-
ret[i] = f(These.right(fb._array[i]!));
|
61
|
-
}
|
62
|
-
}
|
63
|
-
return ImmutableNonEmptyArray.from(ret);
|
64
|
-
};
|
65
|
-
}
|
66
|
-
|
67
|
-
/**
|
68
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray flatMap
|
69
|
-
*/
|
70
|
-
export function flatMap<A, B>(f: (a: A) => ImmutableNonEmptyArray<B>) {
|
71
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<B> => {
|
72
|
-
return self.flatMapWithIndex((_, a) => f(a));
|
73
|
-
};
|
74
|
-
}
|
75
|
-
|
76
|
-
/**
|
77
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray flatMapWithIndex
|
78
|
-
*/
|
79
|
-
export function flatMapWithIndex<A, B>(f: (i: number, a: A) => ImmutableNonEmptyArray<B>) {
|
80
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<B> => {
|
81
|
-
let outLen = 1;
|
82
|
-
const len = self.length;
|
83
|
-
const temp = allocWithHead(f(0, self._array[0]), len);
|
84
|
-
for (let i = 1; i < len; i++) {
|
85
|
-
const e = self._array[i]!;
|
86
|
-
const arr = f(i, e);
|
87
|
-
outLen += arr.length;
|
88
|
-
temp[i] = arr;
|
89
|
-
}
|
90
|
-
const out = Array(outLen);
|
91
|
-
const out0 = temp[0];
|
92
|
-
const len0 = temp[0].length;
|
93
|
-
for (let j = 0; j < len0; j++) {
|
94
|
-
out[j] = out0._array[j]!;
|
95
|
-
}
|
96
|
-
let start = temp[0].length;
|
97
|
-
for (let i = 1; i < len; i++) {
|
98
|
-
const arr = temp[i]!;
|
99
|
-
const l = arr.length;
|
100
|
-
for (let j = 0; j < l; j++) {
|
101
|
-
out[j + start] = arr._array[j]!;
|
102
|
-
}
|
103
|
-
start += l;
|
104
|
-
}
|
105
|
-
return out.unsafeAsNonEmptyArray;
|
106
|
-
};
|
107
|
-
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray chop
|
111
|
-
*/
|
112
|
-
export function chop<A, B>(f: (as: ImmutableNonEmptyArray<A>) => readonly [B, ImmutableArray<A>]) {
|
113
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<B> => {
|
114
|
-
const [b, rest] = f(self);
|
115
|
-
const result = [b];
|
116
|
-
let next = rest;
|
117
|
-
while (next.isNonEmpty()) {
|
118
|
-
const [b, c] = f(next);
|
119
|
-
result.push(b);
|
120
|
-
next = c;
|
121
|
-
}
|
122
|
-
return result.unsafeAsNonEmptyArray;
|
123
|
-
};
|
124
|
-
}
|
125
|
-
|
126
|
-
/**
|
127
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray chunksOf
|
128
|
-
*/
|
129
|
-
export function chunksOf(n: number) {
|
130
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<ImmutableNonEmptyArray<A>> => {
|
131
|
-
return self.chop((as) => as.splitAt(n));
|
132
|
-
};
|
133
|
-
}
|
134
|
-
|
135
|
-
/**
|
136
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray concat
|
137
|
-
*/
|
138
|
-
export function concat<B>(that: ImmutableArray<B>) {
|
139
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A | B> => {
|
140
|
-
const leny = that.length;
|
141
|
-
if (leny === 0) {
|
142
|
-
return self;
|
143
|
-
}
|
144
|
-
const lenx = self.length;
|
145
|
-
const r = Array<A | B>(lenx + leny);
|
146
|
-
for (let i = 0; i < lenx; i++) {
|
147
|
-
r[i] = self._array[i]!;
|
148
|
-
}
|
149
|
-
for (let i = 0; i < leny; i++) {
|
150
|
-
r[i + lenx] = that._array[i]!;
|
151
|
-
}
|
152
|
-
return r.unsafeAsNonEmptyArray;
|
153
|
-
};
|
154
|
-
}
|
155
|
-
|
156
|
-
/**
|
157
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray crossWith
|
158
|
-
*/
|
159
|
-
export function crossWith<A, B, C>(fb: ImmutableNonEmptyArray<B>, f: (a: A, b: B) => C) {
|
160
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<C> => {
|
161
|
-
return self.flatMap((a) => fb.map((b) => f(a, b)));
|
162
|
-
};
|
163
|
-
}
|
164
|
-
|
165
|
-
/**
|
166
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray cross
|
167
|
-
*/
|
168
|
-
export function cross<B>(fb: ImmutableNonEmptyArray<B>) {
|
169
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<Zipped.Make<A, B>> => {
|
170
|
-
return self.crossWith(fb, (a, b) => Zipped(a, b));
|
171
|
-
};
|
172
|
-
}
|
173
|
-
|
174
|
-
/**
|
175
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray elem
|
176
|
-
*/
|
177
|
-
export function elem<A>(a: A, /** @tsplus auto */ E: P.Eq<A>) {
|
178
|
-
return (self: ImmutableNonEmptyArray<A>): boolean => {
|
179
|
-
const p = (element: A) => E.equals(element)(a);
|
180
|
-
const len = self.length;
|
181
|
-
for (let i = 0; i < len; i++) {
|
182
|
-
if (p(self._array[i]!)) {
|
183
|
-
return true;
|
184
|
-
}
|
185
|
-
}
|
186
|
-
return false;
|
187
|
-
};
|
188
|
-
}
|
189
|
-
|
190
|
-
/**
|
191
|
-
* @tsplus getter fncts.ImmutableNonEmptyArray flatten
|
192
|
-
*/
|
193
|
-
export function flatten<A>(self: ImmutableNonEmptyArray<ImmutableNonEmptyArray<A>>): ImmutableNonEmptyArray<A> {
|
194
|
-
return self.flatMap(identity);
|
195
|
-
}
|
196
|
-
|
197
|
-
/**
|
198
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray fold
|
199
|
-
*/
|
200
|
-
export function fold<A>(/** @tsplus auto */ S: P.Semigroup<A>) {
|
201
|
-
return (self: ImmutableNonEmptyArray<A>): A => {
|
202
|
-
return self.slice(1).foldLeft(self._array[0], (b, a) => S.combine(a)(b));
|
203
|
-
};
|
204
|
-
}
|
205
|
-
|
206
|
-
/**
|
207
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldLeft
|
208
|
-
*/
|
209
|
-
export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
|
210
|
-
return (self: ImmutableNonEmptyArray<A>): B => {
|
211
|
-
return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
|
212
|
-
};
|
213
|
-
}
|
214
|
-
|
215
|
-
/**
|
216
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldLeftWithIndex
|
217
|
-
*/
|
218
|
-
export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
|
219
|
-
return (self: ImmutableNonEmptyArray<A>): B => {
|
220
|
-
const len = self.length;
|
221
|
-
let r = b;
|
222
|
-
for (let i = 0; i < len; i++) {
|
223
|
-
r = f(i, r, self._array[i]!);
|
224
|
-
}
|
225
|
-
return r;
|
226
|
-
};
|
227
|
-
}
|
228
|
-
|
229
|
-
/**
|
230
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldMapWithIndex
|
231
|
-
*/
|
232
|
-
export function foldMapWithIndex<A, M>(f: (i: number, a: A) => M, /** @tsplus auto */ M: P.Monoid<M>) {
|
233
|
-
return (self: ImmutableNonEmptyArray<A>): M => {
|
234
|
-
return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(f(i, a))(b));
|
235
|
-
};
|
236
|
-
}
|
237
|
-
|
238
|
-
/**
|
239
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldMap
|
240
|
-
*/
|
241
|
-
export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: P.Monoid<M>) {
|
242
|
-
return (self: ImmutableNonEmptyArray<A>): M => {
|
243
|
-
return self.foldMapWithIndex((_, a) => f(a), M);
|
244
|
-
};
|
245
|
-
}
|
246
|
-
|
247
|
-
/**
|
248
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldRight
|
249
|
-
*/
|
250
|
-
export function foldRight<A, B>(b: B, f: (a: A, b: B) => B) {
|
251
|
-
return (self: ImmutableNonEmptyArray<A>): B => {
|
252
|
-
return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
|
253
|
-
};
|
254
|
-
}
|
255
|
-
|
256
|
-
/**
|
257
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray foldRightWithIndex
|
258
|
-
*/
|
259
|
-
export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B) {
|
260
|
-
return (self: ImmutableNonEmptyArray<A>): B => {
|
261
|
-
let r = b;
|
262
|
-
for (let i = self.length - 1; i >= 0; i--) {
|
263
|
-
r = f(i, self._array[i]!, r);
|
264
|
-
}
|
265
|
-
return r;
|
266
|
-
};
|
267
|
-
}
|
268
|
-
|
269
|
-
/**
|
270
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray group
|
271
|
-
*/
|
272
|
-
export function group<A>(/** @tsplus auto */ E: P.Eq<A>) {
|
273
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<ImmutableNonEmptyArray<A>> => {
|
274
|
-
return self.chop((as) => {
|
275
|
-
const h = as._array[0];
|
276
|
-
const out = [h];
|
277
|
-
let i = 1;
|
278
|
-
for (; i < as.length; i++) {
|
279
|
-
const a = as._array[i]!;
|
280
|
-
if (E.equals(h)(a)) {
|
281
|
-
out.push(a);
|
282
|
-
} else {
|
283
|
-
break;
|
284
|
-
}
|
285
|
-
}
|
286
|
-
return [out.unsafeAsNonEmptyArray, as.slice(i)];
|
287
|
-
});
|
288
|
-
};
|
289
|
-
}
|
290
|
-
|
291
|
-
export function groupSort<A>(
|
292
|
-
as: ImmutableNonEmptyArray<A>,
|
293
|
-
/** @tsplus auto */ O: P.Ord<A>,
|
294
|
-
): ImmutableNonEmptyArray<ImmutableNonEmptyArray<A>> {
|
295
|
-
return as.sort(O).group(O);
|
296
|
-
}
|
297
|
-
|
298
|
-
/**
|
299
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray isOutOfBound
|
300
|
-
*/
|
301
|
-
export function isOutOfBound(i: number) {
|
302
|
-
return <A>(as: ImmutableNonEmptyArray<A>): boolean => {
|
303
|
-
return i < 0 || i >= as.length;
|
304
|
-
};
|
305
|
-
}
|
306
|
-
|
307
|
-
/**
|
308
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray map
|
309
|
-
*/
|
310
|
-
export function map<A, B>(f: (a: A) => B) {
|
311
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<B> => {
|
312
|
-
return self.mapWithIndex((_, a) => f(a));
|
313
|
-
};
|
314
|
-
}
|
315
|
-
|
316
|
-
/**
|
317
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray mapWithIndex
|
318
|
-
*/
|
319
|
-
export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
|
320
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<B> => {
|
321
|
-
const out = allocWithHead(f(0, self._array[0]), self.length);
|
322
|
-
for (let i = 1; i < self.length; i++) {
|
323
|
-
out[i] = f(i, self._array[i]!);
|
324
|
-
}
|
325
|
-
return ImmutableNonEmptyArray.from(out);
|
326
|
-
};
|
327
|
-
}
|
328
|
-
|
329
|
-
/**
|
330
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray max
|
331
|
-
*/
|
332
|
-
export function max<A>(/** @tsplus auto */ O: P.Ord<A>) {
|
333
|
-
return (self: ImmutableNonEmptyArray<A>): A => {
|
334
|
-
const S = P.Semigroup.max(O);
|
335
|
-
const [head, tail] = self.unprepend;
|
336
|
-
return tail.isNonEmpty() ? tail.foldLeft(head, (b, a) => S.combine(a)(b)) : head;
|
337
|
-
};
|
338
|
-
}
|
339
|
-
|
340
|
-
/**
|
341
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray max
|
342
|
-
*/
|
343
|
-
export function min<A>(/** @tsplus auto */ O: P.Ord<A>) {
|
344
|
-
return (self: ImmutableNonEmptyArray<A>): A => {
|
345
|
-
const S = P.Semigroup.min(O);
|
346
|
-
const [head, tail] = self.unprepend;
|
347
|
-
return tail.isNonEmpty() ? tail.foldLeft(head, (b, a) => S.combine(a)(b)) : head;
|
348
|
-
};
|
349
|
-
}
|
350
|
-
|
351
|
-
/**
|
352
|
-
* @tsplus getter fncts.ImmutableNonEmptyArray mutableClone
|
353
|
-
*/
|
354
|
-
export function mutableClone<A>(as: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A> {
|
355
|
-
return as._array.slice(0).unsafeAsNonEmptyArray;
|
356
|
-
}
|
357
|
-
|
358
|
-
/**
|
359
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray prepend
|
360
|
-
*/
|
361
|
-
export function prepend<B>(head: B) {
|
362
|
-
return <A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A | B> => {
|
363
|
-
const len = self.length;
|
364
|
-
const out = Array<A | B>(len + 1);
|
365
|
-
out[0] = head;
|
366
|
-
for (let i = 0; i < len; i++) {
|
367
|
-
out[i + 1] = self._array[i]!;
|
368
|
-
}
|
369
|
-
return out.unsafeAsNonEmptyArray;
|
370
|
-
};
|
371
|
-
}
|
372
|
-
|
373
|
-
/**
|
374
|
-
* @tsplus getter fncts.ImmutableNonEmptyArray reverse
|
375
|
-
*/
|
376
|
-
export function reverse<A>(self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A> {
|
377
|
-
if (self.length === 1) {
|
378
|
-
return self;
|
379
|
-
}
|
380
|
-
const out = allocWithHead(self[self.length - 1]!, self.length);
|
381
|
-
for (let j = 1, i = self.length - 2; i >= 0; i--, j++) {
|
382
|
-
out[j] = self._array[i]!;
|
383
|
-
}
|
384
|
-
return ImmutableNonEmptyArray.from(out);
|
385
|
-
}
|
386
|
-
|
387
|
-
/**
|
388
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray splitAt
|
389
|
-
*/
|
390
|
-
export function splitAt(n: number) {
|
391
|
-
return <A>(self: ImmutableNonEmptyArray<A>): readonly [ImmutableNonEmptyArray<A>, ImmutableArray<A>] => {
|
392
|
-
const m = Math.max(1, n);
|
393
|
-
return m >= self.length
|
394
|
-
? [self, ImmutableArray.empty()]
|
395
|
-
: [self._array.slice(0, m).unsafeAsNonEmptyArray, self.slice(m)];
|
396
|
-
};
|
397
|
-
}
|
398
|
-
|
399
|
-
/**
|
400
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray sort
|
401
|
-
*/
|
402
|
-
export function sort<A>(/** @tsplus auto */ O: P.Ord<A>) {
|
403
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A> => {
|
404
|
-
return self.length === 1
|
405
|
-
? self
|
406
|
-
: self._array.slice().sort((first, second) => O.compare(second)(first)).unsafeAsNonEmptyArray;
|
407
|
-
};
|
408
|
-
}
|
409
|
-
|
410
|
-
/**
|
411
|
-
* @tsplus getter fncts.ImmutableNonEmptyArray traverseWithIndex
|
412
|
-
*/
|
413
|
-
export function _traverseWithIndex<A>(
|
414
|
-
self: ImmutableNonEmptyArray<A>,
|
415
|
-
): <G extends HKT, GC = HKT.None>(
|
416
|
-
G: P.Applicative<G, GC>,
|
417
|
-
) => <K, Q, W, X, I, S, R, E, B>(
|
418
|
-
f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
419
|
-
) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableNonEmptyArray<B>>;
|
420
|
-
export function _traverseWithIndex<A>(
|
421
|
-
self: ImmutableNonEmptyArray<A>,
|
422
|
-
): <G>(
|
423
|
-
G: P.Applicative<HKT.F<G>>,
|
424
|
-
) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, ImmutableNonEmptyArray<B>> {
|
425
|
-
return (G) => (f) =>
|
426
|
-
self.tail.foldLeftWithIndex(f(0, self.head).pipe(G.map((b) => ImmutableNonEmptyArray(b))), (i, fbs, a) =>
|
427
|
-
fbs.pipe(G.zipWith(f(i + 1, a), (bs, b) => bs.append(b))),
|
428
|
-
);
|
429
|
-
}
|
430
|
-
|
431
|
-
/**
|
432
|
-
* @tsplus getter fncts.ImmutableNonEmptyArray traverse
|
433
|
-
*/
|
434
|
-
export function _traverse<A>(
|
435
|
-
self: ImmutableNonEmptyArray<A>,
|
436
|
-
): <G extends HKT, GC = HKT.None>(
|
437
|
-
G: P.Applicative<G, GC>,
|
438
|
-
) => <K, Q, W, X, I, S, R, E, B>(
|
439
|
-
f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
|
440
|
-
) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableNonEmptyArray<B>> {
|
441
|
-
return (G) => (f) => self.traverseWithIndex(G)((_, a) => f(a));
|
442
|
-
}
|
443
|
-
|
444
|
-
export const traverseWithIndex: P.TraversableWithIndex<ImmutableNonEmptyArrayF>["traverseWithIndex"] =
|
445
|
-
(G) => (f) => (self) =>
|
446
|
-
self.traverseWithIndex(G)(f);
|
447
|
-
|
448
|
-
export const traverse: P.Traversable<ImmutableNonEmptyArrayF>["traverse"] = (G) => (f) => (self) =>
|
449
|
-
self.traverseWithIndex(G)((_, a) => f(a));
|
450
|
-
|
451
|
-
/**
|
452
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray uniq
|
453
|
-
*/
|
454
|
-
export function uniq<A>(/** @tsplus auto */ E: P.Eq<A>) {
|
455
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<A> => {
|
456
|
-
if (self.length === 1) {
|
457
|
-
return self;
|
458
|
-
}
|
459
|
-
const out = [self._array[0]];
|
460
|
-
const len = self.length;
|
461
|
-
for (let i = 1; i < len; i++) {
|
462
|
-
const a = self._array[i]!;
|
463
|
-
if (!out.unsafeAsNonEmptyArray.elem(a, E)) {
|
464
|
-
out.push(a);
|
465
|
-
}
|
466
|
-
}
|
467
|
-
return out.unsafeAsNonEmptyArray;
|
468
|
-
};
|
469
|
-
}
|
470
|
-
|
471
|
-
/**
|
472
|
-
* @tsplus pipeable fncts.ImmutableNonEmptyArray zipWith
|
473
|
-
*/
|
474
|
-
export function zipWith<A, B, C>(fb: ImmutableNonEmptyArray<B>, f: (a: A, b: B) => C) {
|
475
|
-
return (self: ImmutableNonEmptyArray<A>): ImmutableNonEmptyArray<C> => {
|
476
|
-
const len = Math.min(self.length, fb.length);
|
477
|
-
const cs = allocWithHead(f(self._array[0], fb._array[0]), len);
|
478
|
-
for (let i = 1; i < len; i++) {
|
479
|
-
cs[i] = f(self._array[i]!, fb._array[i]!);
|
480
|
-
}
|
481
|
-
return ImmutableNonEmptyArray.from(cs);
|
482
|
-
};
|
483
|
-
}
|
@@ -1,83 +0,0 @@
|
|
1
|
-
import { ImmutableNonEmptyArray } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
|
2
|
-
|
3
|
-
export function allocWithHead<A>(
|
4
|
-
head: A,
|
5
|
-
length: number,
|
6
|
-
): Array<A> & {
|
7
|
-
0: A;
|
8
|
-
} {
|
9
|
-
const as = new Array(length);
|
10
|
-
as[0] = head;
|
11
|
-
return as as Array<A> & {
|
12
|
-
0: A;
|
13
|
-
};
|
14
|
-
}
|
15
|
-
|
16
|
-
/**
|
17
|
-
* @tsplus getter fncts.ReadonlyArray unsafeAsNonEmptyArray
|
18
|
-
* @tsplus getter fncts.Array unsafeAsNonEmptyArray
|
19
|
-
*/
|
20
|
-
export function unsafeAsNonEmptyArray<A>(self: ReadonlyArray<A>): ImmutableNonEmptyArray<A> {
|
21
|
-
if (self.length === 0) {
|
22
|
-
throw new IndexOutOfBoundsError("0 length Array supplied to Array#unsafeAsNonEmpty");
|
23
|
-
}
|
24
|
-
return new ImmutableNonEmptyArray(
|
25
|
-
self as ReadonlyArray<A> & {
|
26
|
-
readonly 0: A;
|
27
|
-
},
|
28
|
-
);
|
29
|
-
}
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @tsplus static fncts.ImmutableNonEmptyArrayOps from
|
33
|
-
*/
|
34
|
-
export function from<A>(
|
35
|
-
self: ReadonlyArray<A> & {
|
36
|
-
readonly 0: A;
|
37
|
-
},
|
38
|
-
): ImmutableNonEmptyArray<A> {
|
39
|
-
return new ImmutableNonEmptyArray(self);
|
40
|
-
}
|
41
|
-
|
42
|
-
/**
|
43
|
-
* @tsplus static fncts.ImmutableNonEmptyArrayOps fromArray
|
44
|
-
* @tsplus getter fncts.ImmutableArray toNonEmptyArray
|
45
|
-
*/
|
46
|
-
export function fromArray<A>(self: ImmutableArray<A>): Maybe<ImmutableNonEmptyArray<A>> {
|
47
|
-
return self.isNonEmpty() ? Just(self) : Nothing();
|
48
|
-
}
|
49
|
-
|
50
|
-
/**
|
51
|
-
* @tsplus static fncts.ImmutableNonEmptyArrayOps __call
|
52
|
-
*/
|
53
|
-
export function make<A>(...values: NonEmptyArray<A>): ImmutableNonEmptyArray<A> {
|
54
|
-
return new ImmutableNonEmptyArray(values);
|
55
|
-
}
|
56
|
-
|
57
|
-
/**
|
58
|
-
* @tsplus static fncts.ImmutableNonEmptyArrayOps makeBy
|
59
|
-
*/
|
60
|
-
export function makeBy<A>(n: number, f: (i: number) => A): ImmutableNonEmptyArray<A> {
|
61
|
-
const len = Math.max(0, Math.floor(n));
|
62
|
-
const out = allocWithHead(f(0), len);
|
63
|
-
for (let i = 1; i < len; i++) {
|
64
|
-
out.push(f(i));
|
65
|
-
}
|
66
|
-
return new ImmutableNonEmptyArray(out);
|
67
|
-
}
|
68
|
-
|
69
|
-
/**
|
70
|
-
* @tsplus static fncts.ImmutableNonEmptyArray replicate
|
71
|
-
*/
|
72
|
-
export function replicate<A>(n: number, a: A): ImmutableNonEmptyArray<A> {
|
73
|
-
return ImmutableNonEmptyArray.makeBy(n, () => a);
|
74
|
-
}
|
75
|
-
|
76
|
-
/**
|
77
|
-
* @tsplus static fncts.ImmutableNonEmptyArrayOps range
|
78
|
-
*/
|
79
|
-
export function range(start: number, end: number): ImmutableNonEmptyArray<number> {
|
80
|
-
return start <= end
|
81
|
-
? ImmutableNonEmptyArray.makeBy(end - start + 1, (i) => start + i)
|
82
|
-
: ImmutableNonEmptyArray(start);
|
83
|
-
}
|