Range is an abstraction of a range, where start is allowed to be no greater than end.
count indicates the number of equal parts of the range.
When count is equal to zero, it indicates a continuous range.
closure_left, closure_right indicate whether the range contains edge values.
The default is a continuous range with left closed and right open.
When the range is infinite at any boundary, count is always 0 and the boundary can only be opened.
A package encapsulates unrelated utilities.
Type specification, int and double are standard types,
bool is constructed using BoolList which saves more memory,
and others are related to TypedData.
When any extended subclass inherits from MatrixWrapper,
please register it before calling the class for the first time.
The value type is FromListConstructor, which points to the constructor of the subclass.