Errors may occur when converting Prolog terms to Python objects as 
defined in section 2. These errors are 
reported as
instantiation_error, type_error(Type, Culprit) 
or
domain_error(Domain, Culprit).
Defined domains are:
@(Constant), Constant is not true,
false or none. For example, py_call(print(@error)).py_call(m:f(1,x=2,3), R)py_string_as(As) option is invalid. For 
example, py_call(m:f(), R, [py_string_as(float)])py_dict_as(As) option is invalid. For 
example, py_call(m:f(), R, [py_dict_as(list)])py_call(m:f(point(1,2)), R).Defined types are:
py_free(42)fraction instance is converted to a Prolog 
rational number, but the textual conversion does not produce a valid 
rational number. This can happen if the Python fraction is 
subclassed and the __str__() method does not produce 
a correct string.{k:v, ...} representation for a dictionary we find 
a term that is not a key-value pair. For example,
py_call(m:f({a:1, x}), R)py_set(Elements), Elements is not a 
list. For example, py_call(m:f(py_set(42)), R).py_call(Target:FuncOrAttrOrMethod), Target is 
not a module (atom) or Python object reference. For example, py_call(7:f(), 
R).py_call(Target:FuncOrAttrOrMethod), FuncOrAttrOrMethod 
is not an atom or compound. For example, py_call(m:7, R).