Dual Channel Constraints and Natural Type Inference
Abstract Code mixes natural language in identifier names, comments, and stylistic choices (ordering and typesetting) with a formal language that defines
a computation. The snippets in each language form a communication channel. Developers read both channels; a CPU processes only the formal channel.
These two channels interact and constrain each other. The theory of dual channel constraints elucidates these interactions and points
to their exploitation. One prominent application is probabilistic
