More functions, and better type abstraction.
Rename parameter.
More proclamations and better type abstraction.