@FiloSottile Remark from @chrisndodge - this is currently generating the following traceback:

```
Traceback (most recent call last):
  File "/Users/cdodge/mitx_all/edx-solutions-platform/common/lib/xmodule/xmodule/seq_module.py", line 139, in definition_from_xml
    child_block = system.process_xml(etree.tostring(child, encoding='unicode'))
  File "/Users/cdodge/mitx_all/edx-solutions-platform/common/lib/xmodule/xmodule/modulestore/xml.py", line 179, in process_xml
    id_generator,
  File "/Users/cdodge/mitx_all/edx-solutions-platform/common/lib/xmodule/xmodule/modulestore/xml.py", line 311, in create_block_from_xml
    xblock = xblock_class.parse_xml(node, system, scope_ids, id_generator)
  File "/Users/cdodge/mitx_all/edxplatform-env/src/xblock/xblock/core.py", line 352, in parse_xml
    setattr(block, name, value)
  File "/Users/cdodge/mitx_all/edxplatform-env/src/xblock/xblock/fields.py", line 391, in __set__
    value = self.enforce_type(value)
  File "/Users/cdodge/mitx_all/edx-solutions-platform/cms/lib/xblock/mixin.py", line 28, in enforce_type
    if isinstance(value, tuple, time.struct_time):
TypeError: isinstance expected 2 arguments, got 3
```

"* also that next line looks suspect too
`return self.from_json(DateTuple)`
that might need to be self.from_json(value)*"

Can you also add tests?