# Why did Alloy Analyzer stop supporting the exh and part keywords?

**URL:** <https://alloytools.discourse.group/t/why-did-alloy-analyzer-stop-supporting-the-exh-and-part-keywords/543>\
**Category:** Questions\
**Created:** [December 29, 2025, 3:17am UTC](https://alloytools.discourse.group/t/why-did-alloy-analyzer-stop-supporting-the-exh-and-part-keywords/543 "2025-12-29T03:17:13Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rafa10](https://yyz2.discourse-cdn.com/free1/user_avatar/alloytools.discourse.group/rafa10/32/278_2.png) [@Rafa10](https://alloytools.discourse.group/u/Rafa10)\
**Post date:** [December 29, 2025, 3:17am UTC](https://alloytools.discourse.group/t/why-did-alloy-analyzer-stop-supporting-the-exh-and-part-keywords/543/1 "2025-12-29T03:17:13Z")

</div>

```auto
/**
 * Generate an error message saying the given keyword is no longer supported.
 */
static ErrorSyntax hint(Pos pos, String name) {
    String msg = "The name \"" + name + "\" cannot be found.";
    if ("exh".equals(name) || "exhaustive".equals(name) || "part".equals(name) || "partition".equals(name))
        msg = msg + " If you are migrating from Alloy 3, please see Help->QuickGuide on how to translate models that use the \"" + name + "\" keyword.";
    return new ErrorSyntax(pos, msg);
}

```

The grammar used by the parser still holds rules to handle the keywords, but it chooses to call `CompModule.hint` to output an error message and `CompModule.hint` has a check specifically to warn about migrating from Alloy 3.

I don’t need to use these keywords. I am asking this question merely due to my own curiosity. Thank you!
