Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Support having abstract classes in `MatchCdOd`

Open
#331 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
haskell
Domain
tooling

Research direction

Start by locating MatchCdOd and its configuration checker, then inspect how allowed mutations and completelyInhabited are represented. Define the abstract-class behavior, including the relationship-name issue noted here, and ensure the configuration rule is enforced before considering the work done.

Written by the indexing model from the issue text.

Description

alloy cd-od enhancement

In doing so this needs to be considered:

I assume we will never (also in the future not) use a mutation in MatchCdOd that removes or adds a class. Because the fact that some class is missing would lead to too trivial matchings (or ruling out matchings) on the ODs.

But turning a concrete class diagram abstract might actually be an interesting feature in this context, since it would allow to check additional knowledge about class diagrams, and it would be non-trivial to solve such instances.

So, maybe it should at least be preserved as an issue somewhere,

  • that supporting abstract classes in MatchCdOd might become relevant,

  • that if this is done there is the equivalent of the problem found here for relationship names lurking,

  • and that it would probably be addressed by ensuring that if "turn a class abstract" is contained in the allowed mutations in a MatchCdOd config, then the config checker should make sure that completelyInhabited is set to Nothing.

Originally posted by @jvoigtlaender in #275

Dominant language
Haskell
Stars
0
Forks
3
Avg merge
1d 9h
Merged PRs (30d)
5

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fmidue/modelling-tasks

All issues in fmidue/modelling-tasks

Similar issues

More Haskell issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.