code: func getDefinedMethods(ctype clientType) (map[string]string, *error_) {
  
  	var mmap = map[string]string{}
  
  	spec := redis.DefaultSpec().Db(13).Password("go-redis")
  
  	var e redis.Error
  	var client interface{}
  
  	switch ctype {
  	case sync:
  		client, e = redis.NewSynchClientWithSpec(spec)
  	case async:
  		client, e = redis.NewAsynchClientWithSpec(spec)
  	}
  	if e != nil {
  		log.Println("ignoring - ", e)
  	}
  	if client == nil {
  		return mmap, &error_{"client is nil", nil}
  	} else {
  		defer client.Quit()
  	}
  
  	tc := reflect.TypeOf(client)
  	nm := tc.NumMethod()
  
  	for i := 0; i < nm; i++ {
  		m := tc.Method(i)
  		mname := strings.ToLower(m.Name)
  		mmap[mname] = mname
  	}
  	return mmap, nil
  }
docs: // Reflect over the methods defined in redis.Client
  // and send back as []string (tolowercase)
  // TOOD get rid of redundant code in switch
  // (REVU: needs minor update to core code)