Exportando funções com estrutura anônima como parâmetro [não pode usar valor (digite struct {…}) como tipo struct {…} no argumento para package.Func]

Aqui está um pedaço de códigoplay.google.org que roda sem nenhum 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{}{})
}

No entanto, se oPrintAnonymous() existe em outro pacote (digamos,temp), o código não funcionará:

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

Minha pergunta é:

Existe uma maneira de chamar uma função (pública) com estrutura anônima como um parâmetro (também conhecido como.k.a.PrintAnonymous() acima)?Uma função com struct vazia como parâmetro (também conhecido comoPrintAnonymous2() acima) pode ser chamado mesmo se existir em outro pacote. Esse é um caso especial?

Bem, eu sei que sempre posso nomear ostruct Para resolver o problema, estou curioso sobre isso e me pergunto por que parece que isso não é permitido.

questionAnswers(2)

yourAnswerToTheQuestion