Algebriac Data defined