Playground ========== This page is used to test hooks in order to run ``elpi`` on code snippets and inject its output within ``sphinx`` documentation sources. Prerequisites ------------- Before running the hooks, make sure to have ``elpi`` built locally: .. code-block:: console eval $(opam env) make build It doesn't hurt to check that ``dune`` runs the locally built ``elpi`` correctly: .. code-block:: console dune exec elpi -- -h Syntax ------ Elpi code blocks to be evaluated and which output is to be injected from ``docs/base`` to ``docs/source`` are conventionally denoted in ``reStructuredText`` as ``.. elpi:: FILE``. .. literalinclude:: ../../tests/sources/chr.elpi :linenos: :language: elpi The injection engine: * Retrieves all ``.. elpi::`` directives * Changes them into ``literalinclude`` in the generated source with relevant options * Runs ``dune exec elpi -- -test FILE`` on the ``FILE`` containing the ``elpi`` snippet, test or example. * Captures its output (``stdout``) * Creates a ``code-block:: console`` just after it to inject the captured console output * Captures its output (``stderr``) * Creates a ``code-block:: console`` just after it to inject the captured console erros * In case of an assertion option for the ``elpi`` directive, the output is injected only if matched Result should look as follows: .. code-block:: console Parsing time: 0.000 Compilation time: 0.004 File "/home/jwintz/Development/elpi/tests/sources/chr.elpi", line 7, column 60, character 133: Warning: constant term has no declared type. File "/home/jwintz/Development/elpi/tests/sources/chr.elpi", line 11, column 8, character 319: Warning: constant len has no declared type. Did you mean std.length ? File "/home/jwintz/Development/elpi/tests/sources/chr.elpi", line 28, column 28, character 761: Warning: constant compatible has no declared type. Typechecking time: 0.154 compat [term c1 (uvar frozen--501 []), term c0 (uvar frozen--502 [])] |- frozen--494 [ c1, c0] arr (uvar frozen--495 [c0, c1]) (arr (uvar frozen--496 [c0, c1]) (uvar frozen--497 [])) , [ term c3 (uvar frozen--499 []), term c2 (uvar frozen--498 [])] |- frozen--494 [ c2, c3] arr (uvar frozen--498 []) (arr (uvar frozen--499 []) (uvar frozen--500 [])) NEW [X0 = X1, X2 = X3] arr (X4 c0 c1) (arr (X5 c0 c1) X6) = arr X1 (arr X3 X7) 1 compat [term c0 bool] |- frozen--507 [c0] uvar frozen--508 [] , [term c1 (uvar frozen--509 [])] |- frozen--507 [c1] nat NEW [bool = X8] X9 = nat 2 compat [term c0 bool] |- frozen--514 [c0] uvar frozen--515 [] , [term c1 (uvar frozen--515 [])] |- frozen--514 [c1] nat NEW [bool = X10] X10 = nat compat [term c0 bool] |- frozen--520 [c0] uvar frozen--521 [] , [term c1 nat] |- frozen--520 [c1] nat NEW [bool = nat] X11 = nat Success: Time: 0.001 Constraints: {c0} : term c0 bool ?- term (X12 c0) nat /* suspended on X12 */ {c0 c1} : term c1 X13, term c0 X13 ?- term (X14 c1 c0) (arr X13 (arr X13 X6)) /* suspended on X14 */ State: Regexp Matching --------------- This ``elpi`` directive should pass validation: .. code-block:: console .. elpi:: ./a.elpi :assert: V = s \(.*\) **./a.elpi :** .. literalinclude:: ./a.elpi :linenos: :language: elpi .. code-block:: console V = s (s (s (s (s (s (s (s (s (s (s (s (s zero)))))))))))) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.060 Success: Time: 0.000 Constraints: State: This one should fail validation, only a message stating the regexp matching error will be printed: .. code-block:: console .. elpi:: ./a.elpi :assert: /(?!)/ **./a.elpi :** .. literalinclude:: ./a.elpi :linenos: :language: elpi .. raw:: html
Injection failure: result did not pass regexp check (/(?!)/)
Test Bed -------- **../../tests/sources/accumulate_twice1.elpi :** .. literalinclude:: ../../tests/sources/accumulate_twice1.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.055 **../../tests/sources/accumulate_twice2.elpi :** .. literalinclude:: ../../tests/sources/accumulate_twice2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/accumulate_twice2.elpi", line 4, column 0, character 87: Warning: constant other.doomed has no declared type. .. code-block:: console Parsing time: 0.001 Compilation time: 0.001 Typechecking time: 0.060 **../../tests/sources/accumulated.elpi :** .. literalinclude:: ../../tests/sources/accumulated.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/accumulated.elpi", line 1, column 0, character 0: Warning: constant doomed has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.061 **../../tests/sources/ackermann.elpi :** .. literalinclude:: ../../tests/sources/ackermann.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ackermann.elpi", line 13, column 0, character 530: Warning: constant zero has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ackermann.elpi", line 13, column 0, character 530: Warning: constant s has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.set.make std.set.mem std.set.add std.set.remove std.set.cardinal std.set.elements std.spy std.spy! std.split-at std.spy-do! rex.split random.self_init std.string.concat std.string.map std.string.map.empty std.string.map.mem std.string.map.add std.string.map.remove std.string.map.find std.string.map.bindings std.string.set std.string.set.empty std.string.set.mem std.string.set.add std.string.set.remove std.string.set.union std.string.set.inter std.string.set.diff std.string.set.equal std.string.set.subset std.string.set.elements std.string.set.cardinal std.int.set std.int.set.empty std.int.set.mem std.int.set.add std.int.set.remove std.int.set.union std.int.set.inter std.int.set.diff std.int.set.equal std.int.set.subset std.int.set.elements std.int.set.cardinal std.loc.set std.loc.set.empty std.loc.set.mem std.loc.set.add std.loc.set.remove std.loc.set.union std.loc.set.inter std.loc.set.diff std.loc.set.equal std.loc.set.subset std.loc.set.elements std.loc.set.cardinal std.set std.set gc.set gc.stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ackermann.elpi", line 13, column 0, character 530: Warning: constant ack has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ackermann.elpi", line 19, column 0, character 676: Warning: V is linear: name it _V (discard) or V_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.075 Success: Time: 0.000 Constraints: State: **../../tests/sources/asclause.elpi :** .. literalinclude:: ../../tests/sources/asclause.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/asclause.elpi", line 5, column 0, character 36: Warning: constant simple has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/asclause.elpi", line 2, column 0, character 1: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/asclause.elpi", line 2, column 0, character 1: Warning: constant hard has no declared type. 1 lam c0 \ c0 .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.064 Success: Time: 0.000 Constraints: State: **../../tests/sources/beta.elpi :** .. literalinclude:: ../../tests/sources/beta.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/beta.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/beta.elpi", line 1, column 0, character 0: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/beta.elpi", line 1, column 0, character 0: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.063 Success: Time: 0.000 Constraints: State: **../../tests/sources/block.elpi :** .. literalinclude:: ../../tests/sources/block.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/block.elpi", line 1, column 0, character 0:matching } is missing **../../tests/sources/chr.elpi :** .. literalinclude:: ../../tests/sources/chr.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr.elpi", line 7, column 0, character 133: Warning: constant term has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr.elpi", line 11, column 0, character 319: Warning: constant len has no declared type. Did you mean std.length ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr.elpi", line 28, column 0, character 761: Warning: constant compatible has no declared type. compat [term c1 (uvar frozen--501 []), term c0 (uvar frozen--502 [])] |- frozen--494 [c1, c0] arr (uvar frozen--495 [c0, c1]) (arr (uvar frozen--496 [c0, c1]) (uvar frozen--497 [])) , [term c3 (uvar frozen--499 []), term c2 (uvar frozen--498 [])] |- frozen--494 [c2, c3] arr (uvar frozen--498 []) (arr (uvar frozen--499 []) (uvar frozen--500 [])) NEW [X0 = X1, X2 = X3] arr (X4 c0 c1) (arr (X5 c0 c1) X6) = arr X1 (arr X3 X7) 1 compat [term c0 bool] |- frozen--507 [c0] uvar frozen--508 [] , [term c1 (uvar frozen--509 [])] |- frozen--507 [c1] nat NEW [bool = X8] X9 = nat 2 compat [term c0 bool] |- frozen--514 [c0] uvar frozen--515 [] , [term c1 (uvar frozen--515 [])] |- frozen--514 [c1] nat NEW [bool = X10] X10 = nat compat [term c0 bool] |- frozen--520 [c0] uvar frozen--521 [] , [term c1 nat] |- frozen--520 [c1] nat NEW [bool = nat] X11 = nat .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.071 Success: Time: 0.001 Constraints: {c0} : term c0 bool ?- term (X12 c0) nat /* suspended on X12 */ {c0 c1} : term c1 X13, term c0 X13 ?- term (X14 c1 c0) (arr X13 (arr X13 X6)) /* suspended on X14 */ State: **../../tests/sources/chrGCD.elpi :** .. literalinclude:: ../../tests/sources/chrGCD.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chrGCD.elpi", line 6, column 0, character 74: Warning: constant gcd has no declared type. group 1 solved group 2 solved .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.058 Success: Time: 0.000 Constraints: State: **../../tests/sources/chrLEQ.elpi :** .. literalinclude:: ../../tests/sources/chrLEQ.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chrLEQ.elpi", line 7, column 0, character 238: Warning: constant ltn has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chrLEQ.elpi", line 2, column 0, character 16: Warning: constant leq has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.062 Success: Time: 0.001 Constraints: ltn X0 X1 /* suspended on X0, X1 */ leq X0 X1 /* suspended on X0, X1 */ leq X2 X1 /* suspended on X2, X1 */ ltn X0 X2 /* suspended on X0, X2 */ leq X0 X2 /* suspended on X0, X2 */ State: **../../tests/sources/chr_nokey.elpi :** .. literalinclude:: ../../tests/sources/chr_nokey.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.059 Success: Time: 0.000 Constraints: test 1 /* suspended on X0 */ State: **../../tests/sources/chr_nokey2.elpi :** .. literalinclude:: ../../tests/sources/chr_nokey2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_nokey2.elpi", line 1, column 0, character 0: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_nokey2.elpi", line 1, column 0, character 0: Warning: constant bar has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.061 Success: Time: 0.000 Constraints: bar true /* suspended on */ foo /* suspended on */ State: **../../tests/sources/chr_not_clique.elpi :** .. literalinclude:: ../../tests/sources/chr_not_clique.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: CHR rule File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_not_clique.elpi", line 3, column 3, character 19:: matches b which is not a constraint on which it is applied. Check the list of predicates after the "constraint" keyword. **../../tests/sources/chr_sem.elpi :** .. literalinclude:: ../../tests/sources/chr_sem.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_sem.elpi", line 1, column 0, character 0: Warning: constant d has no declared type. Did you mean std.debug-print std.drop std.drop-last std.do! std.do-ok! std.string.set.diff std.int.set.diff std.loc.set.diff ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_sem.elpi", line 1, column 0, character 0: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/chr_sem.elpi", line 1, column 0, character 0: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? c .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.069 Success: Time: 0.000 Constraints: c /* suspended on X0 */ d /* suspended on X0 */ a /* suspended on X0 */ State: **../../tests/sources/conj2.elpi :** .. literalinclude:: ../../tests/sources/conj2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/conj2.elpi", line 1, column 0, character 0: Warning: constant test2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/conj2.elpi", line 1, column 0, character 0: Warning: constant test1 has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.065 Success: Time: 0.000 Constraints: State: **../../tests/sources/ctx_loading.elpi :** .. literalinclude:: ../../tests/sources/ctx_loading.elpi :linenos: :language: elpi .. code-block:: console [a, b, c] [a, b, c] [a, b, c] .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.057 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut.elpi :** .. literalinclude:: ../../tests/sources/cut.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 6, column 0, character 100: Warning: constant two has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 8, column 0, character 108: Warning: constant three has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 2, column 0, character 60: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 5, column 0, character 79: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 9, column 0, character 117: Warning: constant four has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 5, column 0, character 79: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 5, column 0, character 79: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut.elpi", line 2, column 0, character 60: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.079 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut2.elpi :** .. literalinclude:: ../../tests/sources/cut2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 7, column 0, character 198: Warning: constant x has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 11, column 0, character 240: Warning: constant two has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 7, column 0, character 198: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 10, column 0, character 233: Warning: constant one has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 15, column 0, character 260: Warning: constant ko2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 13, column 0, character 248: Warning: constant ko1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 7, column 0, character 198: Warning: constant e has no declared type. Did you mean std.set.private.empty std.set.private.elements std.set.elements std.map.private.empty std.exists std.exists2 std.string.map.empty std.int.map.empty std.loc.map.empty std.string.set.empty std.string.set.equal std.string.set.elements std.int.set.empty std.int.set.equal std.int.set.elements std.loc.set.empty std.loc.set.equal std.loc.set.elements ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut2.elpi", line 7, column 0, character 198: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.079 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut3.elpi :** .. literalinclude:: ../../tests/sources/cut3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut3.elpi", line 3, column 0, character 36: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut3.elpi", line 5, column 0, character 57: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut3.elpi", line 3, column 0, character 36: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut3.elpi", line 3, column 0, character 36: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut3.elpi", line 3, column 0, character 36: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.068 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut4.elpi :** .. literalinclude:: ../../tests/sources/cut4.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.054 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut5.elpi :** .. literalinclude:: ../../tests/sources/cut5.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 6, column 0, character 108: Warning: constant two has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 8, column 0, character 116: Warning: constant three has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 2, column 0, character 60: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 5, column 0, character 79: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 9, column 0, character 125: Warning: constant four has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 5, column 0, character 79: Warning: constant d has no declared type. Did you mean std.debug-print std.drop std.drop-last std.do! std.do-ok! std.string.set.diff std.int.set.diff std.loc.set.diff ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 5, column 0, character 79: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 5, column 0, character 79: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 2, column 0, character 60: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut5.elpi", line 5, column 0, character 79: Warning: Y is linear: name it _Y (discard) or Y_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.081 Success: Time: 0.000 Constraints: State: **../../tests/sources/cut6.elpi :** .. literalinclude:: ../../tests/sources/cut6.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut6.elpi", line 3, column 0, character 25: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut6.elpi", line 9, column 0, character 75: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut6.elpi", line 6, column 0, character 53: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut6.elpi", line 4, column 0, character 40: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/cut6.elpi", line 3, column 0, character 25: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.070 Success: Time: 0.000 Constraints: State: **../../tests/sources/deep_indexing.elpi :** .. literalinclude:: ../../tests/sources/deep_indexing.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.058 Success: Time: 0.000 Constraints: State: **../../tests/sources/discard.elpi :** .. literalinclude:: ../../tests/sources/discard.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/discard.elpi", line 1, column 0, character 0: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/discard.elpi", line 1, column 0, character 0: Warning: constant bar has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.066 Success: Time: 0.000 Constraints: State: **../../tests/sources/elpi_only_llam.elpi :** .. literalinclude:: ../../tests/sources/elpi_only_llam.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/elpi_only_llam.elpi", line 1, column 0, character 0: Warning: constant x has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/elpi_only_llam.elpi", line 1, column 0, character 0: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/elpi_only_llam.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.067 Fatal error: Unification problem outside the pattern fragment. ((Data.Term.App (f, (Data.Term.Const x), [])) == (Data.Term.AppUVar ( { Data.Term.contents = please extend this printer; uid_private = 41116 }, 0, [(Data.Term.UVar ( { Data.Term.contents = please extend this printer; uid_private = 41115 }, 0, 0)) ] ))) Pass -delay-problems-outside-pattern-fragment (elpi command line utility) or set delay_outside_fragment to true (Elpi_API) in order to delay (deprecated, for Teyjus compatibility). **../../tests/sources/end_comment.elpi :** .. literalinclude:: ../../tests/sources/end_comment.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.055 Success: Time: 0.000 Constraints: State: **../../tests/sources/eta.elpi :** .. literalinclude:: ../../tests/sources/eta.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta.elpi", line 7, column 0, character 129: Warning: constant k2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta.elpi", line 6, column 0, character 116: Warning: constant k1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta.elpi", line 6, column 0, character 116: Warning: constant g has no declared type. Did you mean gc.get ? c2 \ c2 c2 \ c2 c1 .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.064 Success: Time: 0.000 Constraints: State: **../../tests/sources/eta_as.elpi :** .. literalinclude:: ../../tests/sources/eta_as.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: constant u has no declared type. Did you mean std.unsafe-cast std.unzip std.string.set.union std.int.set.union std.loc.set.union ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: constant tests-uvar has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 59, column 0, character 1639: Warning: constant tests-as has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: constant test-unif has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 89, column 0, character 2567: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 17, column 0, character 237: Warning: constant bar has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 59, column 0, character 1639: Error: (bar u) has type any but is applied to c3 File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 97, column 0, character 2760: Error: 1 has type int but is used with type (X24 c1 -> X25) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 97, column 0, character 2760: Error: 1 has type int but is used with type (X26 c1 -> X27) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 23, column 0, character 700: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 33, column 0, character 1023: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 34, column 0, character 1040: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X5 is linear: name it _X5 (discard) or X5_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X4 is linear: name it _X4 (discard) or X4_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X3 is linear: name it _X3 (discard) or X3_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X2 is linear: name it _X2 (discard) or X2_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X1 is linear: name it _X1 (discard) or X1_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X01 is linear: name it _X01 (discard) or X01_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X0 is linear: name it _X0 (discard) or X0_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 37, column 0, character 1064: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 59, column 0, character 1639: Warning: X0 is linear: name it _X0 (discard) or X0_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X5 is linear: name it _X5 (discard) or X5_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X4 is linear: name it _X4 (discard) or X4_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X3 is linear: name it _X3 (discard) or X3_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X2 is linear: name it _X2 (discard) or X2_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X1 is linear: name it _X1 (discard) or X1_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/eta_as.elpi", line 73, column 0, character 2170: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.081 Type error. To ignore it, pass -no-tc. **../../tests/sources/even-odd.elpi :** .. literalinclude:: ../../tests/sources/even-odd.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/even-odd.elpi", line 19, column 0, character 395: Warning: Z is linear: name it _Z (discard) or Z_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.056 Success: Time: 0.000 Constraints: odd X0 /* suspended on X0 */ State: **../../tests/sources/findall.elpi :** .. literalinclude:: ../../tests/sources/findall.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 26, column 0, character 577: Warning: constant test5 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 16, column 0, character 281: Warning: constant test4 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 8, column 0, character 159: Warning: constant test3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 7, column 0, character 95: Warning: constant test2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 6, column 0, character 43: Warning: constant test1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 6, column 0, character 43: Warning: B is linear: name it _B (discard) or B_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 6, column 0, character 43: Warning: A is linear: name it _A (discard) or A_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/findall.elpi", line 26, column 0, character 577: Warning: Z is linear: name it _Z (discard) or Z_ (fresh variable) 1 2 3 4 5 .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.073 Success: Time: 0.000 Constraints: State: **../../tests/sources/fragment_exit.elpi :** .. literalinclude:: ../../tests/sources/fragment_exit.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit.elpi", line 1, column 0, character 0: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit.elpi", line 1, column 0, character 0: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit.elpi", line 5, column 0, character 25: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.063 Success: Time: 0.000 Constraints: State: **../../tests/sources/fragment_exit2.elpi :** .. literalinclude:: ../../tests/sources/fragment_exit2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit2.elpi", line 1, column 0, character 0: Warning: constant ignore has no declared type. Did you mean std.ignore-failure! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit2.elpi", line 2, column 0, character 10: Warning: constant d has no declared type. Did you mean std.debug-print std.drop std.drop-last std.do! std.do-ok! std.string.set.diff std.int.set.diff std.loc.set.diff ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit2.elpi", line 2, column 0, character 10: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.062 Success: Time: 0.000 Constraints: State: **../../tests/sources/fragment_exit3.elpi :** .. literalinclude:: ../../tests/sources/fragment_exit3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit3.elpi", line 1, column 0, character 0: Warning: constant ignore has no declared type. Did you mean std.ignore-failure! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit3.elpi", line 2, column 0, character 10: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/fragment_exit3.elpi", line 2, column 0, character 10: Warning: constant d has no declared type. Did you mean std.debug-print std.drop std.drop-last std.do! std.do-ok! std.string.set.diff std.int.set.diff std.loc.set.diff ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.063 Success: Time: 0.000 Constraints: State: **../../tests/sources/general_case.elpi :** .. literalinclude:: ../../tests/sources/general_case.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case.elpi", line 3, column 0, character 20: Warning: constant ignore has no declared type. Did you mean std.ignore-failure! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case.elpi", line 4, column 0, character 30: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case.elpi", line 2, column 0, character 17: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case.elpi", line 1, column 0, character 0: Warning: constant app has no declared type. Did you mean std.append std.appendR ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case.elpi", line 5, column 0, character 55: Warning: G is linear: name it _G (discard) or G_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.066 Success: Time: 0.000 Constraints: State: **../../tests/sources/general_case2.elpi :** .. literalinclude:: ../../tests/sources/general_case2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case2.elpi", line 3, column 0, character 20: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case2.elpi", line 1, column 0, character 0: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case2.elpi", line 1, column 0, character 0: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.071 Success: Time: 0.000 Constraints: State: **../../tests/sources/general_case3.elpi :** .. literalinclude:: ../../tests/sources/general_case3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/general_case3.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.057 Success: Time: 0.000 Constraints: State: **../../tests/sources/hc_interp.elpi :** .. literalinclude:: ../../tests/sources/hc_interp.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 61, column 0, character 1823: Warning: constant xnil has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 42, column 0, character 1152: Warning: constant xcons has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 40, column 0, character 1103: Warning: constant try_clause has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 20, column 0, character 574: Warning: constant tru has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 65, column 0, character 2013: Warning: constant test2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 61, column 0, character 1823: Warning: constant test1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 27, column 0, character 633: Warning: constant subst has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 21, column 0, character 588: Warning: constant perp has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 14, column 0, character 396: Warning: constant or has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 40, column 0, character 1103: Warning: constant memb has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 68, column 0, character 2077: Warning: [suppressing 12 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 34, column 0, character 817: Warning: T is linear: name it _T (discard) or T_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 43, column 0, character 1172: Warning: Y is linear: name it _Y (discard) or Y_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 50, column 0, character 1381: Warning: T is linear: name it _T (discard) or T_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hc_interp.elpi", line 51, column 0, character 1445: Warning: Cs is linear: name it _Cs (discard) or Cs_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.089 Success: Time: 0.000 Constraints: State: **../../tests/sources/hdclause.elpi :** .. literalinclude:: ../../tests/sources/hdclause.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.055 Success: Time: 0.000 Constraints: State: **../../tests/sources/heap_discard.elpi :** .. literalinclude:: ../../tests/sources/heap_discard.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/heap_discard.elpi", line 1, column 0, character 0: Warning: Y is linear: name it _Y (discard) or Y_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.056 Success: Time: 0.000 Constraints: State: **../../tests/sources/ho.elpi :** .. literalinclude:: ../../tests/sources/ho.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ho.elpi", line 3, column 0, character 67: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/ho.elpi", line 5, column 0, character 79: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.060 Success: Time: 0.000 Constraints: State: **../../tests/sources/hollight.elpi :** .. literalinclude:: ../../tests/sources/hollight.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hollight.elpi", line 231, column 18, character 8433: Malformed mode declaration. Example: mode (foo i i o). **../../tests/sources/hollight_legacy.elpi :** .. literalinclude:: ../../tests/sources/hollight_legacy.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/hollight_legacy.elpi", line 3, column 0, character 24: Mixfix directives are not supported by this parser. The parser is based on token families. A family is identified by some starting characters, for example a token '+-->' belongs to the family of '+'. There is no need to declare it. All the tokens of a family are parsed with the same precedence and associativity, for example 'x +--> y *--> z' is parsed as 'x +--> (y *--> z)' since the family of '*' has higher precedence than the family of '+'. Here the table of tokens and token families. Token families are represented by the start symbols followed by '..'. Tokens of families marked with [*] cannot end with the starting symbol, eg `foo` is not an infix, while `foo is. The listing is ordered by increasing precedence. fixity | tokens / token families -------------------------- + ----------------------------------- Infix not associative | :- ?- Infix right associative | ; Infix right associative | , & Infix right associative | -> Infix right associative | => Infix not associative | = == =< r< i< s< r=< i=< s=< <.. r> i> s> r>= i>= s>= >.. is Infix right associative | :: Infix not associative | '.. [*] Infix left associative | ^.. r+ i+ s+ +.. - r- i- s- Infix left associative | r* i* s* *.. / div mod Infix right associative | --.. Infix not associative | `.. [*] Infix right associative | ==.. Infix right associative | ||.. Infix right associative | &&.. Infix left associative | #.. Prefix not associative | r~ i~ ~.. Postfix not associative | ?.. If the token is a valid mixfix, and you want the file to stay compatible with Teyjus, you can ask Elpi to skip the directive. Eg: % elpi:skip 2 // skips the next two lines infixr ==> 120. infixr || 120. As a debugging facility one can ask Elpi to print the AST in order to verify how the text was parsed. Eg: echo 'MyFormula = a || b ==> c && d' | elpi -parse-term **../../tests/sources/hyp_uvar.elpi :** .. literalinclude:: ../../tests/sources/hyp_uvar.elpi :linenos: :language: elpi .. code-block:: console ok .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.059 Success: Time: 0.000 Constraints: State: **../../tests/sources/impl.elpi :** .. literalinclude:: ../../tests/sources/impl.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 3, column 0, character 31: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 3, column 0, character 31: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 3, column 0, character 31: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 5, column 0, character 62: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 3, column 0, character 31: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl.elpi", line 3, column 0, character 31: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.072 Success: Time: 0.000 Constraints: State: **../../tests/sources/impl2.elpi :** .. literalinclude:: ../../tests/sources/impl2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl2.elpi", line 3, column 0, character 19: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl2.elpi", line 3, column 0, character 19: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl2.elpi", line 3, column 0, character 19: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl2.elpi", line 3, column 0, character 19: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/impl2.elpi", line 3, column 0, character 19: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.069 Success: Time: 0.000 Constraints: State: **../../tests/sources/index2.elpi :** .. literalinclude:: ../../tests/sources/index2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/index2.elpi", line 111, column 0, character 2318: Warning: constant iter has no declared type. .. code-block:: console Parsing time: 0.001 Compilation time: 0.002 Typechecking time: 0.066 Success: Time: 1.267 Constraints: State: **../../tests/sources/io_colon.elpi :** .. literalinclude:: ../../tests/sources/io_colon.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/io_colon.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.066 Success: Time: 0.000 Constraints: State: **../../tests/sources/lambda.elpi :** .. literalinclude:: ../../tests/sources/lambda.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 10, column 0, character 288: Warning: constant test has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 7, column 0, character 186: Warning: constant of has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 8, column 0, character 234: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 7, column 0, character 186: Warning: constant impl has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 12, column 0, character 330: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 7, column 0, character 186: Warning: constant appl has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda.elpi", line 12, column 0, character 330: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.080 Success: Time: 0.000 Constraints: State: **../../tests/sources/lambda2.elpi :** .. literalinclude:: ../../tests/sources/lambda2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda2.elpi", line 3, column 0, character 19: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda2.elpi", line 3, column 0, character 19: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda2.elpi", line 3, column 0, character 19: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda2.elpi", line 5, column 0, character 41: Warning: constant ko has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda2.elpi", line 5, column 0, character 41: Warning: constant g has no declared type. Did you mean gc.get ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.072 Success: Time: 0.000 Constraints: State: **../../tests/sources/lambda3.elpi :** .. literalinclude:: ../../tests/sources/lambda3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 36, column 0, character 866: Warning: constant zero has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 7, column 0, character 178: Warning: constant xnil has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 6, column 0, character 122: Warning: constant xcons has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x9 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x8 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x7 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x6 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x5 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x4 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: constant x3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 12, column 0, character 278: Warning: [suppressing 29 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 10, column 0, character 221: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 34, column 0, character 847: Warning: Z is linear: name it _Z (discard) or Z_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 36, column 0, character 866: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 42, column 0, character 959: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/lambda3.elpi", line 45, column 0, character 1020: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.097 Success: Time: 0.280 Constraints: State: **../../tests/sources/list_as_conj.elpi :** .. literalinclude:: ../../tests/sources/list_as_conj.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/list_as_conj.elpi", line 2, column 0, character 15: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? a b done .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.061 Success: Time: 0.000 Constraints: State: **../../tests/sources/list_comma.elpi :** .. literalinclude:: ../../tests/sources/list_comma.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.001 Typechecking time: 0.064 Success: Time: 0.000 Constraints: State: **../../tests/sources/llam.elpi :** .. literalinclude:: ../../tests/sources/llam.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 22, column 0, character 529: Warning: constant whatever has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 22, column 0, character 529: Warning: constant v has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 1, column 0, character 0: Warning: constant spy has no declared type. Did you mean std.spy std.spy! std.spy-do! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 20, column 0, character 500: Warning: constant prune_arg3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 19, column 0, character 476: Warning: constant prune_arg2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 18, column 0, character 459: Warning: constant prune_arg has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 22, column 0, character 529: Warning: constant h has no declared type. Did you mean std.set.private.height std.map.private.height ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 22, column 0, character 529: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 22, column 0, character 529: Warning: constant clause3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 15, column 0, character 400: Warning: constant clause2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 14, column 0, character 383: Warning: [suppressing 2 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 18, column 0, character 459: Warning: F is linear: name it _F (discard) or F_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 19, column 0, character 476: Warning: F is linear: name it _F (discard) or F_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llam.elpi", line 20, column 0, character 500: Warning: F is linear: name it _F (discard) or F_ (fresh variable) 0 test pi c0 \ pi c1 \ X0 c1 c0 = c0 , X0 = (c0 \ c1 \ c1) 0 test pi c0 \ pi c1 \ c0 = X0 c1 c0 , X0 = (c0 \ c1 \ c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ c1 c3 c2 = c2 , c1 = (c2 \ c3 \ c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ c2 = c1 c3 c2 , c1 = (c2 \ c3 \ c3) ---------------------------------------- 0 test not (pi c0 \ pi c1 \ X1 c0 = c1) , X1 = whatever 0 test not (pi c0 \ pi c1 \ c1 = X1 c0) , X1 = whatever 0 test pi c0 \ sigma c1 \ not (pi c2 \ pi c3 \ c1 c2 = c3) , c1 = whatever 0 test pi c0 \ sigma c1 \ not (pi c2 \ pi c3 \ c3 = c1 c2) , c1 = whatever ---------------------------------------- 0 test pi c0 \ pi c1 \ X2 c1 c0 = r c2 \ h c2 c0 , X2 = (c0 \ c1 \ r c2 \ h c2 c1) 0 test pi c0 \ pi c1 \ r c2 \ h c2 c0 = X2 c1 c0 , X2 = (c0 \ c1 \ r c2 \ h c2 c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ c1 c3 c2 = r c4 \ h c4 c2 , c1 = (c2 \ c3 \ r c4 \ h c4 c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ r c4 \ h c4 c2 = c1 c3 c2 , c1 = (c2 \ c3 \ r c4 \ h c4 c3) ---------------------------------------- 0 test pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , X3 c1 c0 = c2 , X3 = (c0 \ c1 \ c1) 0 test pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , c2 = X3 c1 c0 , X3 = (c0 \ c1 \ c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , c1 c3 c2 = c4 , c1 = (c2 \ c3 \ c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , c4 = c1 c3 c2 , c1 = (c2 \ c3 \ c3) ---------------------------------------- 0 test not (pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , X4 c2 = c1) , X4 = whatever 0 test not (pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , c1 = X4 c2) , X4 = whatever 0 test pi c0 \ sigma c1 \ not (pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , c1 c4 = c3) , c1 = whatever 0 test pi c0 \ sigma c1 \ not (pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , c3 = c1 c4) , c1 = whatever ---------------------------------------- 0 test pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , X5 c1 c0 = r c3 \ h c3 c2 , X5 = (c0 \ c1 \ r c2 \ h c2 c1) 0 test pi c0 \ pi c1 \ sigma c2 \ c2 = c0 , r c3 \ h c3 c2 = X5 c1 c0 , X5 = (c0 \ c1 \ r c2 \ h c2 c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , c1 c3 c2 = r c5 \ h c5 c4 , c1 = (c2 \ c3 \ r c4 \ h c4 c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ c4 = c2 , r c5 \ h c5 c4 = c1 c3 c2 , c1 = (c2 \ c3 \ r c4 \ h c4 c3) ---------------------------------------- 0 test pi c0 \ clause c1 \ c2 \ c1 0 test sigma c0 \ pi c1 \ pi c2 \ , (X6 c2 = r (c0 c2 c1)) (c0 c1 c1 = c1) (c0 c1 c2 = c1) , X6 = (c0 \ r c0) 0 test sigma c0 \ pi c1 \ pi c2 \ , (r (c0 c2 c1) = X6 c2) (c0 c1 c1 = c1) (c0 c1 c2 = c1) , X6 = (c0 \ r c0) 0 test pi c0 \ sigma c1 \ sigma c2 \ pi c3 \ pi c4 \ , (c1 c4 = r (c2 c4 c3)) (c2 c3 c3 = c3) (c2 c3 c4 = c3) , c1 = (c2 \ r c2) 0 test pi c0 \ sigma c1 \ sigma c2 \ pi c3 \ pi c4 \ , (r (c2 c4 c3) = c1 c4) (c2 c3 c3 = c3) (c2 c3 c4 = c3) , c1 = (c2 \ r c2) ---------------------------------------- 0 test pi c0 \ pi c1 \ sigma c2 \ pi c3 \ pi c4 \ , (X7 c1 = r (c2 c4)) (spy (c2 1 = c1)) (not (c2 2 = c0)) , X7 = (c0 \ r whatever) 0 test X8 c1 = c1 0 test pi c0 \ pi c1 \ sigma c2 \ pi c3 \ pi c4 \ , (r (c2 c4) = X7 c1) (spy (c2 1 = c1)) (not (c2 2 = c0)) , X7 = (c0 \ r whatever) 0 test X9 c1 = c1 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ pi c5 \ pi c6 \ , (c1 c3 = r (c4 c6)) (spy (c4 1 = c3)) (not (c4 2 = c2)) , c1 = (c2 \ r whatever) 0 test X10^1 c2 = c2 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ pi c5 \ pi c6 \ , (r (c4 c6) = c1 c3) (spy (c4 1 = c3)) (not (c4 2 = c2)) , c1 = (c2 \ r whatever) 0 test X11^1 c2 = c2 ---------------------------------------- 0 test pi c0 \ pi c1 \ sigma c2 \ pi c3 \ X12 c1 c0 = r (c2 c3) , c2 1 = f c0 c1 , X12 = (c0 \ c1 \ r (f c1 c0)) 0 test pi c0 \ pi c1 \ sigma c2 \ pi c3 \ r (c2 c3) = X12 c1 c0 , c2 1 = f c0 c1 , X12 = (c0 \ c1 \ r (f c1 c0)) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ pi c5 \ c1 c3 c2 = r (c4 c5) , c4 1 = f c2 c3 , c1 = (c2 \ c3 \ r (f c3 c2)) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ sigma c4 \ pi c5 \ r (c4 c5) = c1 c3 c2 , c4 1 = f c2 c3 , c1 = (c2 \ c3 \ r (f c3 c2)) ---------------------------------------- 0 test pi c0 \ pi c1 \ prune_arg (X13 c1 c0) , X13 = (c0 \ c1 \ r (v c0 c1)) 0 test pi c0 \ pi c1 \ prune_arg (X13 c1 c0) , X13 = (c0 \ c1 \ r (v c0 c1)) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg (c1 c3 c2) , c1 = (c2 \ c3 \ r (v c2 c3)) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg (c1 c3 c2) , c1 = (c2 \ c3 \ r (v c2 c3)) ---------------------------------------- 0 test pi c0 \ pi c1 \ prune_arg2 (X14 c1 c0) , X14 = (c0 \ c1 \ r c2 \ v c0 c1) 0 test pi c0 \ pi c1 \ prune_arg2 (X14 c1 c0) , X14 = (c0 \ c1 \ r c2 \ v c0 c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg2 (c1 c3 c2) , c1 = (c2 \ c3 \ r c4 \ v c2 c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg2 (c1 c3 c2) , c1 = (c2 \ c3 \ r c4 \ v c2 c3) ---------------------------------------- 0 test pi c0 \ pi c1 \ prune_arg3 (X15 c1 c0) , X15 = (c0 \ c1 \ r c2 \ c3 \ v c0 c1) 0 test pi c0 \ pi c1 \ prune_arg3 (X15 c1 c0) , X15 = (c0 \ c1 \ r c2 \ c3 \ v c0 c1) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg3 (c1 c3 c2) , c1 = (c2 \ c3 \ r c4 \ c5 \ v c2 c3) 0 test pi c0 \ sigma c1 \ pi c2 \ pi c3 \ prune_arg3 (c1 c3 c2) , c1 = (c2 \ c3 \ r c4 \ c5 \ v c2 c3) ---------------------------------------- .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.095 Success: Time: 0.002 Constraints: State: **../../tests/sources/llamchr.elpi :** .. literalinclude:: ../../tests/sources/llamchr.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 8, column 0, character 216: Warning: constant zero has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 33, column 0, character 798: Warning: constant watch has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 3, column 0, character 18: Warning: constant term has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 9, column 0, character 231: Warning: constant succ has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 29, column 0, character 710: Warning: constant spy has no declared type. Did you mean std.spy std.spy! std.spy-do! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 8, column 0, character 216: Warning: constant nat has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 4, column 0, character 66: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 22, column 0, character 521: Warning: constant compatible has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 19, column 0, character 457: Warning: constant both_or_none has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 36, column 0, character 893: Warning: constant b2n has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 3, column 0, character 18: Warning: [suppressing 2 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/llamchr.elpi", line 30, column 0, character 751: Warning: P is linear: name it _P (discard) or P_ (fresh variable) X0 X1 X1 X0 nat | lam X0 c2 \ lam X1 c3 \ X2 c0 c2 c3 | lam X1 c2 \ lam X0 c3 \ X2 c0 c3 c2 [ (c2 \ c3 \ X2 c0 c2 c3) = (c2 \ c3 \ c2) ]ok nat X1 X1 nat nat | lam nat c2 \ lam X1 c3 \ c2 | lam X1 c2 \ lam nat c3 \ c3 [ term (app (lam X1 c2 \ lam nat c3 \ c3) false) _ ]ok nat bool bool nat nat | lam nat c2 \ lam bool c3 \ c2 | lam bool c2 \ lam nat c3 \ c3 .. code-block:: console Parsing time: 0.000 Compilation time: 0.003 Typechecking time: 0.094 Success: Time: 0.000 Constraints: State: **../../tests/sources/map.elpi :** .. literalinclude:: ../../tests/sources/map.elpi :linenos: :language: elpi .. code-block:: console 0.906139 + 0.038838 + 0.639453 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.057 Success: Time: 1.715 Constraints: State: **../../tests/sources/map_list.elpi :** .. literalinclude:: ../../tests/sources/map_list.elpi :linenos: :language: elpi .. code-block:: console 5.650392 + 3.082371 + 0.386618 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.064 Success: Time: 9.126 Constraints: State: **../../tests/sources/map_list_opt.elpi :** .. literalinclude:: ../../tests/sources/map_list_opt.elpi :linenos: :language: elpi .. code-block:: console 6.174692 + 3.324478 + 0.302949 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.086 Success: Time: 9.811 Constraints: State: **../../tests/sources/name_builtin.elpi :** .. literalinclude:: ../../tests/sources/name_builtin.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/name_builtin.elpi", line 1, column 0, character 0: Error: (c2) has type any but is applied to c3 c4 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.101 Type error. To ignore it, pass -no-tc. **../../tests/sources/named_clauses00.elpi :** .. literalinclude:: ../../tests/sources/named_clauses00.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/named_clauses00.elpi", line 4, column 0, character 19:a clause named name1 already exists at File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/named_clauses00.elpi", line 1, column 0, character 0: **../../tests/sources/named_clauses01.elpi :** .. literalinclude:: ../../tests/sources/named_clauses01.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/named_clauses01.elpi", line 2, column 0, character 1:unable to graft this clause: no clause named c **../../tests/sources/named_clauses02.elpi :** .. literalinclude:: ../../tests/sources/named_clauses02.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/named_clauses02.elpi", line 5, column 0, character 26: Warning: constant c has no declared type. Did you mean std.set.private.create std.set.private.cardinal std.set.cardinal std.map.private.create std.string.concat std.string.set.cardinal std.int.set.cardinal std.loc.set.cardinal trace.counter gc.compact ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.103 Success: Time: 0.000 Constraints: State: **../../tests/sources/namespaces00.elpi :** .. literalinclude:: ../../tests/sources/namespaces00.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces00.elpi", line 9, column 0, character 174: Warning: constant aux has no declared type. Did you mean rev.aux ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.092 Success: Time: 0.000 Constraints: State: **../../tests/sources/namespaces01.elpi :** .. literalinclude:: ../../tests/sources/namespaces01.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces01.elpi", line 1, column 0, character 0: Warning: constant toto has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces01.elpi", line 5, column 3, character 75: Warning: constant foo.baz has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces01.elpi", line 5, column 3, character 75: Warning: constant foo.bar has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.104 Success: Time: 0.000 Constraints: State: **../../tests/sources/namespaces02.elpi :** .. literalinclude:: ../../tests/sources/namespaces02.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces02.elpi", line 3, column 3, character 62: Warning: constant x.foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces00.elpi", line 9, column 0, character 174: Warning: constant x.acc.main has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces00.elpi", line 9, column 0, character 174: Warning: constant aux has no declared type. Did you mean x.acc.rev.aux ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.123 Success: Time: 0.000 Constraints: State: **../../tests/sources/namespaces03.elpi :** .. literalinclude:: ../../tests/sources/namespaces03.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 21, column 3, character 187: Warning: constant a.foo4 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 20, column 3, character 168: Warning: constant a.foo3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 4, column 3, character 37: Warning: constant a.foo2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 3, column 3, character 18: Warning: constant a.foo1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 4, column 3, character 37: Warning: constant a.b.foo2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 4, column 3, character 37: Warning: constant a.b.foo1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/namespaces03.elpi", line 3, column 3, character 18: Warning: constant a.b.c.foo has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.153 Success: Time: 0.000 Constraints: State: **../../tests/sources/nil_cons.elpi :** .. literalinclude:: ../../tests/sources/nil_cons.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.096 Success: Time: 0.000 Constraints: State: **../../tests/sources/notation.elpi :** .. literalinclude:: ../../tests/sources/notation.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 13, column 0, character 122: Warning: constant ~z has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 15, column 0, character 132: Warning: constant z has no declared type. Did you mean std.zip ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 15, column 0, character 132: Warning: constant y has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 11, column 0, character 110: Warning: constant xx has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 13, column 0, character 122: Warning: constant x has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 15, column 0, character 132: Warning: constant w has no declared type. Did you mean std.while-ok-do! ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 11, column 0, character 110: Warning: constant uu has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 11, column 0, character 110: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 17, column 0, character 151: Warning: constant e has no declared type. Did you mean std.set.private.empty std.set.private.elements std.set.elements std.map.private.empty std.exists std.exists2 std.string.map.empty std.int.map.empty std.loc.map.empty std.string.set.empty std.string.set.equal std.string.set.elements std.int.set.empty std.int.set.equal std.int.set.elements std.loc.set.empty std.loc.set.equal std.loc.set.elements ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 25, column 0, character 269: Warning: constant cd has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 17, column 0, character 151: Warning: [suppressing 5 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 9, column 0, character 101: Warning: D is linear: name it _D (discard) or D_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation.elpi", line 9, column 0, character 101: Warning: X is linear: name it _X (discard) or X_ (fresh variable) a a +x [b] +y d .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.160 Success: Time: 0.000 Constraints: State: **../../tests/sources/notation_error.elpi :** .. literalinclude:: ../../tests/sources/notation_error.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation_error.elpi", line 1, column 0, character 0: Mixfix directives are not supported by this parser. The parser is based on token families. A family is identified by some starting characters, for example a token '+-->' belongs to the family of '+'. There is no need to declare it. All the tokens of a family are parsed with the same precedence and associativity, for example 'x +--> y *--> z' is parsed as 'x +--> (y *--> z)' since the family of '*' has higher precedence than the family of '+'. Here the table of tokens and token families. Token families are represented by the start symbols followed by '..'. Tokens of families marked with [*] cannot end with the starting symbol, eg `foo` is not an infix, while `foo is. The listing is ordered by increasing precedence. fixity | tokens / token families -------------------------- + ----------------------------------- Infix not associative | :- ?- Infix right associative | ; Infix right associative | , & Infix right associative | -> Infix right associative | => Infix not associative | = == =< r< i< s< r=< i=< s=< <.. r> i> s> r>= i>= s>= >.. is Infix right associative | :: Infix not associative | '.. [*] Infix left associative | ^.. r+ i+ s+ +.. - r- i- s- Infix left associative | r* i* s* *.. / div mod Infix right associative | --.. Infix not associative | `.. [*] Infix right associative | ==.. Infix right associative | ||.. Infix right associative | &&.. Infix left associative | #.. Prefix not associative | r~ i~ ~.. Postfix not associative | ?.. If the token is a valid mixfix, and you want the file to stay compatible with Teyjus, you can ask Elpi to skip the directive. Eg: % elpi:skip 2 // skips the next two lines infixr ==> 120. infixr || 120. As a debugging facility one can ask Elpi to print the AST in order to verify how the text was parsed. Eg: echo 'MyFormula = a || b ==> c && d' | elpi -parse-term **../../tests/sources/notation_legacy.elpi :** .. literalinclude:: ../../tests/sources/notation_legacy.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/notation_legacy.elpi", line 3, column 10, character 24: Mixfix declaration expected (Teyjus compatibility, ignored by Elpi). Examples: infixl and 30. infixr ++ 45. prefix - 12. **../../tests/sources/patternunif.elpi :** .. literalinclude:: ../../tests/sources/patternunif.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif.elpi", line 2, column 0, character 30: Warning: constant s has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.set.make std.set.mem std.set.add std.set.remove std.set.cardinal std.set.elements std.spy std.spy! std.split-at std.spy-do! rex.split random.self_init std.string.concat std.string.map std.string.map.empty std.string.map.mem std.string.map.add std.string.map.remove std.string.map.find std.string.map.bindings std.string.set std.string.set.empty std.string.set.mem std.string.set.add std.string.set.remove std.string.set.union std.string.set.inter std.string.set.diff std.string.set.equal std.string.set.subset std.string.set.elements std.string.set.cardinal std.int.set std.int.set.empty std.int.set.mem std.int.set.add std.int.set.remove std.int.set.union std.int.set.inter std.int.set.diff std.int.set.equal std.int.set.subset std.int.set.elements std.int.set.cardinal std.loc.set std.loc.set.empty std.loc.set.mem std.loc.set.add std.loc.set.remove std.loc.set.union std.loc.set.inter std.loc.set.diff std.loc.set.equal std.loc.set.subset std.loc.set.elements std.loc.set.cardinal std.set std.set gc.set gc.stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif.elpi", line 2, column 0, character 30: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif.elpi", line 2, column 0, character 30: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif.elpi", line 2, column 0, character 30: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.119 Success: Time: 0.000 Constraints: State: **../../tests/sources/patternunif2.elpi :** .. literalinclude:: ../../tests/sources/patternunif2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif2.elpi", line 3, column 0, character 32: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/patternunif2.elpi", line 2, column 0, character 18: Warning: constant q has no declared type. Did you mean gc.quick-stat ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.093 Success: Time: 0.000 Constraints: State: **../../tests/sources/pi.elpi :** .. literalinclude:: ../../tests/sources/pi.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi.elpi", line 3, column 0, character 19: Warning: constant z has no declared type. Did you mean std.zip ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi.elpi", line 3, column 0, character 19: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi.elpi", line 3, column 0, character 19: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi.elpi", line 3, column 0, character 19: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi.elpi", line 5, column 0, character 62: Warning: constant ko has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.113 Success: Time: 0.000 Constraints: State: **../../tests/sources/pi3.elpi :** .. literalinclude:: ../../tests/sources/pi3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi3.elpi", line 3, column 0, character 31: Warning: constant z has no declared type. Did you mean std.zip ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi3.elpi", line 3, column 0, character 31: Warning: constant q has no declared type. Did you mean gc.quick-stat ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.096 Success: Time: 0.000 Constraints: State: **../../tests/sources/pi5.elpi :** .. literalinclude:: ../../tests/sources/pi5.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 9, column 0, character 152: Warning: constant s has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.set.make std.set.mem std.set.add std.set.remove std.set.cardinal std.set.elements std.spy std.spy! std.split-at std.spy-do! rex.split random.self_init std.string.concat std.string.map std.string.map.empty std.string.map.mem std.string.map.add std.string.map.remove std.string.map.find std.string.map.bindings std.string.set std.string.set.empty std.string.set.mem std.string.set.add std.string.set.remove std.string.set.union std.string.set.inter std.string.set.diff std.string.set.equal std.string.set.subset std.string.set.elements std.string.set.cardinal std.int.set std.int.set.empty std.int.set.mem std.int.set.add std.int.set.remove std.int.set.union std.int.set.inter std.int.set.diff std.int.set.equal std.int.set.subset std.int.set.elements std.int.set.cardinal std.loc.set std.loc.set.empty std.loc.set.mem std.loc.set.add std.loc.set.remove std.loc.set.union std.loc.set.inter std.loc.set.diff std.loc.set.equal std.loc.set.subset std.loc.set.elements std.loc.set.cardinal std.set std.set gc.set gc.stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 8, column 0, character 122: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 7, column 0, character 85: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 3, column 0, character 33: Warning: constant of has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 5, column 0, character 56: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pi5.elpi", line 4, column 0, character 42: Warning: constant bam has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.110 Success: Time: 0.000 Constraints: State: **../../tests/sources/pnf.elpi :** .. literalinclude:: ../../tests/sources/pnf.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 91, column 0, character 3225: Warning: constant test has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 25, column 0, character 688: Warning: constant termp has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 18, column 0, character 475: Warning: constant quant_free has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 36, column 0, character 855: Warning: constant prenex has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 37, column 0, character 891: Warning: constant merge has no declared type. Did you mean std.set.private.merge std.map.private.merge ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 20, column 0, character 508: Warning: constant atom has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 93, column 0, character 3271: Warning: F4 is linear: name it _F4 (discard) or F4_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 93, column 0, character 3271: Warning: F3 is linear: name it _F3 (discard) or F3_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 93, column 0, character 3271: Warning: F2 is linear: name it _F2 (discard) or F2_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/pnf.elpi", line 93, column 0, character 3271: Warning: F1 is linear: name it _F1 (discard) or F1_ (fresh variable) .. code-block:: console Parsing time: 0.001 Compilation time: 0.003 Typechecking time: 0.119 Success: Time: 0.000 Constraints: State: **../../tests/sources/polymorphic_variants.elpi :** .. literalinclude:: ../../tests/sources/polymorphic_variants.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 84, column 0, character 2748: Warning: constant union has no declared type. Did you mean std.string.set.union std.int.set.union std.loc.set.union ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 77, column 0, character 2542: Warning: constant propagate has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 33, column 0, character 1118: Warning: constant mem_ has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 30, column 0, character 1008: Warning: constant mem has no declared type. Did you mean std.set.private.mem std.set.mem std.mem! std.mem std.string.map.mem std.int.map.mem std.loc.map.mem std.string.set.mem std.int.set.mem std.loc.set.mem ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 129, column 0, character 3786: Warning: constant main2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 102, column 0, character 3251: Warning: constant main1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 28, column 0, character 958: Warning: constant is_subset_ has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 23, column 0, character 729: Warning: constant is_subset has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 88, column 0, character 2860: Warning: constant is_ground has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 80, column 0, character 2645: Warning: constant inter has no declared type. Did you mean std.intersperse std.string.set.inter std.int.set.inter std.loc.set.inter ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 23, column 0, character 729: Warning: [suppressing 18 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 35, column 0, character 1158: Warning: Y is linear: name it _Y (discard) or Y_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/polymorphic_variants.elpi", line 81, column 0, character 2697: Warning: X is linear: name it _X (discard) or X_ (fresh variable) Type-checking ok Type-inference ok ::: f : X0 -> X1 ::: g : X2 -> X3 mem X3 d /* suspended on X3 */ mem X3 c /* suspended on X3 */ X2 is_subset [a, b] /* suspended on X2 */ X3 is_subset X1 /* suspended on X3 */ mem X2 a /* suspended on X2 */ mem X1 a /* suspended on X1 */ X0 is_subset [a, b] /* suspended on X0 */ Type specialization ok ::: f : X0 -> X1 ::: g : [a] -> X3 mem X3 d /* suspended on X3 */ mem X3 c /* suspended on X3 */ X3 is_subset X1 /* suspended on X3 */ mem X1 a /* suspended on X1 */ X0 is_subset [a, b] /* suspended on X0 */ xxx failing xxx failed Type-inference ok ::: f : X4 -> X5 ::: g : X6 -> X7 ::: h1 : X8 -> X9 ::: h2 : X10 -> X11 .. code-block:: console Parsing time: 0.001 Compilation time: 0.002 Typechecking time: 0.158 Success: Time: 0.000 Constraints: mem X11 c /* suspended on X11 */ mem X11 b /* suspended on X11 */ mem X11 a /* suspended on X11 */ X10 is_subset [a, b, c] /* suspended on X10 */ mem X9 d /* suspended on X9 */ mem X9 b /* suspended on X9 */ mem X9 a /* suspended on X9 */ X8 is_subset [a, b, d] /* suspended on X8 */ mem X7 a /* suspended on X7 */ X6 is_subset [a] /* suspended on X6 */ X11 is_subset X5 /* suspended on X11 */ X7 is_subset X10 /* suspended on X7 */ mem X6 a /* suspended on X6 */ X9 is_subset X5 /* suspended on X9 */ X7 is_subset X8 /* suspended on X7 */ mem X6 a /* suspended on X6 */ mem X5 a /* suspended on X5 */ X4 is_subset [a, b, c] /* suspended on X4 */ State: **../../tests/sources/printer.elpi :** .. literalinclude:: ../../tests/sources/printer.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant || has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant x has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant g has no declared type. Did you mean gc.get ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: constant ==> has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: [suppressing 1 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Error: (r X) has type prop but is used with type int File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Error: (, (q X) (r x)) has type prop but is used with type (list prop) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: G is linear: name it _G (discard) or G_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/printer.elpi", line 1, column 0, character 0: Warning: B is linear: name it _B (discard) or B_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.123 Type error. To ignore it, pass -no-tc. **../../tests/sources/queens.elpi :** .. literalinclude:: ../../tests/sources/queens.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 14, column 0, character 189: Warning: constant zero has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 49, column 0, character 1240: Warning: constant xxx has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 24, column 0, character 348: Warning: constant xnil has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 27, column 0, character 431: Warning: constant xcons has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 27, column 0, character 431: Warning: constant select has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 15, column 0, character 204: Warning: constant s has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.set.make std.set.mem std.set.add std.set.remove std.set.cardinal std.set.elements std.spy std.spy! std.split-at std.spy-do! rex.split random.self_init std.string.concat std.string.map std.string.map.empty std.string.map.mem std.string.map.add std.string.map.remove std.string.map.find std.string.map.bindings std.string.set std.string.set.empty std.string.set.mem std.string.set.add std.string.set.remove std.string.set.union std.string.set.inter std.string.set.diff std.string.set.equal std.string.set.subset std.string.set.elements std.string.set.cardinal std.int.set std.int.set.empty std.int.set.mem std.int.set.add std.int.set.remove std.int.set.union std.int.set.inter std.int.set.diff std.int.set.equal std.int.set.subset std.int.set.elements std.int.set.cardinal std.loc.set std.loc.set.empty std.loc.set.mem std.loc.set.add std.loc.set.remove std.loc.set.union std.loc.set.inter std.loc.set.diff std.loc.set.equal std.loc.set.subset std.loc.set.elements std.loc.set.cardinal std.set std.set gc.set gc.stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 24, column 0, character 348: Warning: constant range has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 24, column 0, character 348: Warning: constant queens_aux has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 24, column 0, character 348: Warning: constant queens has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 52, column 0, character 1389: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 14, column 0, character 189: Warning: [suppressing 10 warnings] File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 34, column 0, character 649: Warning: DUMMY2 is linear: name it _DUMMY2 (discard) or DUMMY2_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 34, column 0, character 649: Warning: DUMMY1 is linear: name it _DUMMY1 (discard) or DUMMY1_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 54, column 0, character 1428: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 57, column 0, character 1471: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/queens.elpi", line 60, column 0, character 1532: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.135 Success: Time: 2.175 Constraints: State: **../../tests/sources/quote_syntax.elpi :** .. literalinclude:: ../../tests/sources/quote_syntax.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/quote_syntax.elpi", line 1, column 0, character 0: Warning: A is linear: name it _A (discard) or A_ (fresh variable) clause File "(quote_syntax): query", line 1, column 0, character 0: [] (const main) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.089 Success: Time: 0.016 Constraints: State: **../../tests/sources/random.elpi :** .. literalinclude:: ../../tests/sources/random.elpi :linenos: :language: elpi .. code-block:: console 3 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.079 Success: Time: 0.000 Constraints: State: **../../tests/sources/reduce_cbn.elpi :** .. literalinclude:: ../../tests/sources/reduce_cbn.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 7, column 0, character 285: Warning: constant subst has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 3, column 0, character 101: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 2, column 0, character 49: Warning: constant copy has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 6, column 0, character 211: Warning: constant cbn has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 2, column 0, character 49: Warning: constant app has no declared type. Did you mean std.append std.appendR ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 14, column 0, character 563: Warning: NINE is linear: name it _NINE (discard) or NINE_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbn.elpi", line 14, column 0, character 563: Warning: TWELVE is linear: name it _TWELVE (discard) or TWELVE_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.106 Success: Time: 0.351 Constraints: State: **../../tests/sources/reduce_cbv.elpi :** .. literalinclude:: ../../tests/sources/reduce_cbv.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 2, column 0, character 52: Warning: constant lam has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 1, column 0, character 0: Warning: constant copy has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 4, column 0, character 115: Warning: constant cbv has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 5, column 0, character 186: Warning: constant beta has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 1, column 0, character 0: Warning: constant app has no declared type. Did you mean std.append std.appendR ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 15, column 0, character 351: Warning: NINE is linear: name it _NINE (discard) or NINE_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/reduce_cbv.elpi", line 15, column 0, character 351: Warning: TWELVE is linear: name it _TWELVE (discard) or TWELVE_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.106 Success: Time: 2.359 Constraints: State: **../../tests/sources/restriction.elpi :** .. literalinclude:: ../../tests/sources/restriction.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction.elpi", line 3, column 0, character 21: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 **../../tests/sources/restriction3.elpi :** .. literalinclude:: ../../tests/sources/restriction3.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction3.elpi", line 18, column 0, character 442: Warning: constant foo has no declared type. ----<<---- enter: X0 c0 = lam c1 \ lam c2 \ X1^1 c1 c2 ---->>---- exit: lam c1 \ lam c2 \ X1^1 c1 c2 = lam c1 \ lam c2 \ X1^1 c1 c2 ----<<---- enter: X2 = lam c1 \ lam c2 \ X3^1 c1 c2 ---->>---- exit: lam c1 \ lam c2 \ X4 c1 c2 = lam c1 \ lam c2 \ X4 c1 c2 ----<<---- enter: lam c1 \ lam c2 \ X1^1 c1 c2 = lam c1 \ lam c2 \ c1 ---->>---- exit: lam c1 \ lam c2 \ c1 = lam c1 \ lam c2 \ c1 ----<<---- enter: lam c1 \ lam c2 \ X4 c1 c2 = lam c1 \ lam c2 \ c1 ---->>---- exit: lam c1 \ lam c2 \ c1 = lam c1 \ lam c2 \ c1 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.088 Success: Time: 0.000 Constraints: State: **../../tests/sources/restriction4.elpi :** .. literalinclude:: ../../tests/sources/restriction4.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction4.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction4.elpi", line 1, column 0, character 0: Warning: X is linear: name it _X (discard) or X_ (fresh variable) ----<<---- enter: X0 c0 = f (X1^1 c1) c2 \ X2^1 c1 c2 ---->>---- exit: f (X3 c0) c2 \ X4 c0 c2 = f (X3 c0) c2 \ X4 c0 c2 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.080 Success: Time: 0.000 Constraints: State: **../../tests/sources/restriction5.elpi :** .. literalinclude:: ../../tests/sources/restriction5.elpi :linenos: :language: elpi .. code-block:: console ----<<---- enter: X0 c0 c1 = X0 c3 c4 ---->>---- exit: X1 = X1 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.079 Success: Time: 0.000 Constraints: State: **../../tests/sources/restriction6.elpi :** .. literalinclude:: ../../tests/sources/restriction6.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction6.elpi", line 1, column 0, character 0: Warning: constant f has no declared type. Did you mean std.map.private.find std.map.find std.fatal-error std.fatal-error-w-data std.fold std.fold2 std.fold-map std.forall std.forall-ok std.forall2 std.filter std.flatten std.flip std.findall loc.fields std.string.map.find std.int.map.find std.loc.map.find gc.full ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/restriction6.elpi", line 1, column 0, character 0: Warning: X is linear: name it _X (discard) or X_ (fresh variable) ----<<---- enter: X0 c0 = f (X1^1 c1) c2 \ c3 \ X2^2 c3 ---->>---- exit: f (X3 c0) c2 \ c3 \ X4^1 c3 = f (X3 c0) c2 \ c3 \ X4^1 c3 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 Success: Time: 0.000 Constraints: State: **../../tests/sources/rev.elpi :** .. literalinclude:: ../../tests/sources/rev.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 40, column 0, character 1827: Warning: constant xnil has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 41, column 0, character 1857: Warning: constant xcons has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x9 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x8 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x7 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x6 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x5 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x4 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: constant x2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev.elpi", line 47, column 0, character 2004: Warning: [suppressing 17 warnings] .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.119 Fatal error: exception Stack overflow **../../tests/sources/rev14.elpi :** .. literalinclude:: ../../tests/sources/rev14.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 1, column 0, character 0: Warning: constant xnil has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 2, column 0, character 29: Warning: constant xcons has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x9 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x8 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x7 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x6 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x5 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x4 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x3 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: constant x2 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/rev14.elpi", line 8, column 0, character 171: Warning: [suppressing 17 warnings] .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.133 Fatal error: exception Stack overflow **../../tests/sources/same_term.elpi :** .. literalinclude:: ../../tests/sources/same_term.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.084 Success: Time: 0.000 Constraints: State: **../../tests/sources/self_assignment.elpi :** .. literalinclude:: ../../tests/sources/self_assignment.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/self_assignment.elpi", line 3, column 0, character 23: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/self_assignment.elpi", line 5, column 0, character 33: Warning: constant d has no declared type. Did you mean std.debug-print std.drop std.drop-last std.do! std.do-ok! std.string.set.diff std.int.set.diff std.loc.set.diff ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/self_assignment.elpi", line 3, column 0, character 23: Warning: A is linear: name it _A (discard) or A_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.087 Success: Time: 0.000 Constraints: State: **../../tests/sources/set.elpi :** .. literalinclude:: ../../tests/sources/set.elpi :linenos: :language: elpi .. code-block:: console 1.031358 + 0.051872 + 0.749295 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.082 Success: Time: 1.924 Constraints: State: **../../tests/sources/shorten.elpi :** .. literalinclude:: ../../tests/sources/shorten.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten.elpi", line 4, column 0, character 16: Warning: constant b.foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten.elpi", line 5, column 0, character 29: Warning: constant b.baz has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten.elpi", line 9, column 3, character 67: Warning: constant b.bar.baz has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten.elpi", line 23, column 3, character 177: Warning: constant a.main has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten.elpi", line 23, column 3, character 177: Warning: constant a.bar.baz has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.115 Success: Time: 0.000 Constraints: State: **../../tests/sources/shorten2.elpi :** .. literalinclude:: ../../tests/sources/shorten2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux2.elpi", line 1, column 0, character 0: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux2.elpi", line 1, column 0, character 0: Warning: constant bar has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux.elpi", line 2, column 3, character 17: Warning: constant a.foo has no declared type. .. code-block:: console Parsing time: 0.001 Compilation time: 0.001 Typechecking time: 0.109 Success: Time: 0.000 Constraints: State: **../../tests/sources/shorten_aux.elpi :** .. literalinclude:: ../../tests/sources/shorten_aux.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux.elpi", line 2, column 3, character 17: Warning: constant a.foo has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 **../../tests/sources/shorten_aux2.elpi :** .. literalinclude:: ../../tests/sources/shorten_aux2.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux2.elpi", line 1, column 0, character 0: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_aux2.elpi", line 1, column 0, character 0: Warning: constant bar has no declared type. .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.080 **../../tests/sources/shorten_builtin.elpi :** .. literalinclude:: ../../tests/sources/shorten_builtin.elpi :linenos: :language: elpi .. code-block:: console {{ }} .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 Success: Time: 0.000 Constraints: State: **../../tests/sources/shorten_trie.elpi :** .. literalinclude:: ../../tests/sources/shorten_trie.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 3, column 0, character 44: Warning: constant std.string.escape has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 2, column 0, character 18: Warning: constant std.string.concat1 has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 1, column 0, character 0: Warning: constant std.list.map has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 7, column 0, character 121: Warning: E is linear: name it _E (discard) or E_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 7, column 0, character 121: Warning: AB is linear: name it _AB (discard) or AB_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/shorten_trie.elpi", line 7, column 0, character 121: Warning: F is linear: name it _F (discard) or F_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.093 Success: Time: 0.000 Constraints: State: **../../tests/sources/spill_and.elpi :** .. literalinclude:: ../../tests/sources/spill_and.elpi :linenos: :language: elpi .. code-block:: console lam c0 \ app t t .. code-block:: console Parsing time: 0.000 Compilation time: 0.003 Typechecking time: 0.094 Success: Time: 0.000 Constraints: State: **../../tests/sources/spill_impl.elpi :** .. literalinclude:: ../../tests/sources/spill_impl.elpi :linenos: :language: elpi .. code-block:: console lam c0 \ app t t .. code-block:: console Parsing time: 0.000 Compilation time: 0.004 Typechecking time: 0.088 Success: Time: 0.000 Constraints: State: **../../tests/sources/spill_lam.elpi :** .. literalinclude:: ../../tests/sources/spill_lam.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/spill_lam.elpi", line 2, column 0, character 25: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.073 Success: Time: 0.000 Constraints: State: **../../tests/sources/trace.elpi :** .. literalinclude:: ../../tests/sources/trace.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trace.elpi", line 2, column 0, character 1: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trace.elpi", line 6, column 0, character 60: Warning: Y is linear: name it _Y (discard) or Y_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trace.elpi", line 6, column 0, character 60: Warning: X is linear: name it _X (discard) or X_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.082 Success: Time: 0.000 Constraints: State: **../../tests/sources/trace2.elpi :** .. literalinclude:: ../../tests/sources/trace2.elpi :linenos: :language: elpi .. code-block:: console 1 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 Success: Time: 0.000 Constraints: State: **../../tests/sources/trace_chr.elpi :** .. literalinclude:: ../../tests/sources/trace_chr.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.080 Success: Time: 0.000 Constraints: odd X0 /* suspended on X0 */ State: **../../tests/sources/trace_cut.elpi :** .. literalinclude:: ../../tests/sources/trace_cut.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.085 Success: Time: 0.000 Constraints: State: **../../tests/sources/trace_findall.elpi :** .. literalinclude:: ../../tests/sources/trace_findall.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trace_findall.elpi", line 1, column 0, character 0: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? [p 1, p 2, p 3] .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.076 Success: Time: 0.000 Constraints: State: **../../tests/sources/trail.elpi :** .. literalinclude:: ../../tests/sources/trail.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 4, column 0, character 49: Warning: constant r has no declared type. Did you mean std.set.private.remove-min-binding std.set.private.remove std.set.remove std.map.private.remove-min-binding std.map.private.remove std.map.remove std.rev rex.replace std.string.map.remove std.int.map.remove std.loc.map.remove std.string.set.remove std.int.set.remove std.loc.set.remove ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 5, column 0, character 74: Warning: constant q has no declared type. Did you mean gc.quick-stat ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 4, column 0, character 49: Warning: constant p has no declared type. Did you mean std.set.private.set std.set.private.empty std.set.private.node std.set.private.height std.set.private.create std.set.private.bal std.set.private.add std.set.private.mem std.set.private.remove-min-binding std.set.private.min-binding std.set.private.merge std.set.private.remove std.set.private.cardinal std.set.private.elements std.map.private.map std.map.private.empty std.map.private.node std.map.private.height std.map.private.create std.map.private.bal std.map.private.add std.map.private.find std.map.private.remove-min-binding std.map.private.min-binding std.map.private.merge std.map.private.remove std.map.private.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 4, column 0, character 49: Warning: constant foo has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 7, column 0, character 110: Warning: constant b has no declared type. Did you mean std.set.private.bal std.map.private.bal std.map.private.bindings std.map.bindings std.string.map.bindings std.int.map.bindings std.loc.map.bindings ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/trail.elpi", line 6, column 0, character 105: Warning: constant a has no declared type. Did you mean std.set.private.add std.set.add std.map.private.add std.map.add std.assert! std.assert-ok! std.append std.appendR std.any->string std.string.map.add std.int.map.add std.loc.map.add std.string.set.add std.int.set.add std.loc.set.add ? .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.102 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.077 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv1.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv1.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.003 Typechecking time: 0.076 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv10.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv10.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv10.elpi", line 7, column 0, character 111: Error: 3 has type int but is used with type (foo X24) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv10.elpi", line 7, column 0, character 111: Error: 3 has type int but is used with type type File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv10.elpi", line 7, column 0, character 111: Error: 3 has type int but is used with type (std.map.private.map X26 X25) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv10.elpi", line 7, column 0, character 111: Error: 3 has type int but is used with type (foo X27) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv10.elpi", line 7, column 0, character 111: Error: 3 has type int but is used with type (std.map.private.map X29 X28) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.076 Type error. To ignore it, pass -no-tc. **../../tests/sources/typeabbrv11.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv11.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv11.elpi", line 4, column 0, character 31: Error: x has type string but is used with type int .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.090 Type error. To ignore it, pass -no-tc. **../../tests/sources/typeabbrv12.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv12.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv12.elpi", line 4, column 0, character 38: Error: x has type string but is used with type y .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.093 Type error. To ignore it, pass -no-tc. **../../tests/sources/typeabbrv2.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv2.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv2.elpi", line 6, column 0, character 39:duplicate type abbreviation for t1. Previous declaration: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv2.elpi", line 1, column 0, character 0: **../../tests/sources/typeabbrv3.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv3.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.076 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv4.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv4.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.072 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv5.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv5.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Fatal error: exception Elpi__Compiler.CompileError(_, "looping while unfolding type abbreviation for x") **../../tests/sources/typeabbrv6.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv6.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Fatal error: File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/typeabbrv6.elpi", line 1, column 0, character 0:type abbreviation for x has unbound variables **../../tests/sources/typeabbrv7.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv7.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.072 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv8.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv8.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.072 Success: Time: 0.000 Constraints: State: **../../tests/sources/typeabbrv9.elpi :** .. literalinclude:: ../../tests/sources/typeabbrv9.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.073 Success: Time: 0.000 Constraints: State: **../../tests/sources/uminus.elpi :** .. literalinclude:: ../../tests/sources/uminus.elpi :linenos: :language: elpi .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.079 Success: Time: 0.000 Constraints: State: **../../tests/sources/uvar_chr.elpi :** .. literalinclude:: ../../tests/sources/uvar_chr.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/uvar_chr.elpi", line 17, column 0, character 438: Warning: constant copy-list has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/uvar_chr.elpi", line 28, column 0, character 731: Warning: F is linear: name it _F (discard) or F_ (fresh variable) lam X0 lam c0 \ X0 c0 .. code-block:: console Parsing time: 0.000 Compilation time: 0.003 Typechecking time: 0.093 Success: Time: 0.000 Constraints: meta-copy (lam c0 \ X0 c0) (lam c0 \ X0 c0) /* suspended on */ State: **../../tests/sources/var.elpi :** .. literalinclude:: ../../tests/sources/var.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/var.elpi", line 1, column 0, character 0: Warning: X10 is linear: name it _X10 (discard) or X10_ (fresh variable) X0 , X1 , X2 , X3 , X4 , X4 c0 c1 .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.080 Success: Time: 0.000 Constraints: State: **../../tests/sources/variadic_declare_constraints.elpi :** .. literalinclude:: ../../tests/sources/variadic_declare_constraints.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/variadic_declare_constraints.elpi", line 3, column 0, character 36: Warning: Z is linear: name it _Z (discard) or Z_ (fresh variable) .. code-block:: console Parsing time: 0.000 Compilation time: 0.002 Typechecking time: 0.082 Success: Time: 0.000 Constraints: foo X0 X1 /* suspended on X0, X1, X2 */ State: **../../tests/sources/w.elpi :** .. literalinclude:: ../../tests/sources/w.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 76, column 0, character 1561: Warning: constant quantify has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 5, column 0, character 105: Warning: constant mem has no declared type. Did you mean std.set.private.mem std.set.mem std.mem! std.mem std.string.map.mem std.int.map.mem std.loc.map.mem std.string.set.mem std.int.set.mem std.loc.set.mem ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 76, column 0, character 1561: Warning: constant generalize has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 76, column 0, character 1561: Warning: constant free-ty has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 76, column 0, character 1561: Warning: constant free-gamma has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 82, column 0, character 1693: Warning: constant free has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 1, column 0, character 0: Warning: constant filter has no declared type. Did you mean std.filter ? File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 93, column 0, character 2038: Warning: constant copy-ty has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 93, column 0, character 2038: Warning: constant copy has no declared type. File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 91, column 0, character 2025: Warning: X is linear: name it _X (discard) or X_ (fresh variable) File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w.elpi", line 107, column 0, character 2408: Warning: TQ is linear: name it _TQ (discard) or TQ_ (fresh variable) Test 1 Typing let (lam c0 \ c0) X0 c0 \ app (app plus (app c0 one)) (app size (app c0 empty)) OK let (lam c0 \ c0) (all c0 \ mono (c0 ==> c0)) c0 \ app (app plus (app c0 one)) (app size (app c0 empty)) has type mono integer Test 2 Typing lam c0 \ let (lam c1 \ app (app comma c0) c1) X1 c1 \ app (app comma (app c1 one)) (app c1 c0) OK lam c0 \ let (lam c1 \ app (app comma c0) c1) (all c1 \ mono (c1 ==> pair # X2 # c1)) c1 \ app (app comma (app c1 one)) (app c1 c0) has type mono (X2 ==> pair # (pair # X2 # integer) # (pair # X2 # X2)) Test 3 Typing lam c0 \ app (app plus (app c0 one)) (app size (app c0 empty)) Error: c0 cannot have type all X3^1 Error: c0 cannot have type mono (X4^1 ==> list # X5^1) .. code-block:: console Parsing time: 0.001 Compilation time: 0.003 Typechecking time: 0.138 Success: Time: 0.001 Constraints: State: **../../tests/sources/w_legacy.elpi :** .. literalinclude:: ../../tests/sources/w_legacy.elpi :linenos: :language: elpi .. code-block:: console File "/home/jwintz/Development/elpi/docs/source/../../tests/sources/w_legacy.elpi", line 17, column 0, character 330: Mixfix directives are not supported by this parser. The parser is based on token families. A family is identified by some starting characters, for example a token '+-->' belongs to the family of '+'. There is no need to declare it. All the tokens of a family are parsed with the same precedence and associativity, for example 'x +--> y *--> z' is parsed as 'x +--> (y *--> z)' since the family of '*' has higher precedence than the family of '+'. Here the table of tokens and token families. Token families are represented by the start symbols followed by '..'. Tokens of families marked with [*] cannot end with the starting symbol, eg `foo` is not an infix, while `foo is. The listing is ordered by increasing precedence. fixity | tokens / token families -------------------------- + ----------------------------------- Infix not associative | :- ?- Infix right associative | ; Infix right associative | , & Infix right associative | -> Infix right associative | => Infix not associative | = == =< r< i< s< r=< i=< s=< <.. r> i> s> r>= i>= s>= >.. is Infix right associative | :: Infix not associative | '.. [*] Infix left associative | ^.. r+ i+ s+ +.. - r- i- s- Infix left associative | r* i* s* *.. / div mod Infix right associative | --.. Infix not associative | `.. [*] Infix right associative | ==.. Infix right associative | ||.. Infix right associative | &&.. Infix left associative | #.. Prefix not associative | r~ i~ ~.. Postfix not associative | ?.. If the token is a valid mixfix, and you want the file to stay compatible with Teyjus, you can ask Elpi to skip the directive. Eg: % elpi:skip 2 // skips the next two lines infixr ==> 120. infixr || 120. As a debugging facility one can ask Elpi to print the AST in order to verify how the text was parsed. Eg: echo 'MyFormula = a || b ==> c && d' | elpi -parse-term **../../tests/sources/zebra.elpi:** .. literalinclude:: ../../tests/sources/zebra.elpi :linenos: :language: elpi .. code-block:: console Fatal error: exception Failure("File /home/jwintz/Development/elpi/docs/source/../../tests/sources/zebra.elp not found in: /home/jwintz/Development/elpi/_build/default/../lib/, /home/jwintz/Development/elpi/_build/default/../lib/ocaml, /home/jwintz/Development/elpi/_build/install/default/lib, /home/jwintz/Development/elpi/_build/default")