Show HN: Sigil – Track data trust at the type level

Sigil is a programming language where the type system tracks data provenance.

  External data is marked `~` (reported). Validated data becomes `?` (uncertain).
  Computed values are `!` (known). The type checker enforces these boundaries -
  reported data can't satisfy a known requirement without explicit validation.

      fn process(input~: str) -> Result! {
          let validated? = input |validate!{ parse_int(_) }
          let result! = validated * 2  // OK: computation produces known
          result
      }

  This catches injection vulnerabilities at compile time and makes trust
  boundaries explicit in function signatures.

  Other features:
  - Morpheme operators for pipelines: `data |τ{_ * 2} |φ{_ > 10} |Σ`
  - Rust-like ownership and borrowing
  - Self-hosting compiler (233/233 tests passing)
  - Interpreter, JIT, and LLVM backends

  Written in Rust. MIT/Apache-2.0.

  https://github.com/Daemoniorum-LLC/sigil-lang

2 points

croolily

4 hours ago


0 comments