Golang: Criando um tipo constante e restringindo os valores do tipo

Eu tenho uma pergunta sobre tipos de constantes que são restritas a certos valores e como você consegue isso em Golang. Digamos que eu crie um tipounary que tem dois valores constantesPositive(1) eNegative(-1) e quero restringir o usuário desse tipo (unary) de criar outros valores do tipounary. Consigo isso criando um pacote e fazendo os valoresPositive eNegative visível e tornando o tipounary restrito ao pacote que contém? Veja o código abaixo, por exemplo

package unary

type unary int////not visible outside of the package unary

const (
    Positive unary = 1//visible outside of the package unary
    Negative unary = -1//visible outside of the package unary
)

func (u unary) String() string {//visible outside of the package unary
    if u == Positive {
        return "+"
    }
    return "-"
}

func (u unary) CalExpr() int {//visible outside of the package unary
    if u == Positive {
        return 1
    }
    return -1
}

Essa é a maneira correta de restringir um tipo a certos valores constantes?

questionAnswers(2)

yourAnswerToTheQuestion