Meaning root should be named just Type or RootType.
|
var markerIndex = One; |
|
MeaningRoot = links.GetOrCreate(markerIndex, markerIndex); |
Each marker is just type "inherited" from root type. So, marker links should be like this: (Object: Type -> Object)
|
DocumentMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
ObjectMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
MemberMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
ValueMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
StringMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
EmptyStringMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
NumberMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
NegativeNumberMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
ArrayMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
EmptyArrayMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
TrueMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
FalseMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
|
NullMarker = links.GetOrCreate(MeaningRoot, Arithmetic.Increment(ref markerIndex)); |
Each marker can be named just Object or ObjectType instead of "marker".
The basic type system is like this:
Type -> Type
Type -> Value
So everything that comes after Type is Type or Value. Meaning, we can have infinite depth hierarchy of types. The special case of type is a concrete value (constant of some type).
For example, we can have:
(Array: Type -> Array)
(EmptyArray: Array -> EmptyArray)
Meaning that Array is type. And EmptyArray is concrete value (constant) of type Array.
Each value/constant is still type. Each type can be used as a standalone constant.
Meaning root should be named just
TypeorRootType.Data.Doublets.Json/csharp/Platform.Data.Doublets.Json/DefaultJsonStorage.cs
Lines 280 to 281 in eac0583
Each marker is just type "inherited" from root type. So, marker links should be like this: (Object: Type -> Object)
Data.Doublets.Json/csharp/Platform.Data.Doublets.Json/DefaultJsonStorage.cs
Lines 284 to 296 in eac0583
Each marker can be named just
ObjectorObjectTypeinstead of "marker".The basic type system is like this:
So everything that comes after
TypeisTypeorValue. Meaning, we can have infinite depth hierarchy of types. The special case of type is a concrete value (constant of some type).For example, we can have:
Meaning that
Arrayis type. AndEmptyArrayis concrete value (constant) of typeArray.Each value/constant is still type. Each type can be used as a standalone constant.