duplicate-name

A name is defined twice in one namespace.

compile error, shown by synod check.

All files of a package share one namespace for phrases, record types, the node type and node fields. A phrase's name is its word skeleton, so there is no overloading by hole types or by the number of holes. The same error covers a second start, a repeated hole name, two imports of one path, and a field set twice in message … with.

Example

Check this program to see the diagnostic.

# package p
define Total [a: number] and [b: number]
  result (a plus b)

define Total [c: number] and [d: number]
  result (c plus d)

Diagnostic

p/p.synod:5:1: error[duplicate-name]: "Total … and" is already defined at p/p.synod:2

Fix

Give the second phrase another name.

# package p
define Total [a: number] and [b: number]
  result (a plus b)

define Sum [c: number] and [d: number]
  result (c plus d)