. . . . "+1 So, in other words, declaration is sort of like a unit test: it check your type signature against what compiler infers." .