Why are there no abstract modules?

Thanks, I think I get your point. Either the compiler chokes on something it cannot fulfill - or it spills out a binary.

Non-fulfillability can arise out of methods or variables having incompatible types vs. use cases. Crystal enforces as little typing as possible, but allows arbitrary much of it. In that mindset, abstract is entirely optional on purpose. I double-checked the docs, I think it’s missing there.

On the other hand, if I declare a class (or maybe also a module, which is not possible right now) as entirely abstract to start with, shouldn’t it not also have proper abstract methods marked as such?

Could it also have an impact on e.g. Incremental compilation exploration?