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:
     21.00  <--  (*, [::(*)])
      5.00  <--  (*, [])

  Non-zero annotations of result:

  Simplified bound:
     5.00 + 21.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.01 seconds
  #Constraints:  60

====

Analyzing function quicksort ...

  Trying degree: 1, 2

== quicksort :

  ['a -> 'a -> bool; 'a list] -> 'a list

  Non-zero annotations of the argument:
     30.00  <--  (*, [::(*); ::(*)])
     35.00  <--  (*, [::(*)])
      3.00  <--  (*, [])

  Non-zero annotations of result:

  Simplified bound:
     3.00 + 20.00*M + 15.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.11 seconds
  #Constraints:  579

====