Exportar funciones con una estructura anónima como parámetro [no puede usar el valor (tipo struct {…}) como tipo struct {…} en argumento para package.Func]

Aquí hay un códigoplay.google.org que se ejecuta sin ningún problema:

package main

import (
    "fmt"
)

func PrintAnonymous(v struct {
    i int
    s string
}) {
    fmt.Printf("%d: %s\n", v.i, v.s)
}

func PrintAnonymous2(v struct{}) {
    fmt.Println("Whatever")
}

func main() {
    value := struct {
        i int
        s string
    }{
        0, "Hello, world!",
    }
    PrintAnonymous(value)
    PrintAnonymous2(struct{}{})
}

Sin embargo, si elPrintAnonymous() la función existe en otro paquete (digamos,temp), el código no funcionará:

cannot use value (type struct { i int; s string })
as type struct { i int; s string } in argument to temp.PrintAnonymous

Mi pregunta es:

¿Hay alguna manera de llamar a una función (pública) con una estructura anónima como parámetro (a.k.a.PrintAnonymous() encima)?Una función con una estructura vacía como parámetro (a.k.a.PrintAnonymous2() arriba) se puede llamar incluso si existe en otro paquete. ¿Es este un caso especial?

Bueno, sé que siempre puedo nombrar elstruct para resolver el problema, solo tengo curiosidad por esto y me pregunto por qué parece que esto no está permitido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta