ADV/ADT is/type

```php
T = new <long|double>5
 T::type()				// -> T = 5: return <long>ADT
 T::type(10)			// -> $__value is acceptable: return <long>ADT
 T::type(5.5)			// -> $__value is acceptable: return <double>ADT
 T::type('foo')			// -> nothing matched, return NULL
```
```php
M = new <class|function|closure>function(){}
M::typel(0) 			// -> <closure>ADT
```
```php
T = new <long>5
T::is('long')			// true -> <long>T = 5
T::is('long', 10)		// true -> <long>T accepts int
T::is('long', 5.5)		// false -> <long>T accepts int
T::is('double')			// false -> no <double>ADT found
T::is('double', 10)		// false -> no <double>ADT found
T::is('long', 10.5)		// false -> no <double>ADT found
```