code: func createPaths(paths []string) (C.CFArrayRef, error) {
  	cPaths := C.ArrayCreateMutable(C.int(len(paths)))
  	var errs []error
  	for _, path := range paths {
  		p, err := filepath.Abs(path)
  		if err != nil {
  			// hack up some reporting errors, but don't prevent execution
  			// because of them
  			errs = append(errs, err)
  		}
  		str := makeCFString(p)
  		C.CFArrayAppendValue(C.CFMutableArrayRef(cPaths), unsafe.Pointer(str))
  	}
  	var err error
  	if len(errs) > 0 {
  		err = fmt.Errorf("%q", errs)
  	}
  	return cPaths, err
  }
docs: // createPaths accepts the user defined set of paths and returns FSEvents
  // compatible array of paths