added new abstract classes for Rascal types