describing a complex data types with Magritte