Translate the sCASP program from the defined_* predicates into pr_*
predicates for sCASP. It creates clauses for the following
predicates in the target module:
- is a term Head::Template, where Head is an sCASP atom
where the variables are represented as $(Name) and Template is a
string that embeds "@(Var)", "@(Var:Type)", "{{Var}}" or
"{{Var:Type}}"
Pred
- is a term `Head::format(Fmt, Args)`, where Fmt contains
~p and the arguments are of the shape @($(Var):Type), which is
printed as "<Var>, a <Type>"
Prepare Module to receive a compiled sCASP program. This wipes a
possibly existing sCASP program. It also relies on the side effect
of retractall/1 to create a non-existing predicate as dynamic.