E1: C1 CALL pred polymorphic_output.main/2-0 (det) polymorphic_output.m:20 mdb> echo on Command echo enabled. mdb> register --quiet mdb> context none Contexts will not be printed. mdb> b functor_names 0: + stop interface func polymorphic_output.functor_names/1-0 (det) mdb> c E2: C2 CALL func polymorphic_output.functor_names/1-0 (det) mdb> delete 0 0: E stop interface func polymorphic_output.functor_names/1-0 (det) mdb> p goal functor_names(two("three", 3, three("four", 4, "one", 1, empty, empty, empty), two("two", 2, empty, empty))) = _ mdb> format verbose mdb> format_param lines 100 mdb> p goal functor_names 1-two | 1-"three" | 2-3 | 3-three | | 1-"four" | | 2-4 | | 3-"one" | | 4-1 | | 5-empty | | 6-empty | | 7-empty | 4-two | 1-"two" | 2-2 | 3-empty | 4-empty 2-_ mdb> format flat mdb> browse goal browser> ^1 browser> p two("three", 3, three("four", 4, "one", 1, empty, empty, empty), two("two", 2, empty, empty)) browser> ^..^2 browser> p '_' browser> ^..^3 error: there is no subterm 3 browser> p '_' browser> ^..^r browser> p '_' browser> quit mdb> b std_util__det_arg 0: + stop interface func std_util.det_arg/2-0 (det) mdb> c E3: C3 CALL func std_util.det_arg/2-0 (det) mdb> P Type (arg 1) two("three", 3, three("four", 4, "one", 1, empty, empty, empty), two/4) Index (arg 2) 3 mdb> f E4: C3 EXCP func std_util.det_arg/2-0 (det) mdb> P Type (arg 1) two("three", 3, three("four", 4, "one", 1, empty, empty, empty), two/4) Index (arg 2) 3 Argument0 two("two", 2, empty, empty) mdb> c Uncaught Mercury exception: Software Error: det_arg: argument has wrong type Last trace event was event #E5. Last trace event before the unhandled exception was event #E6.