Availability:built-in
 [det]engine_create(+Template, 
:Goal, ?Engine)
[det]engine_create(+Template, 
:Goal, -Engine, +Options)Create a new engine and unify Engine with a handle to it.
Template and Goal form a pair similar to findall/3: 
the instantiation of Template becomes available through engine_next/2 
after Goal succeeds. Options is a list of the 
following options. See thread_create/3 
for details.
[det]engine_create(+Template, 
:Goal, ?Engine)
[det]engine_create(+Template, 
:Goal, -Engine, +Options)Create a new engine and unify Engine with a handle to it.
Template and Goal form a pair similar to findall/3: 
the instantiation of Template becomes available through engine_next/2 
after Goal succeeds. Options is a list of the 
following options. See thread_create/3 
for details.
- alias(+Name)
- Give the engine a name. Name must be an atom. If this option 
is provided, Engine is unified with Name. The name 
space for engines is shared with threads and mutexes.
- stack(+Bytes)
- Set the stack limit for the engine. The default is inherited from the 
calling thread.
The Engine argument of engine_create/3 
may be instantiated to an atom, creating an engine with the given alias.