# How to define an exportable term\_expansion/2?

**URL:** <https://swi-prolog.discourse.group/t/how-to-define-an-exportable-term-expansion-2/4900>\
**Category:** Help!\
**Tags:** how-to\
**Created:** [January 14, 2022, 9:24pm UTC](https://swi-prolog.discourse.group/t/how-to-define-an-exportable-term-expansion-2/4900 "2022-01-14T21:24:26Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![peter.ludemann](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/peter.ludemann/32/48_2.png) [@peter.ludemann](https://swi-prolog.discourse.group/u/peter.ludemann)\
**Post date:** [January 14, 2022, 11:13pm UTC](https://swi-prolog.discourse.group/t/how-to-define-an-exportable-term-expansion-2/4900/6 "2022-01-14T23:13:10Z")

</div>

Anyway, getting back to term\_expansion/2, it’s generally frowned upon to define predicates in module `system` ([Term\_expansion/2 in a module, user or system? - #5 by jan](https://swi-prolog.discourse.group/t/term-expansion-2-in-a-module-user-or-system/3055/5)) and the documentation says to avoid defining `user:term_expansion/2` (although I don’ know enough about other dialects such as SICStus to know why it should be avoided).

---

_[View the full topic](https://swi-prolog.discourse.group/t/how-to-define-an-exportable-term-expansion-2/4900)._
