O que é público
Sem relay, tudo do topo sai — inclusive o que começa com _. Só o relay esconde.
Uma pergunta que quem vem do Python faz: “o `_` no começo do nome esconde?”. Não. Sem relay, tudo o que o módulo define no topo sai pelo adopt — _interno inclusive. O _ é convenção para quem lê; quem esconde é o relay.
| O módulo tem | Sai pelo adopt |
|---|---|
nenhum relay | tudo do topo, com ou sem _ |
algum relay | só o que está listado |
relay a as b | b — e a fica interno |
dataforge
// contador.df, sem relay:
// _interno := 42
// action mais(): ...
//
// main.df:
// adopt ./contador as C
// out C._interno // 42 — o '_' nao escondeu
//
// Com 'relay mais' no fim de contador.df, C._interno vira erro:
// o modulo './contador' nao tem '_interno'
out "so o relay decide o que e publico"