WORST_CASE(?,O(n^2)) Solution: --------- "Cons" :: ["A"(0, 0) x "A"(14, 2)] -(12)-> "A"(12, 2) "Cons" :: ["A"(0, 0) x "A"(14, 9)] -(5)-> "A"(5, 9) "Cons" :: ["A"(0, 0) x "A"(6, 0)] -(6)-> "A"(6, 0) "Cons" :: ["A"(0, 0) x "A"(6, 2)] -(4)-> "A"(4, 2) "Cons" :: ["A"(0, 0) x "A"(4, 0)] -(4)-> "A"(4, 0) "Cons" :: ["A"(0, 0) x "A"(9, 5)] -(4)-> "A"(4, 5) "Nil" :: [] -(0)-> "A"(12, 2) "Nil" :: [] -(0)-> "A"(5, 9) "Nil" :: [] -(0)-> "A"(6, 0) "Nil" :: [] -(0)-> "A"(12, 14) "One" :: [] -(0)-> "A"(0, 0) "One" :: [] -(0)-> "A"(8, 0) "Zero" :: [] -(0)-> "A"(0, 0) "Zero" :: [] -(0)-> "A"(8, 0) "Zero" :: [] -(0)-> "A"(12, 1) "add#2" :: ["A"(5, 9) x "A"(12, 2)] -(2)-> "A"(4, 0) "inc#1" :: ["A"(6, 0)] -(8)-> "A"(4, 0) "main" :: ["A"(11, 15) x "A"(14, 12)] -(15)-> "A"(2, 0) Cost Free Signatures: --------------------- "Cons" :: ["A"_cf(0, 0) x "A"_cf(2, 0)] -(2)-> "A"_cf(2, 0) "Cons" :: ["A"_cf(0, 0) x "A"_cf(9, 0)] -(9)-> "A"_cf(9, 0) "Cons" :: ["A"_cf(0, 0) x "A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "Cons" :: ["A"_cf(0, 0) x "A"_cf(1, 1)] -(0)-> "A"_cf(0, 1) "Cons" :: ["A"_cf(0, 0) x "A"_cf(1, 0)] -(1)-> "A"_cf(1, 0) "Cons" :: ["A"_cf(0, 0) x "A"_cf(3, 1)] -(2)-> "A"_cf(2, 1) "Nil" :: [] -(0)-> "A"_cf(2, 0) "Nil" :: [] -(0)-> "A"_cf(9, 0) "Nil" :: [] -(0)-> "A"_cf(0, 0) "Nil" :: [] -(0)-> "A"_cf(8, 8) "Nil" :: [] -(0)-> "A"_cf(12, 12) "One" :: [] -(0)-> "A"_cf(0, 0) "One" :: [] -(0)-> "A"_cf(8, 8) "Zero" :: [] -(0)-> "A"_cf(0, 0) "Zero" :: [] -(0)-> "A"_cf(8, 8) "add#2" :: ["A"_cf(9, 0) x "A"_cf(2, 0)] -(0)-> "A"_cf(0, 0) "add#2" :: ["A"_cf(9, 0) x "A"_cf(2, 0)] -(5)-> "A"_cf(0, 0) "add#2" :: ["A"_cf(9, 0) x "A"_cf(2, 0)] -(4)-> "A"_cf(2, 0) "inc#1" :: ["A"_cf(0, 0)] -(0)-> "A"_cf(0, 0) "inc#1" :: ["A"_cf(2, 0)] -(6)-> "A"_cf(2, 0) Base Constructors: ------------------ "\"Cons\"_A" :: ["A"(0, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) "\"Cons\"_A" :: ["A"(0, 0) x "A"(1, 1)] -(0)-> "A"(0, 1) "\"Nil\"_A" :: [] -(0)-> "A"(1, 0) "\"Nil\"_A" :: [] -(0)-> "A"(0, 1) "\"One\"_A" :: [] -(0)-> "A"(1, 0) "\"One\"_A" :: [] -(0)-> "A"(0, 1) "\"Zero\"_A" :: [] -(0)-> "A"(1, 0) "\"Zero\"_A" :: [] -(0)-> "A"(0, 1)