Duality as a Type: Enforcing REA Accounting Semantics at Compile Time in the Equis Programming Language | Synapse