Resource Aware ML, Version 1.4.2, July 2018 Typechecking module ... Typecheck successful. Stack-based typecheck successful. Analyzing function append ... Trying degree: 1 == append : ['a list; 'a list] -> 'a list Non-zero annotations of the argument: 9.00 <-- ([::(*)], []) 3.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 3.00 + 9.00*M where M is the number of ::-nodes of the 1st component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.01 seconds #Constraints: 33 ==== Analyzing function partition ... Trying degree: 1 == partition : ['a -> bool; 'a list] -> 'a list * 'a list Non-zero annotations of the argument: 19.00 <-- (*, [::(*)]) 5.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 5.00 + 19.00*M where M is the number of ::-nodes of the 2nd component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 58 ==== Analyzing function quicksort ... Trying degree: 1, 2 == quicksort : ['a -> 'a -> bool; 'a list] -> 'a list Non-zero annotations of the argument: 28.00 <-- (*, [::(*); ::(*)]) 35.00 <-- (*, [::(*)]) 3.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 3.00 + 21.00*M + 14.00*M^2 where M is the number of ::-nodes of the 2nd component of the argument -- Mode: upper Metric: steps Degree: 2 Run time: 0.12 seconds #Constraints: 577 ==== Analyzing function abmap ... Trying degree: 1 == abmap : ['a -> 'b; 'c -> 'd; ('a * 'c) ablist] -> ('b * 'd) ablist Non-zero annotations of the argument: 12.00 <-- (*, *, [Acons(*)]) 12.00 <-- (*, *, [Bcons(*)]) 3.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 3.00 + 12.00*M + 12.00*N where M is the number of Bcons-nodes of the 3rd component of the argument N is the number of Acons-nodes of the 3rd component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 65 ==== Analyzing function asort ... Trying degree: 1, 2, 3 == asort : ['a -> 'a -> bool; ('a list * 'b) ablist] -> ('a list * 'b) ablist Non-zero annotations of the argument: 28.00 <-- (*, [Acons([::(*); ::(*)])]) 39.00 <-- (*, [Acons([::(*)])]) 15.00 <-- (*, [Acons([])]) 13.00 <-- (*, [Bcons(*)]) 11.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 11.00 + 25.00*K*N + 14.00*K^2*N + 13.00*L + 15.00*N where L is the number of Bcons-nodes of the 2nd component of the argument N is the number of Acons-nodes of the 2nd component of the argument K is the maximal number of ::-nodes in the Acons-nodes of the 2nd component of the argument -- Mode: upper Metric: steps Degree: 3 Run time: 0.99 seconds #Constraints: 5535 ==== Analyzing function asort' ... Trying degree: 1, 2, 3 == asort' : ['a -> 'a -> bool; ('a list * 'b) ablist] -> ('a list * 'c) ablist Non-zero annotations of the argument: 28.00 <-- (*, [Acons([::(*); ::(*)])]) 39.00 <-- (*, [Acons([::(*)])]) 15.00 <-- (*, [Acons([])]) 13.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 13.00 + 25.00*K*N + 14.00*K^2*N + 15.00*N where N is the number of Acons-nodes of the 2nd component of the argument K is the maximal number of ::-nodes in the Acons-nodes of the 2nd component of the argument -- Mode: upper Metric: steps Degree: 3 Run time: 1.04 seconds #Constraints: 5534 ==== Analyzing function btick ... Trying degree: 1 == btick : (int list * int) ablist -> (int list * int) ablist Non-zero annotations of the argument: 15.00 <-- [Acons([])] 17.00 <-- [Bcons(*)] 3.00 <-- [] Non-zero annotations of result: Simplified bound: 3.00 + 17.00*L + 15.00*N where L is the number of Bcons-nodes of the argument N is the number of Acons-nodes of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.04 seconds #Constraints: 79 ==== Analyzing function abfoldr ... Trying degree: 1 == abfoldr : [['a; 'b] -> 'b; ['c; 'b] -> 'b; 'b; ('a * 'c) ablist] -> 'b Non-zero annotations of the argument: 13.00 <-- (*, *, *, [Acons(*)]) 13.00 <-- (*, *, *, [Bcons(*)]) 3.00 <-- (*, *, *, []) Non-zero annotations of result: Simplified bound: 3.00 + 13.00*M + 13.00*N where M is the number of Bcons-nodes of the 4th component of the argument N is the number of Acons-nodes of the 4th component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.05 seconds #Constraints: 59 ==== Analyzing function cons_all ... Trying degree: 1, 2 == cons_all : (int * int) ablist -> ('a * int) ablist Non-zero annotations of the argument: 21.00 <-- [Acons(*); Bcons(*)] 26.00 <-- [Acons(*)] 17.00 <-- [Bcons(*)] 13.00 <-- [] Non-zero annotations of result: 21.00 <-- [Acons(*); Bcons(*)] Simplified bound: 13.00 + 17.00*M + 21.00*M*N + 26.00*N where M is the number of Bcons-nodes of the argument N is the number of Acons-nodes of the argument -- Mode: upper Metric: steps Degree: 2 Run time: 0.25 seconds #Constraints: 743 ==== Analyzing function e1 ... Trying degree: 1, 2, 3 == e1 : unit -> (int list * int) ablist Non-zero annotations of the argument: 294.00 <-- * Non-zero annotations of result: Simplified bound: 294.00 -- Mode: upper Metric: steps Degree: 3 Run time: 1.10 seconds #Constraints: 5645 ==== Analyzing function e2 ... Trying degree: 1, 2, 3 == e2 : unit -> (int list * 'a) ablist Non-zero annotations of the argument: 283.00 <-- * Non-zero annotations of result: Simplified bound: 283.00 -- Mode: upper Metric: steps Degree: 3 Run time: 1.10 seconds #Constraints: 5644 ==== Analyzing function e3 ... Trying degree: 1 == e3 : unit -> (int list * int) ablist Non-zero annotations of the argument: 74.00 <-- * Non-zero annotations of result: Simplified bound: 74.00 -- Mode: upper Metric: steps Degree: 1 Run time: 0.11 seconds #Constraints: 113 ====