I understand that different return types will be detected in another places in the code by the compiler - OK, I am almost comfortable with this.
It’s a fairly frequented question/issue on the github.
So, writing return types is completely waste of time, right? Maybe documentation purposes? What is better then, write return types in abstract methods as documentation purposes, or suggest return types with meaningful method names - like: abstract def name_string ? I am just not sure what is the right way in Crystal.