General logic clean ups:
Remove Size type; depend on Scale's type instead.
Make minimum scale 0 rather than 1.
Add scaleLength and scaleArea helper functions.
Fix logic error within singleton function.
Correct empty function type signature.