# Compatibility

- What are the backend Prolog compiler requirements to run Logtalk?

- Can I use constraint-based packages with Logtalk?

- Can I use Logtalk objects and Prolog modules at the same time?

## What are the backend Prolog compiler requirements to run Logtalk?

See the backend Prolog compiler requirements guide.

## Can I use constraint-based packages with Logtalk?

Usually, yes. Some constraint-based packages may define operators which clash with the ones defined by Logtalk. In these cases, compatibility with Logtalk depends on the constraint-based packages providing an alternative for accessing the functionality provided by those operators. When the constraint solver is encapsulated using a Prolog module, a possible workaround is to use either explicit module qualification or encapsulate the call using the {}/1 control construct (thus bypassing the Logtalk compiler).

## Can I use Logtalk objects and Prolog modules at the same time?

Yes. In order to call a module predicate from within an object (or category) you may use an use_module/2 directive or use explicit module qualification (possibly wrapping the call using the Logtalk control construct {}/1 that allows bypassing of the Logtalk compiler when compiling a predicate call). Logtalk also allows modules to be compiled as objects (see the Prolog integration and migration guide for details).