data types for the abstract machine