>> 1) Receive the flattened (printable ?) type description.
>> 2) Throw away all of the layout information.
>> 3) Use the type information to construct a suitable datatype
>> (and allocate space for it, I assume),
>> 4) Receive the data using your new, locally constructed datatype.
In (3), I presume the user has to pass the local layout info to
replace the remote one thrown away in (2). This has to be done
recursively for all intermediate datatypes used. Any proposed
prototype for this function?