data types for noncommutative algebras