Type that unifies the Haxe standard library scalar types.
enum PrimitiveSum<T = Figure>{
Empty;
Truth(b:Bool);
Datum(figure:T);
}
enum FigureSum{
Numeral(num:Number);
Literal(str:Script);
}
enum NumberSum{
Integer32(int:Int);
IntegerUnsigned(uint:UInt);
Integer32(int:Int64);
FloatingPoint(fl:Float);
}
enum ScriptSum{
Octets(b:Bytes);
Ascii(s:String);
Utf8(s:UnicodeString);
}stx.prim.HaxePrimitive contains a dsl, which is an abstract over stx.prim.Primitive<Figure>.
import stx.prim.HaxePrimitive.HaxePrimitiveCtr.instance as HP;
function test(){
final int = HP.Make(_ -> 1)//Datum(Numeral(Integer32(1)));
final bool = HP.Make(_ -> true)//Truth(true);
final string = HP.Make(_ -> "ok")//Datum(Textual(Ascii(ok)))
}