code: func Module(mod ModuleFunc) func(*Runner) error {
  	return func(r *Runner) error {
  		switch mod := mod.(type) {
  		case ModuleExec:
  			if mod == nil {
  				mod = DefaultExec
  			}
  			r.Exec = mod
  		case ModuleOpen:
  			if mod == nil {
  				mod = DefaultOpen
  			}
  			r.Open = mod
  		default:
  			return fmt.Errorf("unknown module type: %T", mod)
  		}
  		return nil
  	}
  }
docs: // Module sets an interpreter module, which can be ModuleExec or ModuleOpen. If
  // the value is nil, the default module implementation is used.