# ❤ Benefits

### Primitive wrapper object of Number

Some objects are based on [primitive wrapper objects](https://developer.mozilla.org/en-US/docs/Glossary/Primitive#primitive_wrapper_objects_in_javascript), and below is a list containing some **pros** of using them and important design benefits.

<details>

<summary>Immutability</summary>

<mark style="color:green;">**✓**</mark> [**Immutable**](https://developer.mozilla.org/en-US/docs/Glossary/Immutable) primitive value of [primitive wrapper objects](https://developer.mozilla.org/en-US/docs/Glossary/Primitive#primitive_wrapper_objects_in_javascript).

</details>

<details>

<summary>The exact type</summary>

<mark style="color:green;">**✓**</mark> Specific functionality objects with generic type variables(which preserves exact type) act as **precise** types.

</details>

<details>

<summary>Object as types</summary>

<mark style="color:green;">**✓**</mark> Objects have the [`Symbol.toStringTag`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag) changed to **unique immutable** names.

<mark style="color:green;">**✓**</mark> Type of the objects can be determined by the [`Object.prototype.toString.call()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call). because of its **uniqueness** and **immutability**.&#x20;

<mark style="color:green;">**✓**</mark> There is prepared function [`typeOf()`](https://docs.angular-package.dev/v/type/helper/typeof) function of [`@angular-package/type`](https://docs.angular-package.dev/v/type) to determine these objects type.

</details>

<details>

<summary>Functionality <strong>follows</strong> the type</summary>

<mark style="color:green;">**✓**</mark> The most **important** functionalities for a **specific** name.

<mark style="color:green;">**✓**</mark> Objects have functionalities that use primitive values.

</details>

<details>

<summary>Intuitiveness</summary>

<mark style="color:green;">**✓**</mark> General and [**intuitive**](/range-1/general-concepts.md#intuitive) object names.

<mark style="color:green;">**✓**</mark> [Intuitive](/range-1/general-concepts.md#intuitive) names of generic type variables.

<mark style="color:green;">**✓**</mark> [Intuitive](/range-1/general-concepts.md#intuitive) accessor and property names.

<mark style="color:green;">**✓**</mark> [Intuitive](/range-1/general-concepts.md#intuitive) method names.

</details>

<details>

<summary>Minimalism and simplicity</summary>

<mark style="color:green;">**✓**</mark>**&#x20;Minimal**, **simple** to use and an **ease-extendable** objects.

</details>

### Functionality

<details>

<summary>Greater</summary>

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **greater** than the given value.

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **greater** than every of the given values.

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **greater** than some given values.

</details>

<details>

<summary>Less</summary>

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **less** than the given value.

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **less** than every of the given values.

<mark style="color:green;">**✓**</mark> Checks whether the primitive value is **less** than some given values.

</details>

<details>

<summary>Inequality</summary>

<mark style="color:green;">**✓**</mark> Functionality of both the `Greater` and `Less` objects.

<mark style="color:green;">**✓**</mark> Checks the primitive value whether it is **between** the given range of the minimum and maximum.

<mark style="color:green;">**✓**</mark> Checks the primitive value whether it is **between** every value of the given ranges.

<mark style="color:green;">**✓**</mark> Checks the primitive value whether it is **between** some given values.

</details>

<details>

<summary>Maximum</summary>

<mark style="color:green;">**✓**</mark> Functionality of the `Inequality` abstract object.

<mark style="color:green;">**✓**</mark> Indicates the **maximum** value.

</details>

<details>

<summary>Minimum</summary>

<mark style="color:green;">**✓**</mark> Functionality of the `Inequality` abstract object.

<mark style="color:green;">**✓**</mark> Indicates the **minimum** value.

</details>

<details>

<summary>Range</summary>

<mark style="color:green;">**✓**</mark> Indicates the range of **minimum and maximum** with the **value** and **step**.

<mark style="color:green;">**✓**</mark> The range value gives the current range.

<mark style="color:green;">**✓**</mark> Updates current range by specified steps down/up, or exact to the step.

<mark style="color:green;">**✓**</mark> Checks whether range of the given minimum and maximum is between the range of a specified `Range` object.

<mark style="color:green;">**✓**</mark> Checks whether the range of a specified `Range` object is between every range of the given `ranges`.

<mark style="color:green;">**✓**</mark> Checks whether the range of a specified `Range` object is between some given `ranges`.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.angular-package.dev/range-1/benefits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
