code: func YAML() Option {
  	return func(o *options) {
  		o.TagName = _yamlTagName
  		o.Unmarshaler = _yamlUnmarshaler
  	}
  }
docs: // YAML may be specified to decode go-yaml (gopkg.in/yaml.v2) compatible
  // types. Use this option if you have types that implement yaml.Unmarshaler
  // and use the `yaml` tag.
  //
  // 	type StringSet map[string]struct{}
  //
  // 	func (ss *StringSet) UnmarshalYAML(decode func(interface{}) error) error {
  // 		var items []string
  // 		if err := decode(&items); err != nil {
  // 			return err
  // 		}
  // 		// ..
  // 	}
  //
  // 	var x StringSet
  // 	mapdecode.Decode(&x, data, mapdecode.YAML())
  //
  // Caveat: None of the go-yaml flags are supported. Only the attribute name
  // changes will be respected. Further, note that go-yaml ignores unused
  // attributes but mapdecode fails on unused attributes by default. Use
  // IgnoreUnused to cusotmize this behavior.