Knowledge<T>
O tipo epistêmico de valor do Sounio: unwrap explícito, sem perda silenciosa de incerteza.
Knowledge<T>
Knowledge<T> é o tipo epistêmico de valor do Sounio: um valor pareado com metadados sobre o quão conhecido ele é.
O que Funciona Hoje (Realidade do Compilador)
Você pode construir um Knowledge<T> e extrair explicitamente o T subjacente:
fn main() with IO {
let k = Knowledge { value: 42.0 }
// Explicit extraction requires a reason string.
let x: f64 = k.unwrap("accepted for demo")
if x == 42.0 {
print("knowledge_unwrap: PASS\n")
} else {
print("knowledge_unwrap: FAIL\n")
}
}
A propriedade principal é sem unwrap silencioso: o código precisa dizer por que está descartando informação epistêmica.
Na Spec / Design da Stdlib (Modelo Epistêmico Completo)
A especificação da linguagem e o design da stdlib buscam que Knowledge<T> carregue (no mínimo):
- uma estimativa pontual (
value: T) - incerteza (por exemplo, variância)
- confiança/credibilidade
- proveniência (de onde veio, e como foi transformado)
Você verá esse modelo mais rico no módulo epistêmico da stdlib (e na spec formal), mesmo que alguns campos e regras de propagação não estejam aplicados em todo modo do compilador ainda.
Orientação Prática
- Prefira passar
Knowledge<T>pelo seu pipeline sem alterá-lo. - Só use
unwrap(...)na borda onde você realmente precisa de umTpuro (e registre o motivo).