How to call an un-exported package function ?

For example this package contains a private function `hello` defined as:

```
package testlib

import "fmt"

func hello() {
    fmt.Println("Hello testlib")
}

```

Within the package main, I would like to write:

```
package main

import (
  _ "reflect"

    "testlib"
)

func main() {
    testlib.hello()
}

```

Of course, this program is incorrect.

I have googled much, many people mentioned that the `reflect` package could be used to invoke an unexported function, like:

```
obj := ... (some object)
val := reflect.ValueOf(obj);
fun := val.MethodByName("hello")
fun.Call([]reflect.Value{})

```

But all examples are based on an object (i.e,. a struct), and its methods, not a package function.