Resource Aware ML, Version 1.4.2, July 2018 Typechecking module ... Typecheck successful. Stack-based typecheck successful. Analyzing function max ... Trying degree: 1 == max : [int; int] -> int Non-zero annotations of the argument: 2.00 <-- ([S(*)], []) 8.00 <-- ([], [S(*)]) 3.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 3.00 + 2.00*M + 8.00*X where X is the number of S-nodes of the 2nd component of the argument M is the number of S-nodes of the 1st component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 73 ==== Analyzing function plus ... Trying degree: 1 == plus : [int; int] -> int Non-zero annotations of the argument: 8.00 <-- ([S(*)], []) 3.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 3.00 + 8.00*M where M is the number of S-nodes of the 1st component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.01 seconds #Constraints: 47 ==== Analyzing function minus ... Trying degree: 1 == minus : [int; int] -> int Non-zero annotations of the argument: 2.00 <-- ([S(*)], []) 6.00 <-- ([], [S(*)]) 3.00 <-- ([], []) Non-zero annotations of result: Simplified bound: 3.00 + 2.00*M + 6.00*X where X is the number of S-nodes of the 2nd component of the argument M is the number of S-nodes of the 1st component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 66 ==== Analyzing function foldl ... Trying degree: 1 == foldl : [['a; 'b] -> 'a; 'a; 'b list] -> 'a Non-zero annotations of the argument: 10.00 <-- (*, *, [Cons(*)]) 3.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 3.00 + 10.00*M where M is the number of Cons-nodes of the 3rd component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.01 seconds #Constraints: 29 ==== Analyzing function maxlist ... Trying degree: 1, 2 == maxlist : int list -> int Non-zero annotations of the argument: 10.00 <-- [Cons([S(*)])] 17.00 <-- [Cons([])] 3.00 <-- [] Non-zero annotations of result: Simplified bound: 3.00 + 10.00*L*M + 17.00*M where M is the number of Cons-nodes of the argument L is the maximal number of S-nodes in the Cons-nodes of the argument -- Mode: upper Metric: steps Degree: 2 Run time: 0.09 seconds #Constraints: 543 ==== Analyzing function scanr ... Trying degree: 1 == scanr : [['a; 'b] -> 'b; 'b; 'a list] -> 'b list Non-zero annotations of the argument: 20.00 <-- (*, *, [Cons(*)]) 6.00 <-- (*, *, []) Non-zero annotations of result: Simplified bound: 6.00 + 20.00*M where M is the number of Cons-nodes of the 3rd component of the argument -- Mode: upper Metric: steps Degree: 1 Run time: 0.02 seconds #Constraints: 54 ==== Analyzing function mms ... Trying degree: 1, 2, 3 A bound for mms could not be derived. The linear program is infeasible. -- Mode: upper Metric: steps Degree: 3 Run time: 2.54 seconds #Constraints: 17424 ====