code: function conform (value, spec, types) {
    return (conformTypes[conformDispatch(spec)] || (() => {
      throw Object.assign(Error('Unsupported type'), { spec })
    }))(value, spec, types)
  }
docs: Conform `value` against its `spec`
  @static
  @rtype (value: Any, spec: Object, types: Object) => Any, throws: Error
  @param {Object} value - Value to conform (validate and transform)
  @param {Object} spec - Specification object
  @param {Object} types - Types specification
  @return {Object} Conformed value