Name: is strictly

Type: operator

Syntax: <value> is strictly { nothing | a boolean | an integer | a real | a string | a binary string | an array }

Summary:
Evaluates to true if the actual type of <value> is the specified type.

Introduced: 8.0

OS: mac, windows, linux, ios, android

Platforms: desktop, server, mobile

Example:
"Hello World!" is strictly a string -- evaluates to true

Example:
1 + 200 is strictly an integer -- evaluates to true

Example:
(100 is 100) is strictly a boolean -- evaluates to true

Example:
the compress of "Hello World!" is strictly a binary string -- evaluates to true

Parameters:
value:
The expression which will be tested for its type.

Description:
Use the <is strictly> operator to determine the true type of a
value. The true type of a value is the representation which the engine
is currently holding for it, without performing any implicit type
coercion. The true type of a value can be one of the following:

* nothing: no value, typically seen as <empty>
* boolean: either true or false, typically seen as the result of a
  comparison operator
* integer: a number with no fractional part
* real: a number with a fractional part
* string: a piece of text (sequence of characters)
* binary string: a sequence of bytes
* array: an associative array


The <is strictly> operator differs from <is a> in that it does not
perform any type coercion. For example, `x is an integer` would return
true if `x` is truly an integer or if it is a string which can be parsed
as an integer; whereas `x is strictly an integer` only returns true if
`x` is currently an integer (and not a string).

References: is not strictly (operator), is a (operator),
is not a (operator)

