digraph typeTree{

Root [label="Variable"];
Scalar [label="Scalar"];
Matrix [label="Matrix"];

Empty [label="Empty Matrix"];


SBoolean [label="Boolean"];
MBoolean [label="Boolean"];

SReal [label="Real"];
SDReal [label="double"];
SFReal [label="float"];

MReal [label="Real"];
MDReal [label="double"];
MFReal [label="float"];

SComplex [label="Complex"];
SDComplex [label="double"];
SFComplex [label="float"];

MComplex [label="Complex"];
MDComplex [label="double"];
MFComplex [label="float"];

SInteger [label="Integer"];
MInteger [label="Integer"];



Root -> {
	Scalar;
	Matrix;
}

Scalar -> {
	SBoolean;
	SReal;
	SComplex;
	SInteger;
}

Matrix -> {
	MBoolean;
	MReal;
	MComplex;
	MInteger;
	Empty;
}

SReal -> {
	SFReal;
	SDReal;
}

SComplex -> {
	SDComplex;
	SFComplex;
}

MReal -> {
	MFReal;
	MDReal;
}

MComplex -> {
	MDComplex;
	MFComplex;
}


}