Resource Aware ML, Version 1.4.2, July 2018 Typechecking module ... Typecheck successful. Stack-based typecheck successful. Analyzing function db_query ... Trying degree: 1 == db_query : ['a; 'b] -> float option Non-zero annotations of the argument: 4.00 <-- (*, *) Non-zero annotations of result: Simplified bound: 4.00 -- Mode: lower Metric: steps Degree: 1 Run time: 0.00 seconds #Constraints: 11 ==== 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: lower Metric: steps Degree: 1 Run time: 0.01 seconds #Constraints: 41 ==== Analyzing function partition ... Trying degree: 1 == partition : [['a; 'b] -> bool * 'b; 'a list * 'a list * 'b; 'a list] -> 'a list * 'a list * 'b Non-zero annotations of the argument: 24.00 <-- (*, ([], [], *), [::(*)]) 3.00 <-- (*, ([], [], *), []) Non-zero annotations of result: Simplified bound: 3.00 + 24.00*Y where Y is the number of ::-nodes of the 3rd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 94 ==== Analyzing function quicksort ... Trying degree: 1 == quicksort : ['a -> ['a; 'b] -> bool * 'b; 'b; 'a list] -> 'a list * 'b Non-zero annotations of the argument: 51.00 <-- (*, *, [::(*)]) 5.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 5.00 + 51.00*M where M is the number of ::-nodes of the 3rd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.04 seconds #Constraints: 202 ==== Analyzing function foldl ... Trying degree: 1 == foldl : [['a; 'b] -> 'a; 'a; 'b list] -> 'a Non-zero annotations of the argument: 10.00 <-- (*, *, [::(*)]) 3.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 3.00 + 10.00*M where M is the number of ::-nodes of the 3rd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 36 ==== Analyzing function average_grade ... Trying degree: 1 == average_grade : [int; int list] -> float Non-zero annotations of the argument: 36.00 <-- (*, [::(*)]) 20.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 20.00 + 36.00*M where M is the number of ::-nodes of the 2nd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.03 seconds #Constraints: 104 ==== Analyzing function greater_eq ... Trying degree: 1 == greater_eq : [int; int; int list] -> bool * int list Non-zero annotations of the argument: 72.00 <-- (*, *, [::(*)]) 53.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 53.00 + 72.00*M where M is the number of ::-nodes of the 3rd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.05 seconds #Constraints: 229 ==== Analyzing function sort_students ... Trying degree: 1 == sort_students : [int list; int list] -> int list Non-zero annotations of the argument: 52.00 <-- ([::(*)], []) 14.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 14.00 + 52.00*M where M is the number of ::-nodes of the 1st component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.11 seconds #Constraints: 454 ==== Analyzing function map ... Trying degree: 1 == map : ['a -> 'b; 'a list] -> 'b list Non-zero annotations of the argument: 11.00 <-- (*, [::(*)]) 3.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 3.00 + 11.00*M where M is the number of ::-nodes of the 2nd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.08 seconds #Constraints: 41 ==== Analyzing function make_table ... Trying degree: 1 == make_table : [int list; int list] -> (int * (int * float) list) list Non-zero annotations of the argument: 21.00 <-- ([::(*)], []) 9.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 9.00 + 21.00*M where M is the number of ::-nodes of the 1st component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.11 seconds #Constraints: 131 ==== Analyzing function find ... Trying degree: 1 == find : ['a -> bool; ('a * 'b) list] -> 'b Non-zero annotations of the argument: 2.00 <-- (*, []) Non-zero annotations of result: Simplified bound: 2.00 -- Mode: lower Metric: steps Degree: 1 Run time: 0.11 seconds #Constraints: 45 ==== Analyzing function lookup ... Trying degree: 1 == lookup : [int; int; (int * (int * 'a) list) list] -> 'a Non-zero annotations of the argument: 13.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 13.00 -- Mode: lower Metric: steps Degree: 1 Run time: 0.11 seconds #Constraints: 117 ==== Analyzing function average_grade' ... Trying degree: 1 == average_grade' : [int; int list; (int * (int * float) list) list] -> float * (int * (int * float) list) list Non-zero annotations of the argument: 43.00 <-- (*, [::(*)], []) 23.00 <-- (*, [], []) Non-zero annotations of result: Simplified bound: 23.00 + 43.00*M where M is the number of ::-nodes of the 2nd component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.16 seconds #Constraints: 210 ==== Analyzing function greater_eq' ... Trying degree: 1 == greater_eq' : [int list; int; int; (int * (int * float) list) list] -> bool * (int * (int * float) list) list Non-zero annotations of the argument: 86.00 <-- ([::(*)], *, *, []) 69.00 <-- ([], *, *, []) Non-zero annotations of result: Simplified bound: 69.00 + 86.00*M where M is the number of ::-nodes of the 1st component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.27 seconds #Constraints: 447 ==== Analyzing function sort_students_efficient ... Trying degree: 1 == sort_students_efficient : [int list; int list] -> int list Non-zero annotations of the argument: 73.00 <-- ([::(*)], []) 29.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 29.00 + 73.00*M where M is the number of ::-nodes of the 1st component of the argument -- Mode: lower Metric: steps Degree: 1 Run time: 0.49 seconds #Constraints: 819 ====