a list with elements named according to the properties of the object.
This can be coerced into EML, see vignettes. NULL-valued elements (~)
can take a data entry directly, while empty list()-valued elements ()
indicate properties that take other eml objects as values.
Details
Note: while this function can be called in recursions, doing so may be a bad idea.