Resource Aware ML, Version 1.4.2, July 2018

Typechecking module ...
  Typecheck successful.
  Stack-based typecheck successful.

Analyzing function eval2 ...

  Trying degree: 1

== eval2 :

  [int; bool; int; bool; bool_expr] -> bool

  Non-zero annotations of the argument:
     14.00  <--  (*, *, *, *, [Not(*)])
     38.00  <--  (*, *, *, *, [And(*)])
     38.00  <--  (*, *, *, *, [Or(*)])
     17.00  <--  (*, *, *, *, [])

  Non-zero annotations of result:

  Simplified bound:
     17.00 + 38.00*K + 38.00*L + 14.00*M
   where
     L is the number of Or-nodes of the 5th component of the argument
     K is the number of And-nodes of the 5th component of the argument
     M is the number of Not-nodes of the 5th component of the argument

--
  Mode:          upper
  Metric:        steps
  Degree:        1
  Run time:      0.04 seconds
  #Constraints:  139

====

Analyzing function table2 ...

  Trying degree: 1

== table2 :

  [int; int; bool_expr] -> (bool * bool * bool) list

  Non-zero annotations of the argument:
     56.00  <--  (*, *, [Not(*)])
    152.00  <--  (*, *, [And(*)])
    152.00  <--  (*, *, [Or(*)])
    117.00  <--  (*, *, [])

  Non-zero annotations of result:

  Simplified bound:
     117.00 + 152.00*K + 152.00*L + 56.00*M
   where
     L is the number of Or-nodes of the 3rd component of the argument
     K is the number of And-nodes of the 3rd component of the argument
     M is the number of Not-nodes of the 3rd component of the argument

--
  Mode:          upper
  Metric:        steps
  Degree:        1
  Run time:      0.12 seconds
  #Constraints:  626

====