//Records. These are data structures and function signatures. //These records define natural numbers and addition. Zero[]. //0 - in other languages this would be an ADT or singleton. Next[prev]. //1 + prev - in other languages this would be an ADT, structure, or object. Add[a, b]. //a + b - in other languages this would be a function. //Reducers. Reducers are like function implementations. These reducers "implement" Add. Add[a: Zero[], b]: bprev