public function unique( $callback = null ) {

			$result = [];

			if ( $callback === null ) {

				$n = 0;

				for ( $i=0; $i < $this->len; $i++ ) {

					$exists = false;

					for ( $j=0; $j < $n; $j++ ) {
						if ( $this->compare( $result[$j], $this->items[$i] ) === 0 ) {
							$exists = true;
							break;
						}
					}

					if ( !$exists ) {
						$result[] = $this->items[$i];
						$n++;
					}

				}

			} else
			if ( is_callable( $callback ) ) {

				$n = 0;

				for ( $i=0; $i<$this->len; $i++ ) {

					$exists = false;

					for ( $j = 0; $j < $n; $j++ ) {
						if ( call_user_func( $callback, $result[$j], $this->items[$i] ) === 0 ) {
							$exists = true;
							break;
						}
					}

					if ( !$exists ) {
						$result[] = $this->items[$i];
						$n++;
					}

				}

			} else {
				throw new \browserfs\Exception('Invalid argument: $callback. Expected: function( any, any ): int | null' );
			}

			return new self( $result );

		}