Redundant object

If a named object is used only once, it is considered “redundant” and should be inlined.

Incorrect:

# Foo.
[] > foo
  52 > spb
  spb.plus 2

Correct:

# Foo.
[] > foo
  52.plus 2

An object referenced only once is not redundant when that single reference sits inside a recursive formation. Syntactically the name is mentioned once, but at runtime the recursion evaluates it many times, and the named attribute lets all those evaluations share a single node. Inlining it would give every level of the recursion its own copy of the subgraph, so the lint skips such objects:

# Series.
[point] > series
  point.times point > squared
  poly 30 > @
  [n] > poly
    if. > @
      n.eq 0
      0
      squared.plus (poly (n.minus 1))

A $-alias is also not redundant when its only reference reaches it from inside a nested formation. There, $ refers to the nested formation itself, not to the object where the alias was declared. Inlining the alias into that reference would change what it points to:

# Jeff.
[] > jeff
  $ > self
  [] > say-hello
    stdout self > @

Published on Wed Aug 26 07:19:11 UTC 2026.