/**
* Prepends `a` to ImmutableArray
*
* @tsplus operator ImmutableArray + 1.0
*/
export function prependOperatorStrict(a: A, self: ImmutableArray): NonEmptyImmutableArray {
return new ImmutableArray([a, ...self.array]) as NonEmptyImmutableArray
}
/**
* Prepends `a` to ImmutableArray
*
* @tsplus operator ImmutableArray >
*/
export function prependOperator(
a: A,
self: ImmutableArray
): NonEmptyImmutableArray {
return new ImmutableArray([a, ...self.array] as any) as NonEmptyImmutableArray
}
/**
* Prepends `a` to ImmutableArray
*
* @tsplus static ImmutableArray.Aspects prepend
* @tsplus pipeable ImmutableArray prepend
*/
export function prepend(a: B) {
return (self: ImmutableArray): NonEmptyImmutableArray =>
new ImmutableArray([a, ...self.array]) as NonEmptyImmutableArray
}