# Why are there no abstract modules?

**URL:** <https://forum.crystal-lang.org/t/why-are-there-no-abstract-modules/7792>\
**Category:** Help & Support\
**Created:** [February 23, 2025, 10:53am UTC](https://forum.crystal-lang.org/t/why-are-there-no-abstract-modules/7792 "2025-02-23T10:53:39Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![wolfgang371](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/wolfgang371/32/1665_2.png) [@wolfgang371](https://forum.crystal-lang.org/u/wolfgang371)\
**Post date:** [February 24, 2025, 6:21pm UTC](https://forum.crystal-lang.org/t/why-are-there-no-abstract-modules/7792/7 "2025-02-24T18:21:04Z")

</div>

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](https://forum.crystal-lang.org/t/incremental-compilation-exploration/5224)?

---

_[View the full topic](https://forum.crystal-lang.org/t/why-are-there-no-abstract-modules/7792)._
