type list 'a
type bool
type bit
type nat
type set 'a
type vector 'b ''a
type string
type unit
type char
type numeral


module Num = struct
  type natural
  type int
  class Numeral
  type Numeral_class 'a = {
      val fromNumeral_method : forall 'a. 
                                 (Num.Numeral_class 'a) -> numeral -> 'a

  }
  class NumNegate
  type NumNegate_class 'a = {
      val numNegate_method : forall 'a. (Num.NumNegate_class 'a) -> 'a -> 'a

  }
  class NumAbs
  type NumAbs_class 'a = {
      val abs_method : forall 'a. (Num.NumAbs_class 'a) -> 'a -> 'a

  }
  class NumAdd
  type NumAdd_class 'a = {
      val numAdd_method : forall 'a. (Num.NumAdd_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMinus
  type NumMinus_class 'a = {
      val numMinus_method : forall 'a. 
                              (Num.NumMinus_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMult
  type NumMult_class 'a = {
      val numMult_method : forall 'a. 
                             (Num.NumMult_class 'a) -> 'a -> 'a -> 'a

  }
  class NumPow
  type NumPow_class 'a = {
      val numPow_method : forall 'a. (Num.NumPow_class 'a) -> 'a -> nat -> 'a

  }
  class NumDivision
  type NumDivision_class 'a = {
      val numDivision_method : forall 'a. 
                                 (Num.NumDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumIntegerDivision
  type NumIntegerDivision_class 'a = {
      val div_method : forall 'a. 
                         (Num.NumIntegerDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumRemainder
  type NumRemainder_class 'a = {
      val mod_method : forall 'a. 
                         (Num.NumRemainder_class 'a) -> 'a -> 'a -> 'a

  }
  class NumSucc
  type NumSucc_class 'a = {
      val succ_method : forall 'a. (Num.NumSucc_class 'a) -> 'a -> 'a

  }
  class NumPred
  type NumPred_class 'a = {
      val pred_method : forall 'a. (Num.NumPred_class 'a) -> 'a -> 'a

  }
  type integer
  type int32
  type int64
  type rational
  type real
  type float64
  type float32

  val ~ : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val fromNumeral : forall 'a. (Num.Numeral 'a) => numeral -> 'a
  val numNegate : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val abs : forall 'a. (Num.NumAbs 'a) => 'a -> 'a
  val + : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val numAdd : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val - : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val numMinus : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val * : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val numMult : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val ** : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val numPow : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val / : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val numDivision : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val div : forall 'a. (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val numIntegerDivision : forall 'a. 
                             (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val mod : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val numRemainder : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val succ : forall 'a. (Num.NumSucc 'a) => 'a -> 'a
  val pred : forall 'a. (Num.NumPred 'a) => 'a -> 'a
  val natFromNumeral : numeral -> nat
  val instance_Num_Numeral_nat_dict : Num.Numeral_class nat
  val natEq : nat -> nat -> bool
  val instance_Basic_classes_Eq_nat_dict : Basic_classes.Eq_class nat
  val natLess : nat -> nat -> bool
  val natLessEqual : nat -> nat -> bool
  val natGreater : nat -> nat -> bool
  val natGreaterEqual : nat -> nat -> bool
  val natCompare : nat -> nat -> Basic_classes.ordering
  val instance_Basic_classes_Ord_nat_dict : Basic_classes.Ord_class nat
  val instance_Basic_classes_SetType_nat_dict : 
                                                  Basic_classes.SetType_class 
                                                  nat
  val natAdd : nat -> nat -> nat
  val instance_Num_NumAdd_nat_dict : Num.NumAdd_class nat
  val natMinus : nat -> nat -> nat
  val instance_Num_NumMinus_nat_dict : Num.NumMinus_class nat
  val natSucc : nat -> nat
  val instance_Num_NumSucc_nat_dict : Num.NumSucc_class nat
  val natPred : nat -> nat
  val instance_Num_NumPred_nat_dict : Num.NumPred_class nat
  val natMult : nat -> nat -> nat
  val instance_Num_NumMult_nat_dict : Num.NumMult_class nat
  val natDiv : nat -> nat -> nat
  val instance_Num_NumIntegerDivision_nat_dict : 
                                                   Num.NumIntegerDivision_class 
                                                   nat
  val instance_Num_NumDivision_nat_dict : Num.NumDivision_class nat
  val natMod : nat -> nat -> nat
  val instance_Num_NumRemainder_nat_dict : Num.NumRemainder_class nat
  val gen_pow_aux : forall 'a. ('a -> 'a -> 'a) -> 'a -> 'a -> nat -> 'a
  val gen_pow : forall 'a. 'a -> ('a -> 'a -> 'a) -> 'a -> nat -> 'a
  val natPow : nat -> nat -> nat
  val instance_Num_NumPow_nat_dict : Num.NumPow_class nat
  val natMin : nat -> nat -> nat
  val natMax : nat -> nat -> nat
  val instance_Basic_classes_OrdMaxMin_nat_dict : 
                                                    Basic_classes.OrdMaxMin_class 
                                                    nat
  val naturalFromNumeral : numeral -> Num.natural
  val instance_Num_Numeral_Num_natural_dict : Num.Numeral_class Num.natural
  val naturalEq : Num.natural -> Num.natural -> bool
  val instance_Basic_classes_Eq_Num_natural_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.natural
  val naturalLess : Num.natural -> Num.natural -> bool
  val naturalLessEqual : Num.natural -> Num.natural -> bool
  val naturalGreater : Num.natural -> Num.natural -> bool
  val naturalGreaterEqual : Num.natural -> Num.natural -> bool
  val naturalCompare : Num.natural -> Num.natural -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_natural_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.natural
  val instance_Basic_classes_SetType_Num_natural_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.natural
  val naturalAdd : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumAdd_Num_natural_dict : Num.NumAdd_class Num.natural
  val naturalMinus : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMinus_Num_natural_dict : Num.NumMinus_class Num.natural
  val naturalSucc : Num.natural -> Num.natural
  val instance_Num_NumSucc_Num_natural_dict : Num.NumSucc_class Num.natural
  val naturalPred : Num.natural -> Num.natural
  val instance_Num_NumPred_Num_natural_dict : Num.NumPred_class Num.natural
  val naturalMult : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMult_Num_natural_dict : Num.NumMult_class Num.natural
  val naturalPow : Num.natural -> nat -> Num.natural
  val instance_Num_NumPow_Num_natural_dict : Num.NumPow_class Num.natural
  val naturalDiv : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumIntegerDivision_Num_natural_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.natural
  val instance_Num_NumDivision_Num_natural_dict : 
                                                    Num.NumDivision_class 
                                                    Num.natural
  val naturalMod : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumRemainder_Num_natural_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.natural
  val naturalMin : Num.natural -> Num.natural -> Num.natural
  val naturalMax : Num.natural -> Num.natural -> Num.natural
  val instance_Basic_classes_OrdMaxMin_Num_natural_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.natural
  val intFromNumeral : numeral -> Num.int
  val instance_Num_Numeral_Num_int_dict : Num.Numeral_class Num.int
  val intEq : Num.int -> Num.int -> bool
  val instance_Basic_classes_Eq_Num_int_dict : Basic_classes.Eq_class Num.int
  val intLess : Num.int -> Num.int -> bool
  val intLessEqual : Num.int -> Num.int -> bool
  val intGreater : Num.int -> Num.int -> bool
  val intGreaterEqual : Num.int -> Num.int -> bool
  val intCompare : Num.int -> Num.int -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int_dict : 
                                                  Basic_classes.Ord_class 
                                                  Num.int
  val instance_Basic_classes_SetType_Num_int_dict : 
                                                      Basic_classes.SetType_class 
                                                      Num.int
  val intNegate : Num.int -> Num.int
  val instance_Num_NumNegate_Num_int_dict : Num.NumNegate_class Num.int
  val intAbs : Num.int -> Num.int
  val instance_Num_NumAbs_Num_int_dict : Num.NumAbs_class Num.int
  val intAdd : Num.int -> Num.int -> Num.int
  val instance_Num_NumAdd_Num_int_dict : Num.NumAdd_class Num.int
  val intMinus : Num.int -> Num.int -> Num.int
  val instance_Num_NumMinus_Num_int_dict : Num.NumMinus_class Num.int
  val intSucc : Num.int -> Num.int
  val instance_Num_NumSucc_Num_int_dict : Num.NumSucc_class Num.int
  val intPred : Num.int -> Num.int
  val instance_Num_NumPred_Num_int_dict : Num.NumPred_class Num.int
  val intMult : Num.int -> Num.int -> Num.int
  val instance_Num_NumMult_Num_int_dict : Num.NumMult_class Num.int
  val intPow : Num.int -> nat -> Num.int
  val instance_Num_NumPow_Num_int_dict : Num.NumPow_class Num.int
  val intDiv : Num.int -> Num.int -> Num.int
  val instance_Num_NumIntegerDivision_Num_int_dict : 
                                                       Num.NumIntegerDivision_class 
                                                       Num.int
  val instance_Num_NumDivision_Num_int_dict : Num.NumDivision_class Num.int
  val intMod : Num.int -> Num.int -> Num.int
  val instance_Num_NumRemainder_Num_int_dict : Num.NumRemainder_class Num.int
  val intMin : Num.int -> Num.int -> Num.int
  val intMax : Num.int -> Num.int -> Num.int
  val instance_Basic_classes_OrdMaxMin_Num_int_dict : 
                                                        Basic_classes.OrdMaxMin_class 
                                                        Num.int
  val int32FromNumeral : numeral -> Num.int32
  val instance_Num_Numeral_Num_int32_dict : Num.Numeral_class Num.int32
  val int32Eq : Num.int32 -> Num.int32 -> bool
  val instance_Basic_classes_Eq_Num_int32_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int32
  val int32Less : Num.int32 -> Num.int32 -> bool
  val int32LessEqual : Num.int32 -> Num.int32 -> bool
  val int32Greater : Num.int32 -> Num.int32 -> bool
  val int32GreaterEqual : Num.int32 -> Num.int32 -> bool
  val int32Compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int32_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int32
  val instance_Basic_classes_SetType_Num_int32_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int32
  val int32Negate : Num.int32 -> Num.int32
  val instance_Num_NumNegate_Num_int32_dict : Num.NumNegate_class Num.int32
  val int32Abs : Num.int32 -> Num.int32
  val instance_Num_NumAbs_Num_int32_dict : Num.NumAbs_class Num.int32
  val int32Add : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumAdd_Num_int32_dict : Num.NumAdd_class Num.int32
  val int32Minus : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMinus_Num_int32_dict : Num.NumMinus_class Num.int32
  val int32Succ : Num.int32 -> Num.int32
  val instance_Num_NumSucc_Num_int32_dict : Num.NumSucc_class Num.int32
  val int32Pred : Num.int32 -> Num.int32
  val instance_Num_NumPred_Num_int32_dict : Num.NumPred_class Num.int32
  val int32Mult : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMult_Num_int32_dict : Num.NumMult_class Num.int32
  val int32Pow : Num.int32 -> nat -> Num.int32
  val instance_Num_NumPow_Num_int32_dict : Num.NumPow_class Num.int32
  val int32Div : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumIntegerDivision_Num_int32_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int32
  val instance_Num_NumDivision_Num_int32_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int32
  val int32Mod : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumRemainder_Num_int32_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int32
  val int32Min : Num.int32 -> Num.int32 -> Num.int32
  val int32Max : Num.int32 -> Num.int32 -> Num.int32
  val instance_Basic_classes_OrdMaxMin_Num_int32_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int32
  val int64FromNumeral : numeral -> Num.int64
  val instance_Num_Numeral_Num_int64_dict : Num.Numeral_class Num.int64
  val int64Eq : Num.int64 -> Num.int64 -> bool
  val instance_Basic_classes_Eq_Num_int64_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int64
  val int64Less : Num.int64 -> Num.int64 -> bool
  val int64LessEqual : Num.int64 -> Num.int64 -> bool
  val int64Greater : Num.int64 -> Num.int64 -> bool
  val int64GreaterEqual : Num.int64 -> Num.int64 -> bool
  val int64Compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int64_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int64
  val instance_Basic_classes_SetType_Num_int64_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int64
  val int64Negate : Num.int64 -> Num.int64
  val instance_Num_NumNegate_Num_int64_dict : Num.NumNegate_class Num.int64
  val int64Abs : Num.int64 -> Num.int64
  val instance_Num_NumAbs_Num_int64_dict : Num.NumAbs_class Num.int64
  val int64Add : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumAdd_Num_int64_dict : Num.NumAdd_class Num.int64
  val int64Minus : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMinus_Num_int64_dict : Num.NumMinus_class Num.int64
  val int64Succ : Num.int64 -> Num.int64
  val instance_Num_NumSucc_Num_int64_dict : Num.NumSucc_class Num.int64
  val int64Pred : Num.int64 -> Num.int64
  val instance_Num_NumPred_Num_int64_dict : Num.NumPred_class Num.int64
  val int64Mult : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMult_Num_int64_dict : Num.NumMult_class Num.int64
  val int64Pow : Num.int64 -> nat -> Num.int64
  val instance_Num_NumPow_Num_int64_dict : Num.NumPow_class Num.int64
  val int64Div : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumIntegerDivision_Num_int64_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int64
  val instance_Num_NumDivision_Num_int64_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int64
  val int64Mod : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumRemainder_Num_int64_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int64
  val int64Min : Num.int64 -> Num.int64 -> Num.int64
  val int64Max : Num.int64 -> Num.int64 -> Num.int64
  val instance_Basic_classes_OrdMaxMin_Num_int64_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int64
  val integerFromNumeral : numeral -> Num.integer
  val instance_Num_Numeral_Num_integer_dict : Num.Numeral_class Num.integer
  val integerFromNat : nat -> Num.integer
  val integerEq : Num.integer -> Num.integer -> bool
  val instance_Basic_classes_Eq_Num_integer_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.integer
  val integerLess : Num.integer -> Num.integer -> bool
  val integerLessEqual : Num.integer -> Num.integer -> bool
  val integerGreater : Num.integer -> Num.integer -> bool
  val integerGreaterEqual : Num.integer -> Num.integer -> bool
  val integerCompare : Num.integer -> Num.integer -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_integer_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.integer
  val instance_Basic_classes_SetType_Num_integer_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.integer
  val integerNegate : Num.integer -> Num.integer
  val instance_Num_NumNegate_Num_integer_dict : 
                                                  Num.NumNegate_class 
                                                  Num.integer
  val integerAbs : Num.integer -> Num.integer
  val instance_Num_NumAbs_Num_integer_dict : Num.NumAbs_class Num.integer
  val integerAdd : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumAdd_Num_integer_dict : Num.NumAdd_class Num.integer
  val integerMinus : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMinus_Num_integer_dict : Num.NumMinus_class Num.integer
  val integerSucc : Num.integer -> Num.integer
  val instance_Num_NumSucc_Num_integer_dict : Num.NumSucc_class Num.integer
  val integerPred : Num.integer -> Num.integer
  val instance_Num_NumPred_Num_integer_dict : Num.NumPred_class Num.integer
  val integerMult : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMult_Num_integer_dict : Num.NumMult_class Num.integer
  val integerPow : Num.integer -> nat -> Num.integer
  val instance_Num_NumPow_Num_integer_dict : Num.NumPow_class Num.integer
  val integerDiv : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumIntegerDivision_Num_integer_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.integer
  val instance_Num_NumDivision_Num_integer_dict : 
                                                    Num.NumDivision_class 
                                                    Num.integer
  val integerMod : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumRemainder_Num_integer_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.integer
  val integerMin : Num.integer -> Num.integer -> Num.integer
  val integerMax : Num.integer -> Num.integer -> Num.integer
  val instance_Basic_classes_OrdMaxMin_Num_integer_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.integer
  val rationalFromNumeral : numeral -> Num.rational
  val instance_Num_Numeral_Num_rational_dict : Num.Numeral_class Num.rational
  val rationalFromInt : Num.int -> Num.rational
  val rationalFromInteger : Num.integer -> Num.rational
  val rationalEq : Num.rational -> Num.rational -> bool
  val instance_Basic_classes_Eq_Num_rational_dict : 
                                                      Basic_classes.Eq_class 
                                                      Num.rational
  val rationalLess : Num.rational -> Num.rational -> bool
  val rationalLessEqual : Num.rational -> Num.rational -> bool
  val rationalGreater : Num.rational -> Num.rational -> bool
  val rationalGreaterEqual : Num.rational -> Num.rational -> bool
  val rationalCompare : 
                          Num.rational -> Num.rational -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_rational_dict : 
                                                       Basic_classes.Ord_class 
                                                       Num.rational
  val instance_Basic_classes_SetType_Num_rational_dict : 
                                                           Basic_classes.SetType_class 
                                                           Num.rational
  val rationalAdd : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumAdd_Num_rational_dict : Num.NumAdd_class Num.rational
  val rationalMinus : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMinus_Num_rational_dict : 
                                                  Num.NumMinus_class 
                                                  Num.rational
  val rationalNegate : Num.rational -> Num.rational
  val instance_Num_NumNegate_Num_rational_dict : 
                                                   Num.NumNegate_class 
                                                   Num.rational
  val rationalAbs : Num.rational -> Num.rational
  val instance_Num_NumAbs_Num_rational_dict : Num.NumAbs_class Num.rational
  val rationalSucc : Num.rational -> Num.rational
  val instance_Num_NumSucc_Num_rational_dict : Num.NumSucc_class Num.rational
  val rationalPred : Num.rational -> Num.rational
  val instance_Num_NumPred_Num_rational_dict : Num.NumPred_class Num.rational
  val rationalMult : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMult_Num_rational_dict : Num.NumMult_class Num.rational
  val rationalDiv : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumDivision_Num_rational_dict : 
                                                     Num.NumDivision_class 
                                                     Num.rational
  val rationalFromFrac : Num.int -> Num.int -> Num.rational
  val rationalNumerator : Num.rational -> Num.integer
  val rationalDenominator : Num.rational -> Num.integer
  val rationalPowInteger : Num.rational -> Num.integer -> Num.rational
  val rationalPowNat : Num.rational -> nat -> Num.rational
  val instance_Num_NumPow_Num_rational_dict : Num.NumPow_class Num.rational
  val rationalMin : Num.rational -> Num.rational -> Num.rational
  val rationalMax : Num.rational -> Num.rational -> Num.rational
  val instance_Basic_classes_OrdMaxMin_Num_rational_dict : 
                                                             Basic_classes.OrdMaxMin_class 
                                                             Num.rational
  val realFromNumeral : numeral -> Num.real
  val instance_Num_Numeral_Num_real_dict : Num.Numeral_class Num.real
  val realFromInteger : Num.integer -> Num.real
  val realEq : Num.real -> Num.real -> bool
  val instance_Basic_classes_Eq_Num_real_dict : 
                                                  Basic_classes.Eq_class 
                                                  Num.real
  val realLess : Num.real -> Num.real -> bool
  val realLessEqual : Num.real -> Num.real -> bool
  val realGreater : Num.real -> Num.real -> bool
  val realGreaterEqual : Num.real -> Num.real -> bool
  val realCompare : Num.real -> Num.real -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_real_dict : 
                                                   Basic_classes.Ord_class 
                                                   Num.real
  val instance_Basic_classes_SetType_Num_real_dict : 
                                                       Basic_classes.SetType_class 
                                                       Num.real
  val realAdd : Num.real -> Num.real -> Num.real
  val instance_Num_NumAdd_Num_real_dict : Num.NumAdd_class Num.real
  val realMinus : Num.real -> Num.real -> Num.real
  val instance_Num_NumMinus_Num_real_dict : Num.NumMinus_class Num.real
  val realNegate : Num.real -> Num.real
  val instance_Num_NumNegate_Num_real_dict : Num.NumNegate_class Num.real
  val realAbs : Num.real -> Num.real
  val instance_Num_NumAbs_Num_real_dict : Num.NumAbs_class Num.real
  val realSucc : Num.real -> Num.real
  val instance_Num_NumSucc_Num_real_dict : Num.NumSucc_class Num.real
  val realPred : Num.real -> Num.real
  val instance_Num_NumPred_Num_real_dict : Num.NumPred_class Num.real
  val realMult : Num.real -> Num.real -> Num.real
  val instance_Num_NumMult_Num_real_dict : Num.NumMult_class Num.real
  val realDiv : Num.real -> Num.real -> Num.real
  val instance_Num_NumDivision_Num_real_dict : Num.NumDivision_class Num.real
  val realFromFrac : Num.integer -> Num.integer -> Num.real
  val realPowInteger : Num.real -> Num.integer -> Num.real
  val realPowNat : Num.real -> nat -> Num.real
  val instance_Num_NumPow_Num_real_dict : Num.NumPow_class Num.real
  val realSqrt : Num.real -> Num.real
  val realMin : Num.real -> Num.real -> Num.real
  val realMax : Num.real -> Num.real -> Num.real
  val instance_Basic_classes_OrdMaxMin_Num_real_dict : 
                                                         Basic_classes.OrdMaxMin_class 
                                                         Num.real
  val realCeiling : Num.real -> Num.integer
  val realFloor : Num.real -> Num.integer
  val integerSqrt : Num.integer -> Num.integer
  val integerFromInt : Num.int -> Num.integer
  val integerFromNatural : Num.natural -> Num.integer
  val integerFromInt32 : Num.int32 -> Num.integer
  val integerFromInt64 : Num.int64 -> Num.integer
  val naturalFromNat : nat -> Num.natural
  val naturalFromInteger : Num.integer -> Num.natural
  val intFromInteger : Num.integer -> Num.int
  val intFromNat : nat -> Num.int
  val natFromNatural : Num.natural -> nat
  val natFromInt : Num.int -> nat
  val int32FromNat : nat -> Num.int32
  val int32FromNatural : Num.natural -> Num.int32
  val int32FromInteger : Num.integer -> Num.int32
  val int32FromInt : Num.int -> Num.int32
  val int32FromInt64 : Num.int64 -> Num.int32
  val int64FromNat : nat -> Num.int64
  val int64FromNatural : Num.natural -> Num.int64
  val int64FromInteger : Num.integer -> Num.int64
  val int64FromInt : Num.int -> Num.int64
  val int64FromInt32 : Num.int32 -> Num.int64
  val naturalFromInt : Num.int -> Num.natural
  val naturalFromInt32 : Num.int32 -> Num.natural
  val naturalFromInt64 : Num.int64 -> Num.natural
  val intFromNatural : Num.natural -> Num.int
  val intFromInt32 : Num.int32 -> Num.int
  val intFromInt64 : Num.int64 -> Num.int
  val natFromInteger : Num.integer -> nat
  val natFromInt32 : Num.int32 -> nat
  val natFromInt64 : Num.int64 -> nat

  module Instance_Num_Numeral_nat = struct

    val fromNumeral : numeral -> nat

  end

  module Instance_Basic_classes_Eq_nat = struct

    val = : nat -> nat -> bool
    val <> : nat -> nat -> bool

  end

  module Instance_Basic_classes_Ord_nat = struct

    val compare : nat -> nat -> Basic_classes.ordering
    val < : nat -> nat -> bool
    val <= : nat -> nat -> bool
    val > : nat -> nat -> bool
    val >= : nat -> nat -> bool

  end

  module Instance_Basic_classes_SetType_nat = struct

    val setElemCompare : nat -> nat -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_nat = struct

    val + : nat -> nat -> nat

  end

  module Instance_Num_NumMinus_nat = struct

    val - : nat -> nat -> nat

  end

  module Instance_Num_NumSucc_nat = struct

    val succ : nat -> nat

  end

  module Instance_Num_NumPred_nat = struct

    val pred : nat -> nat

  end

  module Instance_Num_NumMult_nat = struct

    val * : nat -> nat -> nat

  end

  module Instance_Num_NumIntegerDivision_nat = struct

    val div : nat -> nat -> nat

  end

  module Instance_Num_NumDivision_nat = struct

    val / : nat -> nat -> nat

  end

  module Instance_Num_NumRemainder_nat = struct

    val mod : nat -> nat -> nat

  end

  module Instance_Num_NumPow_nat = struct

    val ** : nat -> nat -> nat

  end

  module Instance_Basic_classes_OrdMaxMin_nat = struct

    val max : nat -> nat -> nat
    val min : nat -> nat -> nat

  end

  module Instance_Num_Numeral_Num_natural = struct

    val fromNumeral : numeral -> Num.natural

  end

  module Instance_Basic_classes_Eq_Num_natural = struct

    val = : Num.natural -> Num.natural -> bool
    val <> : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_Ord_Num_natural = struct

    val compare : Num.natural -> Num.natural -> Basic_classes.ordering
    val < : Num.natural -> Num.natural -> bool
    val <= : Num.natural -> Num.natural -> bool
    val > : Num.natural -> Num.natural -> bool
    val >= : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_SetType_Num_natural = struct

    val setElemCompare : Num.natural -> Num.natural -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_natural = struct

    val + : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumMinus_Num_natural = struct

    val - : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumSucc_Num_natural = struct

    val succ : Num.natural -> Num.natural

  end

  module Instance_Num_NumPred_Num_natural = struct

    val pred : Num.natural -> Num.natural

  end

  module Instance_Num_NumMult_Num_natural = struct

    val * : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumPow_Num_natural = struct

    val ** : Num.natural -> nat -> Num.natural

  end

  module Instance_Num_NumIntegerDivision_Num_natural = struct

    val div : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumDivision_Num_natural = struct

    val / : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumRemainder_Num_natural = struct

    val mod : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Basic_classes_OrdMaxMin_Num_natural = struct

    val max : Num.natural -> Num.natural -> Num.natural
    val min : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_Numeral_Num_int = struct

    val fromNumeral : numeral -> Num.int

  end

  module Instance_Basic_classes_Eq_Num_int = struct

    val = : Num.int -> Num.int -> bool
    val <> : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_Ord_Num_int = struct

    val compare : Num.int -> Num.int -> Basic_classes.ordering
    val < : Num.int -> Num.int -> bool
    val <= : Num.int -> Num.int -> bool
    val > : Num.int -> Num.int -> bool
    val >= : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_SetType_Num_int = struct

    val setElemCompare : Num.int -> Num.int -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int = struct

    val ~ : Num.int -> Num.int

  end

  module Instance_Num_NumAbs_Num_int = struct

    val abs : Num.int -> Num.int

  end

  module Instance_Num_NumAdd_Num_int = struct

    val + : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumMinus_Num_int = struct

    val - : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumSucc_Num_int = struct

    val succ : Num.int -> Num.int

  end

  module Instance_Num_NumPred_Num_int = struct

    val pred : Num.int -> Num.int

  end

  module Instance_Num_NumMult_Num_int = struct

    val * : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumPow_Num_int = struct

    val ** : Num.int -> nat -> Num.int

  end

  module Instance_Num_NumIntegerDivision_Num_int = struct

    val div : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumDivision_Num_int = struct

    val / : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumRemainder_Num_int = struct

    val mod : Num.int -> Num.int -> Num.int

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int = struct

    val max : Num.int -> Num.int -> Num.int
    val min : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_Numeral_Num_int32 = struct

    val fromNumeral : numeral -> Num.int32

  end

  module Instance_Basic_classes_Eq_Num_int32 = struct

    val = : Num.int32 -> Num.int32 -> bool
    val <> : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int32 = struct

    val compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
    val < : Num.int32 -> Num.int32 -> bool
    val <= : Num.int32 -> Num.int32 -> bool
    val > : Num.int32 -> Num.int32 -> bool
    val >= : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int32 = struct

    val setElemCompare : Num.int32 -> Num.int32 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int32 = struct

    val ~ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAbs_Num_int32 = struct

    val abs : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAdd_Num_int32 = struct

    val + : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumMinus_Num_int32 = struct

    val - : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumSucc_Num_int32 = struct

    val succ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumPred_Num_int32 = struct

    val pred : Num.int32 -> Num.int32

  end

  module Instance_Num_NumMult_Num_int32 = struct

    val * : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumPow_Num_int32 = struct

    val ** : Num.int32 -> nat -> Num.int32

  end

  module Instance_Num_NumIntegerDivision_Num_int32 = struct

    val div : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumDivision_Num_int32 = struct

    val / : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumRemainder_Num_int32 = struct

    val mod : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int32 = struct

    val max : Num.int32 -> Num.int32 -> Num.int32
    val min : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_Numeral_Num_int64 = struct

    val fromNumeral : numeral -> Num.int64

  end

  module Instance_Basic_classes_Eq_Num_int64 = struct

    val = : Num.int64 -> Num.int64 -> bool
    val <> : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int64 = struct

    val compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
    val < : Num.int64 -> Num.int64 -> bool
    val <= : Num.int64 -> Num.int64 -> bool
    val > : Num.int64 -> Num.int64 -> bool
    val >= : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int64 = struct

    val setElemCompare : Num.int64 -> Num.int64 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int64 = struct

    val ~ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAbs_Num_int64 = struct

    val abs : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAdd_Num_int64 = struct

    val + : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumMinus_Num_int64 = struct

    val - : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumSucc_Num_int64 = struct

    val succ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumPred_Num_int64 = struct

    val pred : Num.int64 -> Num.int64

  end

  module Instance_Num_NumMult_Num_int64 = struct

    val * : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumPow_Num_int64 = struct

    val ** : Num.int64 -> nat -> Num.int64

  end

  module Instance_Num_NumIntegerDivision_Num_int64 = struct

    val div : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumDivision_Num_int64 = struct

    val / : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumRemainder_Num_int64 = struct

    val mod : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int64 = struct

    val max : Num.int64 -> Num.int64 -> Num.int64
    val min : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_Numeral_Num_integer = struct

    val fromNumeral : numeral -> Num.integer

  end

  module Instance_Basic_classes_Eq_Num_integer = struct

    val = : Num.integer -> Num.integer -> bool
    val <> : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_Ord_Num_integer = struct

    val compare : Num.integer -> Num.integer -> Basic_classes.ordering
    val < : Num.integer -> Num.integer -> bool
    val <= : Num.integer -> Num.integer -> bool
    val > : Num.integer -> Num.integer -> bool
    val >= : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_SetType_Num_integer = struct

    val setElemCompare : Num.integer -> Num.integer -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_integer = struct

    val ~ : Num.integer -> Num.integer

  end

  module Instance_Num_NumAbs_Num_integer = struct

    val abs : Num.integer -> Num.integer

  end

  module Instance_Num_NumAdd_Num_integer = struct

    val + : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumMinus_Num_integer = struct

    val - : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumSucc_Num_integer = struct

    val succ : Num.integer -> Num.integer

  end

  module Instance_Num_NumPred_Num_integer = struct

    val pred : Num.integer -> Num.integer

  end

  module Instance_Num_NumMult_Num_integer = struct

    val * : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumPow_Num_integer = struct

    val ** : Num.integer -> nat -> Num.integer

  end

  module Instance_Num_NumIntegerDivision_Num_integer = struct

    val div : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumDivision_Num_integer = struct

    val / : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumRemainder_Num_integer = struct

    val mod : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Basic_classes_OrdMaxMin_Num_integer = struct

    val max : Num.integer -> Num.integer -> Num.integer
    val min : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_Numeral_Num_rational = struct

    val fromNumeral : numeral -> Num.rational

  end

  module Instance_Basic_classes_Eq_Num_rational = struct

    val = : Num.rational -> Num.rational -> bool
    val <> : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_Ord_Num_rational = struct

    val compare : Num.rational -> Num.rational -> Basic_classes.ordering
    val < : Num.rational -> Num.rational -> bool
    val <= : Num.rational -> Num.rational -> bool
    val > : Num.rational -> Num.rational -> bool
    val >= : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_SetType_Num_rational = struct

    val setElemCompare : 
                           Num.rational -> Num.rational -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_rational = struct

    val + : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumMinus_Num_rational = struct

    val - : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumNegate_Num_rational = struct

    val ~ : Num.rational -> Num.rational

  end

  module Instance_Num_NumAbs_Num_rational = struct

    val abs : Num.rational -> Num.rational

  end

  module Instance_Num_NumSucc_Num_rational = struct

    val succ : Num.rational -> Num.rational

  end

  module Instance_Num_NumPred_Num_rational = struct

    val pred : Num.rational -> Num.rational

  end

  module Instance_Num_NumMult_Num_rational = struct

    val * : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumDivision_Num_rational = struct

    val / : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumPow_Num_rational = struct

    val ** : Num.rational -> nat -> Num.rational

  end

  module Instance_Basic_classes_OrdMaxMin_Num_rational = struct

    val max : Num.rational -> Num.rational -> Num.rational
    val min : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_Numeral_Num_real = struct

    val fromNumeral : numeral -> Num.real

  end

  module Instance_Basic_classes_Eq_Num_real = struct

    val = : Num.real -> Num.real -> bool
    val <> : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_Ord_Num_real = struct

    val compare : Num.real -> Num.real -> Basic_classes.ordering
    val < : Num.real -> Num.real -> bool
    val <= : Num.real -> Num.real -> bool
    val > : Num.real -> Num.real -> bool
    val >= : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_SetType_Num_real = struct

    val setElemCompare : Num.real -> Num.real -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_real = struct

    val + : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumMinus_Num_real = struct

    val - : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumNegate_Num_real = struct

    val ~ : Num.real -> Num.real

  end

  module Instance_Num_NumAbs_Num_real = struct

    val abs : Num.real -> Num.real

  end

  module Instance_Num_NumSucc_Num_real = struct

    val succ : Num.real -> Num.real

  end

  module Instance_Num_NumPred_Num_real = struct

    val pred : Num.real -> Num.real

  end

  module Instance_Num_NumMult_Num_real = struct

    val * : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumDivision_Num_real = struct

    val / : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumPow_Num_real = struct

    val ** : Num.real -> nat -> Num.real

  end

  module Instance_Basic_classes_OrdMaxMin_Num_real = struct

    val max : Num.real -> Num.real -> Num.real
    val min : Num.real -> Num.real -> Num.real

  end

end

module Pervasives = struct
  type natural
  class Show
  class Eq
  type Eq_class 'a = {
      val isEqual_method : forall 'a. 
                             (Basic_classes.Eq_class 'a) -> 'a -> 'a -> bool

      val isInequal_method : forall 'a. 
                               (Basic_classes.Eq_class 'a) -> 'a -> 'a -> 
                                                                    bool

  }
  type ordering
  type int
  class Ord
  type Ord_class 'a = {
      val compare_method : forall 'a. 
                             (Basic_classes.Ord_class 'a) -> 'a -> 'a -> 
                                                                   Basic_classes.ordering

      val isLess_method : forall 'a. 
                            (Basic_classes.Ord_class 'a) -> 'a -> 'a -> bool

      val isLessEqual_method : forall 'a. 
                                 (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                 'a -> 
                                                                 bool

      val isGreater_method : forall 'a. 
                               (Basic_classes.Ord_class 'a) -> 'a -> 
                                                               'a -> 
                                                               bool

      val isGreaterEqual_method : forall 'a. 
                                    (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                    'a -> 
                                                                    bool

  }
  class OrdMaxMin
  type OrdMaxMin_class 'a = {
      val max_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

      val min_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

  }
  class SetType
  type SetType_class 'a = {
      val setElemCompare_method : forall 'a. 
                                    (Basic_classes.SetType_class 'a) -> 
                                    'a -> 'a -> Basic_classes.ordering

  }
  type maybe 'a
  type map 'k 'v
  class Numeral
  type Numeral_class 'a = {
      val fromNumeral_method : forall 'a. 
                                 (Num.Numeral_class 'a) -> numeral -> 'a

  }
  class NumNegate
  type NumNegate_class 'a = {
      val numNegate_method : forall 'a. (Num.NumNegate_class 'a) -> 'a -> 'a

  }
  class NumAbs
  type NumAbs_class 'a = {
      val abs_method : forall 'a. (Num.NumAbs_class 'a) -> 'a -> 'a

  }
  class NumAdd
  type NumAdd_class 'a = {
      val numAdd_method : forall 'a. (Num.NumAdd_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMinus
  type NumMinus_class 'a = {
      val numMinus_method : forall 'a. 
                              (Num.NumMinus_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMult
  type NumMult_class 'a = {
      val numMult_method : forall 'a. 
                             (Num.NumMult_class 'a) -> 'a -> 'a -> 'a

  }
  class NumPow
  type NumPow_class 'a = {
      val numPow_method : forall 'a. (Num.NumPow_class 'a) -> 'a -> nat -> 'a

  }
  class NumDivision
  type NumDivision_class 'a = {
      val numDivision_method : forall 'a. 
                                 (Num.NumDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumIntegerDivision
  type NumIntegerDivision_class 'a = {
      val div_method : forall 'a. 
                         (Num.NumIntegerDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumRemainder
  type NumRemainder_class 'a = {
      val mod_method : forall 'a. 
                         (Num.NumRemainder_class 'a) -> 'a -> 'a -> 'a

  }
  class NumSucc
  type NumSucc_class 'a = {
      val succ_method : forall 'a. (Num.NumSucc_class 'a) -> 'a -> 'a

  }
  class NumPred
  type NumPred_class 'a = {
      val pred_method : forall 'a. (Num.NumPred_class 'a) -> 'a -> 'a

  }
  type integer
  type int32
  type int64
  type rational
  type real
  type float64
  type float32
  type Show_class 'a = {
      val show_method : forall 'a. (Show.Show_class 'a) -> 'a -> string

  }
  class MapKeyType
  type MapKeyType_class 'a = {
      val mapKeyCompare_method : forall 'a. 
                                   (Map.MapKeyType_class 'a) -> 'a -> 
                                                                'a -> 
                                                                Basic_classes.ordering

  }
  type either 'a 'b
  type bitSequence
  class WordNot
  type WordNot_class 'a = {
      val lnot_method : forall 'a. (Word.WordNot_class 'a) -> 'a -> 'a

  }
  class WordAnd
  type WordAnd_class 'a = {
      val land_method : forall 'a. (Word.WordAnd_class 'a) -> 'a -> 'a -> 'a

  }
  class WordOr
  type WordOr_class 'a = {
      val lor_method : forall 'a. (Word.WordOr_class 'a) -> 'a -> 'a -> 'a

  }
  class WordXor
  type WordXor_class 'a = {
      val lxor_method : forall 'a. (Word.WordXor_class 'a) -> 'a -> 'a -> 'a

  }
  class WordLsl
  type WordLsl_class 'a = {
      val lsl_method : forall 'a. (Word.WordLsl_class 'a) -> 'a -> nat -> 'a

  }
  class WordLsr
  type WordLsr_class 'a = {
      val lsr_method : forall 'a. (Word.WordLsr_class 'a) -> 'a -> nat -> 'a

  }
  class WordAsr
  type WordAsr_class 'a = {
      val asr_method : forall 'a. (Word.WordAsr_class 'a) -> 'a -> nat -> 'a

  }

  val not : bool -> bool
  val ~ : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val && : bool -> bool -> bool
  val and : bool -> bool -> bool
  val || : bool -> bool -> bool
  val or : bool -> bool -> bool
  val --> : bool -> bool -> bool
  val imp : bool -> bool -> bool
  val <-> : bool -> bool -> bool
  val equiv : bool -> bool -> bool
  val = : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val xor : bool -> bool -> bool
  val isEqual : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val <> : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val isInequal : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val unsafe_structural_equality : forall 'a. 'a -> 'a -> bool
  val unsafe_structural_inequality : forall 'a. 'a -> 'a -> bool
  val instance_Basic_classes_Eq_var_dict : forall 'a. 
                                             Basic_classes.Eq_class 'a
  val LT : Basic_classes.ordering
  val EQ : Basic_classes.ordering
  val GT : Basic_classes.ordering
  val orderingIsLess : Basic_classes.ordering -> bool
  val orderingIsGreater : Basic_classes.ordering -> bool
  val orderingIsEqual : Basic_classes.ordering -> bool
  val orderingIsLessEqual : Basic_classes.ordering -> bool
  val orderingIsGreaterEqual : Basic_classes.ordering -> bool
  val ordering_cases : forall 'a. 
                         Basic_classes.ordering -> 'a -> 'a -> 'a -> 'a
  val orderingEqual : 
                        Basic_classes.ordering -> Basic_classes.ordering -> 
                                                  bool
  val instance_Basic_classes_Eq_Basic_classes_ordering_dict : 
                                                                Basic_classes.Eq_class 
                                                                Basic_classes.ordering
  val compare : forall 'a. 
                  (Basic_classes.Ord 'a) => 
                    'a -> 'a -> Basic_classes.ordering
  val < : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLess : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val <= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLessEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val > : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreater : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val >= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreaterEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val defaultCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering
  val defaultLess : forall 'a. 'a -> 'a -> bool
  val defaultLessEq : forall 'a. 'a -> 'a -> bool
  val defaultGreater : forall 'a. 'a -> 'a -> bool
  val defaultGreaterEq : forall 'a. 'a -> 'a -> bool
  val genericCompare : forall 'a. 
                         ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                               'a -> 'a -> Basic_classes.ordering
  val ordCompare : forall 'a. 
                     (Basic_classes.Eq 'a) (Basic_classes.Ord 'a) => 
                       'a -> 'a -> Basic_classes.ordering
  val max : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val min : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val minByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val maxByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val defaultMax : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val defaultMin : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val instance_Basic_classes_OrdMaxMin_var_dict : forall 'a. 
                                                    (Basic_classes.Ord 'a) => 
                                                      Basic_classes.OrdMaxMin_class 
                                                      'a
  val setElemCompare : forall 'a. 
                         (Basic_classes.SetType 'a) => 
                           'a -> 'a -> Basic_classes.ordering
  val instance_Basic_classes_SetType_var_dict : forall 'a. 
                                                  Basic_classes.SetType_class 
                                                  'a
  val instance_Basic_classes_Eq_bool_dict : Basic_classes.Eq_class bool
  val boolCompare : bool -> bool -> Basic_classes.ordering
  val instance_Basic_classes_SetType_bool_dict : 
                                                   Basic_classes.SetType_class 
                                                   bool
  val charEqual : char -> char -> bool
  val instance_Basic_classes_Eq_char_dict : Basic_classes.Eq_class char
  val stringEquality : string -> string -> bool
  val instance_Basic_classes_Eq_string_dict : Basic_classes.Eq_class string
  val pairEqual : forall 'a 'b. 
                    (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                      ('a * 'b) -> ('a * 'b) -> bool
  val pairEqualBy : forall 'a 'b. 
                      ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a * 'b) -> 
                                                                  ('a * 'b) -> 
                                                                  bool
  val instance_Basic_classes_Eq_tup2_dict : forall 'a 'b. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b)
  val pairCompare : forall 'a 'b. 
                      ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                              'b -> Basic_classes.ordering) -> 
                                                              ('a * 'b) -> 
                                                              ('a * 'b) -> 
                                                              Basic_classes.ordering
  val pairLess : forall 'a 'b. 
                   (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                     ('b * 'a) -> ('b * 'a) -> bool
  val pairLessEq : forall 'a 'b. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                       ('b * 'a) -> ('b * 'a) -> bool
  val pairGreater : forall 'a 'b. 
                      (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                        ('a * 'b) -> ('a * 'b) -> bool
  val pairGreaterEq : forall 'a 'b. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                          ('a * 'b) -> ('a * 'b) -> bool
  val instance_Basic_classes_Ord_tup2_dict : forall 'a 'b. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b)
  val instance_Basic_classes_SetType_tup2_dict : forall 'a 'b. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b)
  val tripleEqual : forall 'a 'b 'c. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                        (Basic_classes.Eq 'c) => 
                        ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val instance_Basic_classes_Eq_tup3_dict : forall 'a 'b 'c. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c)
  val tripleCompare : forall 'a 'b 'c. 
                        ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                'b -> 
                                                                Basic_classes.ordering) -> 
                                                                ('c -> 
                                                                'c -> 
                                                                Basic_classes.ordering) -> 
                                                                ('a * 'b * 'c) -> 
                                                                ('a * 'b * 'c) -> 
                                                                Basic_classes.ordering
  val tripleLess : forall 'a 'b 'c. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                       (Basic_classes.Ord 'c) => 
                       ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleLessEq : forall 'a 'b 'c. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) => 
                         ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleGreater : forall 'a 'b 'c. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) => 
                          ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val tripleGreaterEq : forall 'a 'b 'c. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) => 
                            ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val instance_Basic_classes_Ord_tup3_dict : forall 'a 'b 'c. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c)
  val instance_Basic_classes_SetType_tup3_dict : forall 'a 'b 'c. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c)
  val quadrupleEqual : forall 'a 'b 'c 'd. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                           ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val instance_Basic_classes_Eq_tup4_dict : forall 'a 'b 'c 'd. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd)
  val quadrupleCompare : forall 'a 'b 'c 'd. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   Basic_classes.ordering
  val quadrupleLess : forall 'a 'b 'c 'd. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                          ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val quadrupleLessEq : forall 'a 'b 'c 'd. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                            ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                   bool
  val quadrupleGreater : forall 'a 'b 'c 'd. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c)
                             (Basic_classes.Ord 'd) => 
                             ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                    bool
  val quadrupleGreaterEq : forall 'a 'b 'c 'd. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c)
                               (Basic_classes.Ord 'd) => 
                               ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                      bool
  val instance_Basic_classes_Ord_tup4_dict : forall 'a 'b 'c 'd. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd)
  val instance_Basic_classes_SetType_tup4_dict : forall 'a 'b 'c 'd. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd)
  val quintupleEqual : forall 'a 'b 'c 'd 'e. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                           (Basic_classes.Eq 'e) => 
                           ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                        'd * 'e) -> bool
  val instance_Basic_classes_Eq_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e)
  val quintupleCompare : forall 'a 'b 'c 'd 'e. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('e -> 
                                                                   'e -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   Basic_classes.ordering
  val quintupleLess : forall 'a 'b 'c 'd 'e. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                          (Basic_classes.Ord 'e) => 
                          ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                      bool
  val quintupleLessEq : forall 'a 'b 'c 'd 'e. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) => 
                            ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                         'd * 'e) -> 
                                                        bool
  val quintupleGreater : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                             (Basic_classes.Ord 'e) => 
                             ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 'c * 
                                                          'b * 'a) -> 
                                                         bool
  val quintupleGreaterEq : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                               (Basic_classes.Ord 'e) => 
                               ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 
                                                            'c * 'b * 
                                                            'a) -> bool
  val instance_Basic_classes_Ord_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e)
  val instance_Basic_classes_SetType_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd * 'e)
  val sextupleEqual : forall 'a 'b 'c 'd 'e 'f. 
                        (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                          (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                          (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                          ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                            'c * 'd * 
                                                            'e * 'f) -> 
                                                           bool
  val instance_Basic_classes_Eq_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e)
                                                (Basic_classes.Eq 'f) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e * 'f)
  val sextupleCompare : forall 'a 'b 'c 'd 'e 'f. 
                          ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                  'b -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('c -> 
                                                                  'c -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('d -> 
                                                                  'd -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('e -> 
                                                                  'e -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('f -> 
                                                                  'f -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  Basic_classes.ordering
  val sextupleLess : forall 'a 'b 'c 'd 'e 'f. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                         (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                         ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                           'c * 'd * 
                                                           'e * 'f) -> 
                                                          bool
  val sextupleLessEq : forall 'a 'b 'c 'd 'e 'f. 
                         (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                           (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                           (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                           ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                             'c * 'd * 
                                                             'e * 'f) -> 
                                                            bool
  val sextupleGreater : forall 'a 'b 'c 'd 'e 'f. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                            ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 'e * 
                                                              'd * 'c * 
                                                              'b * 'a) -> 
                                                             bool
  val sextupleGreaterEq : forall 'a 'b 'c 'd 'e 'f. 
                            (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                              (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                              (Basic_classes.Ord 'e)
                              (Basic_classes.Ord 'f) => 
                              ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 
                                                                'e * 
                                                                'd * 
                                                                'c * 
                                                                'b * 
                                                                'a) -> 
                                                               bool
  val instance_Basic_classes_Ord_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e)
                                                 (Basic_classes.Ord 'f) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e * 'f)
  val instance_Basic_classes_SetType_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e)
                                                     (Basic_classes.SetType
                                                      'f) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 
                                                      'd * 'e * 'f)
  val id : forall 'a. 'a -> 'a
  val const : forall 'a 'b. 'a -> 'b -> 'a
  val comb : forall 'a 'b 'c. ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
  val $ : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val apply : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val $> : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val rev_apply : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val flip : forall 'a 'b 'c. ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
  val curry : forall 'a 'b 'c. (('a * 'b) -> 'c) -> 'a -> 'b -> 'c
  val uncurry : forall 'a 'b 'c. ('a -> 'b -> 'c) -> ('a * 'b) -> 'c
  val maybe : forall 'a 'b. 'b -> ('a -> 'b) -> (Maybe.maybe 'a) -> 'b
  val Nothing : forall 'a. Maybe.maybe 'a
  val Just : forall 'a. 'a -> Maybe.maybe 'a
  val maybeEqual : forall 'a. 
                     (Basic_classes.Eq 'a) => 
                       (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
  val maybeEqualBy : forall 'a. 
                       ('a -> 'a -> bool) -> (Maybe.maybe 'a) -> (Maybe.maybe 
                                                                 'a) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Maybe_maybe_dict : forall 'a. 
                                                     (Basic_classes.Eq 'a) => 
                                                       Basic_classes.Eq_class 
                                                       (Maybe.maybe 'a)
  val maybeCompare : forall 'a 'b. 
                       ('b -> 'a -> Basic_classes.ordering) -> (Maybe.maybe 
                                                               'b) -> 
                                                               (Maybe.maybe 
                                                               'a) -> 
                                                               Basic_classes.ordering
  val instance_Basic_classes_SetType_Maybe_maybe_dict : forall 'a. 
                                                          (Basic_classes.SetType
                                                           'a) => 
                                                            Basic_classes.SetType_class 
                                                            (Maybe.maybe 'a)
  val instance_Basic_classes_Ord_Maybe_maybe_dict : forall 'a. 
                                                      (Basic_classes.Ord 'a) => 
                                                        Basic_classes.Ord_class 
                                                        (Maybe.maybe 'a)
  val isJust : forall 'a. (Maybe.maybe 'a) -> bool
  val isNothing : forall 'a. (Maybe.maybe 'a) -> bool
  val fromMaybe : forall 'a. 'a -> (Maybe.maybe 'a) -> 'a
  val map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val bind : forall 'a 'b. 
               (Maybe.maybe 'a) -> ('a -> Maybe.maybe 'b) -> Maybe.maybe 'b
  val fromNumeral : forall 'a. (Num.Numeral 'a) => numeral -> 'a
  val numNegate : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val abs : forall 'a. (Num.NumAbs 'a) => 'a -> 'a
  val + : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val numAdd : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val - : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val numMinus : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val * : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val numMult : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val ** : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val numPow : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val / : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val numDivision : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val div : forall 'a. (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val numIntegerDivision : forall 'a. 
                             (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val mod : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val numRemainder : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val succ : forall 'a. (Num.NumSucc 'a) => 'a -> 'a
  val pred : forall 'a. (Num.NumPred 'a) => 'a -> 'a
  val natFromNumeral : numeral -> nat
  val instance_Num_Numeral_nat_dict : Num.Numeral_class nat
  val natEq : nat -> nat -> bool
  val instance_Basic_classes_Eq_nat_dict : Basic_classes.Eq_class nat
  val natLess : nat -> nat -> bool
  val natLessEqual : nat -> nat -> bool
  val natGreater : nat -> nat -> bool
  val natGreaterEqual : nat -> nat -> bool
  val natCompare : nat -> nat -> Basic_classes.ordering
  val instance_Basic_classes_Ord_nat_dict : Basic_classes.Ord_class nat
  val instance_Basic_classes_SetType_nat_dict : 
                                                  Basic_classes.SetType_class 
                                                  nat
  val natAdd : nat -> nat -> nat
  val instance_Num_NumAdd_nat_dict : Num.NumAdd_class nat
  val natMinus : nat -> nat -> nat
  val instance_Num_NumMinus_nat_dict : Num.NumMinus_class nat
  val natSucc : nat -> nat
  val instance_Num_NumSucc_nat_dict : Num.NumSucc_class nat
  val natPred : nat -> nat
  val instance_Num_NumPred_nat_dict : Num.NumPred_class nat
  val natMult : nat -> nat -> nat
  val instance_Num_NumMult_nat_dict : Num.NumMult_class nat
  val natDiv : nat -> nat -> nat
  val instance_Num_NumIntegerDivision_nat_dict : 
                                                   Num.NumIntegerDivision_class 
                                                   nat
  val instance_Num_NumDivision_nat_dict : Num.NumDivision_class nat
  val natMod : nat -> nat -> nat
  val instance_Num_NumRemainder_nat_dict : Num.NumRemainder_class nat
  val gen_pow_aux : forall 'a. ('a -> 'a -> 'a) -> 'a -> 'a -> nat -> 'a
  val gen_pow : forall 'a. 'a -> ('a -> 'a -> 'a) -> 'a -> nat -> 'a
  val natPow : nat -> nat -> nat
  val ^ : string -> string -> string
  val instance_Num_NumPow_nat_dict : Num.NumPow_class nat
  val natMin : nat -> nat -> nat
  val natMax : nat -> nat -> nat
  val instance_Basic_classes_OrdMaxMin_nat_dict : 
                                                    Basic_classes.OrdMaxMin_class 
                                                    nat
  val naturalFromNumeral : numeral -> Num.natural
  val instance_Num_Numeral_Num_natural_dict : Num.Numeral_class Num.natural
  val naturalEq : Num.natural -> Num.natural -> bool
  val instance_Basic_classes_Eq_Num_natural_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.natural
  val naturalLess : Num.natural -> Num.natural -> bool
  val naturalLessEqual : Num.natural -> Num.natural -> bool
  val naturalGreater : Num.natural -> Num.natural -> bool
  val naturalGreaterEqual : Num.natural -> Num.natural -> bool
  val naturalCompare : Num.natural -> Num.natural -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_natural_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.natural
  val instance_Basic_classes_SetType_Num_natural_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.natural
  val naturalAdd : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumAdd_Num_natural_dict : Num.NumAdd_class Num.natural
  val naturalMinus : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMinus_Num_natural_dict : Num.NumMinus_class Num.natural
  val naturalSucc : Num.natural -> Num.natural
  val instance_Num_NumSucc_Num_natural_dict : Num.NumSucc_class Num.natural
  val naturalPred : Num.natural -> Num.natural
  val instance_Num_NumPred_Num_natural_dict : Num.NumPred_class Num.natural
  val naturalMult : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMult_Num_natural_dict : Num.NumMult_class Num.natural
  val naturalPow : Num.natural -> nat -> Num.natural
  val instance_Num_NumPow_Num_natural_dict : Num.NumPow_class Num.natural
  val naturalDiv : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumIntegerDivision_Num_natural_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.natural
  val instance_Num_NumDivision_Num_natural_dict : 
                                                    Num.NumDivision_class 
                                                    Num.natural
  val naturalMod : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumRemainder_Num_natural_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.natural
  val naturalMin : Num.natural -> Num.natural -> Num.natural
  val naturalMax : Num.natural -> Num.natural -> Num.natural
  val instance_Basic_classes_OrdMaxMin_Num_natural_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.natural
  val intFromNumeral : numeral -> Num.int
  val instance_Num_Numeral_Num_int_dict : Num.Numeral_class Num.int
  val intEq : Num.int -> Num.int -> bool
  val instance_Basic_classes_Eq_Num_int_dict : Basic_classes.Eq_class Num.int
  val intLess : Num.int -> Num.int -> bool
  val intLessEqual : Num.int -> Num.int -> bool
  val intGreater : Num.int -> Num.int -> bool
  val intGreaterEqual : Num.int -> Num.int -> bool
  val intCompare : Num.int -> Num.int -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int_dict : 
                                                  Basic_classes.Ord_class 
                                                  Num.int
  val instance_Basic_classes_SetType_Num_int_dict : 
                                                      Basic_classes.SetType_class 
                                                      Num.int
  val intNegate : Num.int -> Num.int
  val instance_Num_NumNegate_Num_int_dict : Num.NumNegate_class Num.int
  val intAbs : Num.int -> Num.int
  val instance_Num_NumAbs_Num_int_dict : Num.NumAbs_class Num.int
  val intAdd : Num.int -> Num.int -> Num.int
  val instance_Num_NumAdd_Num_int_dict : Num.NumAdd_class Num.int
  val intMinus : Num.int -> Num.int -> Num.int
  val instance_Num_NumMinus_Num_int_dict : Num.NumMinus_class Num.int
  val intSucc : Num.int -> Num.int
  val instance_Num_NumSucc_Num_int_dict : Num.NumSucc_class Num.int
  val intPred : Num.int -> Num.int
  val instance_Num_NumPred_Num_int_dict : Num.NumPred_class Num.int
  val intMult : Num.int -> Num.int -> Num.int
  val instance_Num_NumMult_Num_int_dict : Num.NumMult_class Num.int
  val intPow : Num.int -> nat -> Num.int
  val instance_Num_NumPow_Num_int_dict : Num.NumPow_class Num.int
  val intDiv : Num.int -> Num.int -> Num.int
  val instance_Num_NumIntegerDivision_Num_int_dict : 
                                                       Num.NumIntegerDivision_class 
                                                       Num.int
  val instance_Num_NumDivision_Num_int_dict : Num.NumDivision_class Num.int
  val intMod : Num.int -> Num.int -> Num.int
  val instance_Num_NumRemainder_Num_int_dict : Num.NumRemainder_class Num.int
  val intMin : Num.int -> Num.int -> Num.int
  val intMax : Num.int -> Num.int -> Num.int
  val instance_Basic_classes_OrdMaxMin_Num_int_dict : 
                                                        Basic_classes.OrdMaxMin_class 
                                                        Num.int
  val int32FromNumeral : numeral -> Num.int32
  val instance_Num_Numeral_Num_int32_dict : Num.Numeral_class Num.int32
  val int32Eq : Num.int32 -> Num.int32 -> bool
  val instance_Basic_classes_Eq_Num_int32_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int32
  val int32Less : Num.int32 -> Num.int32 -> bool
  val int32LessEqual : Num.int32 -> Num.int32 -> bool
  val int32Greater : Num.int32 -> Num.int32 -> bool
  val int32GreaterEqual : Num.int32 -> Num.int32 -> bool
  val int32Compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int32_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int32
  val instance_Basic_classes_SetType_Num_int32_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int32
  val int32Negate : Num.int32 -> Num.int32
  val instance_Num_NumNegate_Num_int32_dict : Num.NumNegate_class Num.int32
  val int32Abs : Num.int32 -> Num.int32
  val instance_Num_NumAbs_Num_int32_dict : Num.NumAbs_class Num.int32
  val int32Add : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumAdd_Num_int32_dict : Num.NumAdd_class Num.int32
  val int32Minus : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMinus_Num_int32_dict : Num.NumMinus_class Num.int32
  val int32Succ : Num.int32 -> Num.int32
  val instance_Num_NumSucc_Num_int32_dict : Num.NumSucc_class Num.int32
  val int32Pred : Num.int32 -> Num.int32
  val instance_Num_NumPred_Num_int32_dict : Num.NumPred_class Num.int32
  val int32Mult : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMult_Num_int32_dict : Num.NumMult_class Num.int32
  val int32Pow : Num.int32 -> nat -> Num.int32
  val instance_Num_NumPow_Num_int32_dict : Num.NumPow_class Num.int32
  val int32Div : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumIntegerDivision_Num_int32_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int32
  val instance_Num_NumDivision_Num_int32_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int32
  val int32Mod : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumRemainder_Num_int32_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int32
  val int32Min : Num.int32 -> Num.int32 -> Num.int32
  val int32Max : Num.int32 -> Num.int32 -> Num.int32
  val instance_Basic_classes_OrdMaxMin_Num_int32_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int32
  val int64FromNumeral : numeral -> Num.int64
  val instance_Num_Numeral_Num_int64_dict : Num.Numeral_class Num.int64
  val int64Eq : Num.int64 -> Num.int64 -> bool
  val instance_Basic_classes_Eq_Num_int64_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int64
  val int64Less : Num.int64 -> Num.int64 -> bool
  val int64LessEqual : Num.int64 -> Num.int64 -> bool
  val int64Greater : Num.int64 -> Num.int64 -> bool
  val int64GreaterEqual : Num.int64 -> Num.int64 -> bool
  val int64Compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int64_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int64
  val instance_Basic_classes_SetType_Num_int64_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int64
  val int64Negate : Num.int64 -> Num.int64
  val instance_Num_NumNegate_Num_int64_dict : Num.NumNegate_class Num.int64
  val int64Abs : Num.int64 -> Num.int64
  val instance_Num_NumAbs_Num_int64_dict : Num.NumAbs_class Num.int64
  val int64Add : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumAdd_Num_int64_dict : Num.NumAdd_class Num.int64
  val int64Minus : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMinus_Num_int64_dict : Num.NumMinus_class Num.int64
  val int64Succ : Num.int64 -> Num.int64
  val instance_Num_NumSucc_Num_int64_dict : Num.NumSucc_class Num.int64
  val int64Pred : Num.int64 -> Num.int64
  val instance_Num_NumPred_Num_int64_dict : Num.NumPred_class Num.int64
  val int64Mult : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMult_Num_int64_dict : Num.NumMult_class Num.int64
  val int64Pow : Num.int64 -> nat -> Num.int64
  val instance_Num_NumPow_Num_int64_dict : Num.NumPow_class Num.int64
  val int64Div : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumIntegerDivision_Num_int64_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int64
  val instance_Num_NumDivision_Num_int64_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int64
  val int64Mod : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumRemainder_Num_int64_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int64
  val int64Min : Num.int64 -> Num.int64 -> Num.int64
  val int64Max : Num.int64 -> Num.int64 -> Num.int64
  val instance_Basic_classes_OrdMaxMin_Num_int64_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int64
  val integerFromNumeral : numeral -> Num.integer
  val instance_Num_Numeral_Num_integer_dict : Num.Numeral_class Num.integer
  val integerFromNat : nat -> Num.integer
  val integerEq : Num.integer -> Num.integer -> bool
  val instance_Basic_classes_Eq_Num_integer_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.integer
  val integerLess : Num.integer -> Num.integer -> bool
  val integerLessEqual : Num.integer -> Num.integer -> bool
  val integerGreater : Num.integer -> Num.integer -> bool
  val integerGreaterEqual : Num.integer -> Num.integer -> bool
  val integerCompare : Num.integer -> Num.integer -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_integer_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.integer
  val instance_Basic_classes_SetType_Num_integer_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.integer
  val integerNegate : Num.integer -> Num.integer
  val instance_Num_NumNegate_Num_integer_dict : 
                                                  Num.NumNegate_class 
                                                  Num.integer
  val integerAbs : Num.integer -> Num.integer
  val instance_Num_NumAbs_Num_integer_dict : Num.NumAbs_class Num.integer
  val integerAdd : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumAdd_Num_integer_dict : Num.NumAdd_class Num.integer
  val integerMinus : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMinus_Num_integer_dict : Num.NumMinus_class Num.integer
  val integerSucc : Num.integer -> Num.integer
  val instance_Num_NumSucc_Num_integer_dict : Num.NumSucc_class Num.integer
  val integerPred : Num.integer -> Num.integer
  val instance_Num_NumPred_Num_integer_dict : Num.NumPred_class Num.integer
  val integerMult : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMult_Num_integer_dict : Num.NumMult_class Num.integer
  val integerPow : Num.integer -> nat -> Num.integer
  val instance_Num_NumPow_Num_integer_dict : Num.NumPow_class Num.integer
  val integerDiv : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumIntegerDivision_Num_integer_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.integer
  val instance_Num_NumDivision_Num_integer_dict : 
                                                    Num.NumDivision_class 
                                                    Num.integer
  val integerMod : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumRemainder_Num_integer_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.integer
  val integerMin : Num.integer -> Num.integer -> Num.integer
  val integerMax : Num.integer -> Num.integer -> Num.integer
  val instance_Basic_classes_OrdMaxMin_Num_integer_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.integer
  val rationalFromNumeral : numeral -> Num.rational
  val instance_Num_Numeral_Num_rational_dict : Num.Numeral_class Num.rational
  val rationalFromInt : Num.int -> Num.rational
  val rationalFromInteger : Num.integer -> Num.rational
  val rationalEq : Num.rational -> Num.rational -> bool
  val instance_Basic_classes_Eq_Num_rational_dict : 
                                                      Basic_classes.Eq_class 
                                                      Num.rational
  val rationalLess : Num.rational -> Num.rational -> bool
  val rationalLessEqual : Num.rational -> Num.rational -> bool
  val rationalGreater : Num.rational -> Num.rational -> bool
  val rationalGreaterEqual : Num.rational -> Num.rational -> bool
  val rationalCompare : 
                          Num.rational -> Num.rational -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_rational_dict : 
                                                       Basic_classes.Ord_class 
                                                       Num.rational
  val instance_Basic_classes_SetType_Num_rational_dict : 
                                                           Basic_classes.SetType_class 
                                                           Num.rational
  val rationalAdd : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumAdd_Num_rational_dict : Num.NumAdd_class Num.rational
  val rationalMinus : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMinus_Num_rational_dict : 
                                                  Num.NumMinus_class 
                                                  Num.rational
  val rationalNegate : Num.rational -> Num.rational
  val instance_Num_NumNegate_Num_rational_dict : 
                                                   Num.NumNegate_class 
                                                   Num.rational
  val rationalAbs : Num.rational -> Num.rational
  val instance_Num_NumAbs_Num_rational_dict : Num.NumAbs_class Num.rational
  val rationalSucc : Num.rational -> Num.rational
  val instance_Num_NumSucc_Num_rational_dict : Num.NumSucc_class Num.rational
  val rationalPred : Num.rational -> Num.rational
  val instance_Num_NumPred_Num_rational_dict : Num.NumPred_class Num.rational
  val rationalMult : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMult_Num_rational_dict : Num.NumMult_class Num.rational
  val rationalDiv : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumDivision_Num_rational_dict : 
                                                     Num.NumDivision_class 
                                                     Num.rational
  val rationalFromFrac : Num.int -> Num.int -> Num.rational
  val rationalNumerator : Num.rational -> Num.integer
  val fst : forall 'a 'b. ('a * 'b) -> 'a
  val rationalDenominator : Num.rational -> Num.integer
  val snd : forall 'a 'b. ('a * 'b) -> 'b
  val rationalPowInteger : Num.rational -> Num.integer -> Num.rational
  val rationalPowNat : Num.rational -> nat -> Num.rational
  val instance_Num_NumPow_Num_rational_dict : Num.NumPow_class Num.rational
  val rationalMin : Num.rational -> Num.rational -> Num.rational
  val rationalMax : Num.rational -> Num.rational -> Num.rational
  val instance_Basic_classes_OrdMaxMin_Num_rational_dict : 
                                                             Basic_classes.OrdMaxMin_class 
                                                             Num.rational
  val realFromNumeral : numeral -> Num.real
  val instance_Num_Numeral_Num_real_dict : Num.Numeral_class Num.real
  val realFromInteger : Num.integer -> Num.real
  val realEq : Num.real -> Num.real -> bool
  val instance_Basic_classes_Eq_Num_real_dict : 
                                                  Basic_classes.Eq_class 
                                                  Num.real
  val realLess : Num.real -> Num.real -> bool
  val realLessEqual : Num.real -> Num.real -> bool
  val realGreater : Num.real -> Num.real -> bool
  val realGreaterEqual : Num.real -> Num.real -> bool
  val realCompare : Num.real -> Num.real -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_real_dict : 
                                                   Basic_classes.Ord_class 
                                                   Num.real
  val instance_Basic_classes_SetType_Num_real_dict : 
                                                       Basic_classes.SetType_class 
                                                       Num.real
  val realAdd : Num.real -> Num.real -> Num.real
  val instance_Num_NumAdd_Num_real_dict : Num.NumAdd_class Num.real
  val realMinus : Num.real -> Num.real -> Num.real
  val instance_Num_NumMinus_Num_real_dict : Num.NumMinus_class Num.real
  val realNegate : Num.real -> Num.real
  val instance_Num_NumNegate_Num_real_dict : Num.NumNegate_class Num.real
  val realAbs : Num.real -> Num.real
  val instance_Num_NumAbs_Num_real_dict : Num.NumAbs_class Num.real
  val realSucc : Num.real -> Num.real
  val instance_Num_NumSucc_Num_real_dict : Num.NumSucc_class Num.real
  val realPred : Num.real -> Num.real
  val instance_Num_NumPred_Num_real_dict : Num.NumPred_class Num.real
  val realMult : Num.real -> Num.real -> Num.real
  val instance_Num_NumMult_Num_real_dict : Num.NumMult_class Num.real
  val realDiv : Num.real -> Num.real -> Num.real
  val instance_Num_NumDivision_Num_real_dict : Num.NumDivision_class Num.real
  val realFromFrac : Num.integer -> Num.integer -> Num.real
  val realPowInteger : Num.real -> Num.integer -> Num.real
  val realPowNat : Num.real -> nat -> Num.real
  val instance_Num_NumPow_Num_real_dict : Num.NumPow_class Num.real
  val realSqrt : Num.real -> Num.real
  val realMin : Num.real -> Num.real -> Num.real
  val realMax : Num.real -> Num.real -> Num.real
  val instance_Basic_classes_OrdMaxMin_Num_real_dict : 
                                                         Basic_classes.OrdMaxMin_class 
                                                         Num.real
  val realCeiling : Num.real -> Num.integer
  val realFloor : Num.real -> Num.integer
  val integerSqrt : Num.integer -> Num.integer
  val integerFromInt : Num.int -> Num.integer
  val integerFromNatural : Num.natural -> Num.integer
  val integerFromInt32 : Num.int32 -> Num.integer
  val integerFromInt64 : Num.int64 -> Num.integer
  val naturalFromNat : nat -> Num.natural
  val naturalFromInteger : Num.integer -> Num.natural
  val intFromInteger : Num.integer -> Num.int
  val intFromNat : nat -> Num.int
  val natFromNatural : Num.natural -> nat
  val natFromInt : Num.int -> nat
  val int32FromNat : nat -> Num.int32
  val int32FromNatural : Num.natural -> Num.int32
  val int32FromInteger : Num.integer -> Num.int32
  val int32FromInt : Num.int -> Num.int32
  val int32FromInt64 : Num.int64 -> Num.int32
  val int64FromNat : nat -> Num.int64
  val int64FromNatural : Num.natural -> Num.int64
  val int64FromInteger : Num.integer -> Num.int64
  val int64FromInt : Num.int -> Num.int64
  val int64FromInt32 : Num.int32 -> Num.int64
  val naturalFromInt : Num.int -> Num.natural
  val naturalFromInt32 : Num.int32 -> Num.natural
  val naturalFromInt64 : Num.int64 -> Num.natural
  val intFromNatural : Num.natural -> Num.int
  val intFromInt32 : Num.int32 -> Num.int
  val intFromInt64 : Num.int64 -> Num.int
  val natFromInteger : Num.integer -> nat
  val natFromInt32 : Num.int32 -> nat
  val natFromInt64 : Num.int64 -> nat
  val swap : forall 'a 'b. ('a * 'b) -> ('b * 'a)
  val :: : forall 'a. 'a -> (list 'a) -> list 'a
  val cons : forall 'a. 'a -> (list 'a) -> list 'a
  val null : forall 'a. (list 'a) -> bool
  val length : forall 'a. (list 'a) -> nat
  val listEqual : forall 'a. 
                    (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val listEqualBy : forall 'a. 
                      ('a -> 'a -> bool) -> (list 'a) -> (list 'a) -> bool
  val instance_Basic_classes_Eq_list_dict : forall 'a. 
                                              (Basic_classes.Eq 'a) => 
                                                Basic_classes.Eq_class 
                                                (list 'a)
  val lexicographicCompare : forall 'a. 
                               (Basic_classes.Ord 'a) => 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicCompareBy : forall 'a. 
                                 ('a -> 'a -> Basic_classes.ordering) -> 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicLess : forall 'a. 
                            (Basic_classes.Ord 'a) => 
                              (list 'a) -> (list 'a) -> bool
  val lexicographicLessBy : forall 'a. 
                              ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                    (list 'a) -> (list 'a) -> 
                                                                 bool
  val lexicographicLessEq : forall 'a. 
                              (Basic_classes.Ord 'a) => 
                                (list 'a) -> (list 'a) -> bool
  val lexicographicLessEqBy : forall 'a. 
                                ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                      (list 'a) -> (list 'a) -> 
                                                                   bool
  val instance_Basic_classes_Ord_list_dict : forall 'a. 
                                               (Basic_classes.Ord 'a) => 
                                                 Basic_classes.Ord_class 
                                                 (list 'a)
  val ++ : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val append : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val snoc : forall 'a. 'a -> (list 'a) -> list 'a
  val reverseAppend : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val reverse : forall 'a. (list 'a) -> list 'a
  val map_tr : forall 'a 'b. (list 'b) -> ('a -> 'b) -> (list 'a) -> list 'b
  val count_map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> nat -> list 'b
  val reverseMap : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val foldl : forall 'a 'b. ('a -> 'b -> 'a) -> 'a -> (list 'b) -> 'a
  val foldr : forall 'a 'b. ('a -> 'b -> 'b) -> 'b -> (list 'a) -> 'b
  val concat : string -> (list string) -> string
  val concatMap : forall 'a 'b. ('a -> list 'b) -> (list 'a) -> list 'b
  val all : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val any : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val dest_init : forall 'a. (list 'a) -> Maybe.maybe ((list 'a) * 'a)
  val dest_init_aux : forall 'a. 
                        (list 'a) -> 'a -> (list 'a) -> ((list 'a) * 'a)
  val index : forall 'a. (list 'a) -> nat -> Maybe.maybe 'a
  val findIndices : forall 'a. ('a -> bool) -> (list 'a) -> list nat
  val findIndices_aux : forall 'a. 
                          nat -> ('a -> bool) -> (list 'a) -> list nat
  val findIndex : forall 'a. ('a -> bool) -> (list 'a) -> Maybe.maybe nat
  val elemIndices : forall 'a. 
                      (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list nat
  val elemIndex : forall 'a. 
                    (Basic_classes.Eq 'a) => 
                      'a -> (list 'a) -> Maybe.maybe nat
  val genlist : forall 'a. (nat -> 'a) -> nat -> list 'a
  val replicate : forall 'a. nat -> 'a -> list 'a
  val splitAtAcc : forall 'a. 
                     (list 'a) -> nat -> (list 'a) -> ((list 'a) * (list 'a))
  val splitAt : forall 'a. nat -> (list 'a) -> ((list 'a) * (list 'a))
  val take : forall 'a. nat -> (list 'a) -> list 'a
  val drop : forall 'a. nat -> (list 'a) -> list 'a
  val splitWhile_tr : forall 'a. 
                        ('a -> bool) -> (list 'a) -> (list 'a) -> ((list 'a)
                                                                   *
                                                                   (list 'a))
  val splitWhile : forall 'a. 
                     ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val takeWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val dropWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val isPrefixOf : forall 'a. 
                     (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val update : forall 'a. (list 'a) -> nat -> 'a -> list 'a
  val elem : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> bool
  val elemBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> bool
  val member : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val find : forall 'a. ('a -> bool) -> (list 'a) -> Maybe.maybe 'a
  val lookup : forall 'a 'b. 
                 (Basic_classes.Eq 'a) => 
                   'a -> (list ('a * 'b)) -> Maybe.maybe 'b
  val lookupBy : forall 'a 'b. 
                   ('a -> 'a -> bool) -> 'a -> (list ('a * 'b)) -> Maybe.maybe 
                                                                   'b
  val filter : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val partition : forall 'a. 
                    ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val reversePartition : forall 'a. 
                           ('a -> bool) -> (list 'a) -> ((list 'a) *
                                                         (list 'a))
  val deleteFirst : forall 'a. 
                      ('a -> bool) -> (list 'a) -> Maybe.maybe (list 'a)
  val delete : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list 'a
  val deleteBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> list 'a
  val zip : forall 'a 'b. (list 'a) -> (list 'b) -> list ('a * 'b)
  val unzip : forall 'a 'b. (list ('a * 'b)) -> ((list 'a) * (list 'b))
  val split : forall 'a. 
                (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                  'a -> (set 'a) -> ((set 'a) * (set 'a))
  val instance_Basic_classes_SetType_list_dict : forall 'a. 
                                                   (Basic_classes.SetType 'a) => 
                                                     Basic_classes.SetType_class 
                                                     (list 'a)
  val allDistinct : forall 'a. (Basic_classes.Eq 'a) => (list 'a) -> bool
  val mapMaybe : forall 'a 'b. ('a -> Maybe.maybe 'b) -> (list 'a) -> list 'b
  val mapi : forall 'a 'b. (nat -> 'a -> 'b) -> (list 'a) -> list 'b
  val mapiAux : forall 'a 'b. 
                  (nat -> 'b -> 'a) -> nat -> (list 'b) -> list 'a
  val deletes : forall 'a. 
                  (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> list 'a
  val catMaybes : forall 'a. (list (Maybe.maybe 'a)) -> list 'a
  val toCharList : string -> list char
  val toString : (list char) -> string
  val makeString : nat -> char -> string
  val stringLength : string -> nat
  val stringAppend : string -> string -> string
  val string_case : forall 'a. string -> 'a -> (char -> string -> 'a) -> 'a
  val empty_string : string
  val cons_string : char -> string -> string
  val show : forall 'a. (Show.Show 'a) => 'a -> string
  val instance_Show_Show_string_dict : Show.Show_class string
  val stringFromMaybe : forall 'a. 
                          ('a -> string) -> (Maybe.maybe 'a) -> string
  val instance_Show_Show_Maybe_maybe_dict : forall 'a. 
                                              (Show.Show 'a) => 
                                                Show.Show_class (Maybe.maybe 
                                                                'a)
  val stringFromListAux : forall 'a. ('a -> string) -> (list 'a) -> string
  val stringFromList : forall 'a. ('a -> string) -> (list 'a) -> string
  val instance_Show_Show_list_dict : forall 'a. 
                                       (Show.Show 'a) => 
                                         Show.Show_class (list 'a)
  val stringFromPair : forall 'a 'b. 
                         ('a -> string) -> ('b -> string) -> ('a * 'b) -> 
                                                             string
  val instance_Show_Show_tup2_dict : forall 'a 'b. 
                                       (Show.Show 'a) (Show.Show 'b) => 
                                         Show.Show_class ('a * 'b)
  val instance_Show_Show_bool_dict : Show.Show_class bool
  val size : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> nat
  val setEqualBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                             (set 'a) -> 
                                                             bool
  val setEqual : forall 'a. 
                   (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val instance_Basic_classes_Eq_set_dict : forall 'a. 
                                             (Basic_classes.SetType 'a) => 
                                               Basic_classes.Eq_class 
                                               (set 'a)
  val empty : forall 'a. (Basic_classes.SetType 'a) => set 'a
  val emptyBy : forall 'a. ('a -> 'a -> Basic_classes.ordering) -> set 'a
  val IN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val memberBy : forall 'a. 
                   ('a -> 'a -> Basic_classes.ordering) -> 'a -> (set 'a) -> 
                                                                 bool
  val NIN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val notMember : forall 'a. 
                    (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val singletonBy : forall 'a. 
                      ('a -> 'a -> Basic_classes.ordering) -> 'a -> set 'a
  val singleton : forall 'a. (Basic_classes.SetType 'a) => 'a -> set 'a
  val set_case : forall 'a 'b. 
                   (Basic_classes.SetType 'a) => 
                     (set 'a) -> 'b -> ('a -> 'b) -> 'b -> 'b
  val unionBy : forall 'a. 
                  ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                          (set 'a) -> 
                                                          set 'a
  val union : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val insert : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> set 'a
  val splitMember : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                        'a -> (set 'a) -> ((set 'a) * bool * (set 'a))
  val isSubsetOfBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               bool
  val isProperSubsetOfBy : forall 'a. 
                             ('a -> 'a -> Basic_classes.ordering) -> 
                             (set 'a) -> (set 'a) -> bool
  val isSubsetOf : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> bool
  val isProperSubsetOf : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (set 'a) -> (set 'a) -> bool
  val subset : forall 'a. 
                 (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val bigunion : forall 'a. 
                   (Basic_classes.SetType 'a) => (set (set 'a)) -> set 'a
  val bigunionBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set (set 'a)) -> 
                                                             set 'a
  val bigintersection : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            (set (set 'a)) -> set 'a
  val differenceBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               set 'a
  val difference : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> set 'a
  val \ : forall 'a. 
            (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val intersection : forall 'a. 
                       (Basic_classes.SetType 'a) => 
                         (set 'a) -> (set 'a) -> set 'a
  val intersectionBy : forall 'a. 
                         ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                                 (set 'a) -> 
                                                                 set 
                                                                 'a
  val inter : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val mapBy : forall 'a 'b. 
                ('b -> 'b -> Basic_classes.ordering) -> ('a -> 'b) -> 
                                                        (set 'a) -> set 'b
  val bigunionMap : forall 'a 'b. 
                      (Basic_classes.SetType 'a)
                        (Basic_classes.SetType 'b) => 
                        ('a -> set 'b) -> (set 'a) -> set 'b
  val bigunionMapBy : forall 'a 'b. 
                        ('b -> 'b -> Basic_classes.ordering) -> ('a -> 
                                                                set 'b) -> 
                                                                (set 'a) -> 
                                                                set 'b
  val removeMaybe : forall 'a. 
                      (Basic_classes.SetType 'a) => 
                        (set (Maybe.maybe 'a)) -> set 'a
  val findMin : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val findMax : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val fromList : forall 'a. (Basic_classes.SetType 'a) => (list 'a) -> set 'a
  val fromListBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (list 'a) -> 
                                                             set 'a
  val sigma : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val sigmaBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val cross : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val crossBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val finite : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> bool
  val leastFixedPoint : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            nat -> ((set 'a) -> set 'a) -> (set 'a) -> set 'a
  val mapEqual : forall 'k 'v. 
                   (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                     (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
  val mapEqualBy : forall 'k 'v. 
                     ('k -> 'k -> bool) -> ('v -> 'v -> bool) -> (Map.map 
                                                                 'k 'v) -> 
                                                                 (Map.map 
                                                                 'k 'v) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Map_map_dict : forall 'k 'v. 
                                                 (Basic_classes.Eq 'k)
                                                   (Basic_classes.Eq 'v) => 
                                                   Basic_classes.Eq_class 
                                                   (Map.map 'k 'v)
  val mapKeyCompare : forall 'a. 
                        (Map.MapKeyType 'a) => 
                          'a -> 'a -> Basic_classes.ordering
  val instance_Map_MapKeyType_var_dict : forall 'a. 
                                           (Basic_classes.SetType 'a) => 
                                             Map.MapKeyType_class 'a
  val findWithDefault : forall 'k 'v. 
                          (Map.MapKeyType 'k) => 
                            'k -> 'v -> (Map.map 'k 'v) -> 'v
  val toSet : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                  (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val toSetBy : forall 'k 'v. 
                  (('k * 'v) -> ('k * 'v) -> Basic_classes.ordering) -> 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val domainBy : forall 'k 'v. 
                   ('k -> 'k -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                           set 'k
  val domain : forall 'k 'v. 
                 (Map.MapKeyType 'k) (Basic_classes.SetType 'k) => 
                   (Map.map 'k 'v) -> set 'k
  val range : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set 'v
  val rangeBy : forall 'k 'v. 
                  ('v -> 'v -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                          set 'v
  val deleteSwap : forall 'k 'v. 
                     (Map.MapKeyType 'k) => 
                       (Map.map 'k 'v) -> 'k -> Map.map 'k 'v
  val unions : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   (list (Map.map 'k 'v)) -> Map.map 'k 'v
  val map_setElemCompare : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.SetType 'a)
                               (Basic_classes.SetType 'b)
                               (Basic_classes.SetType 'c)
                               (Basic_classes.SetType 'd) (Map.MapKeyType 'b)
                               (Map.MapKeyType 'd) => 
                               ((set ('d * 'c)) -> (set ('b * 'a)) -> 'e) -> 
                               (Map.map 'd 'c) -> (Map.map 'b 'a) -> 'e
  val instance_Basic_classes_SetType_Map_map_dict : forall 'a 'b. 
                                                      (Basic_classes.SetType
                                                       'a)
                                                        (Basic_classes.SetType
                                                         'b)
                                                        (Map.MapKeyType 'a) => 
                                                        Basic_classes.SetType_class 
                                                        (Map.map 'a 'b)
  val either : forall 'a 'b 'c. 
                 ('a -> 'c) -> ('b -> 'c) -> (Either.either 'a 'b) -> 'c
  val Left : forall 'a 'b. 'a -> Either.either 'a 'b
  val Right : forall 'a 'b. 'b -> Either.either 'a 'b
  val eitherEqual : forall 'a 'b. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                        (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                 bool
  val eitherEqualBy : forall 'a 'b. 
                        ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    bool
  val instance_Basic_classes_Eq_Either_either_dict : forall 'a 'b. 
                                                       (Basic_classes.Eq 'a)
                                                         (Basic_classes.Eq 'b) => 
                                                         Basic_classes.Eq_class 
                                                         (Either.either 
                                                         'a 'b)
  val either_setElemCompare : forall 'a 'b 'c 'd. 
                                ('d -> 'b -> Basic_classes.ordering) -> 
                                ('c -> 'a -> Basic_classes.ordering) -> 
                                (Either.either 'd 'c) -> (Either.either 
                                                         'b 'a) -> Basic_classes.ordering
  val instance_Basic_classes_SetType_Either_either_dict : forall 'a 'b. 
                                                            (Basic_classes.SetType
                                                             'a)
                                                              (Basic_classes.SetType
                                                               'b) => 
                                                              Basic_classes.SetType_class 
                                                              (Either.either 
                                                              'a 'b)
  val isLeft : forall 'a 'b. (Either.either 'a 'b) -> bool
  val isRight : forall 'a 'b. (Either.either 'a 'b) -> bool
  val partitionEither : forall 'a 'b. 
                          (list (Either.either 'a 'b)) -> ((list 'a) *
                                                           (list 'b))
  val lefts : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'a
  val rights : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'b
  val BitSeq : (Maybe.maybe nat) -> bool -> (list bool) -> Word.bitSequence
  val bitSeqEq : Word.bitSequence -> Word.bitSequence -> bool
  val instance_Basic_classes_Eq_Word_bitSequence_dict : 
                                                          Basic_classes.Eq_class 
                                                          Word.bitSequence
  val boolListFrombitSeq : nat -> Word.bitSequence -> list bool
  val boolListFrombitSeqAux : forall 'a. nat -> 'a -> (list 'a) -> list 'a
  val bitSeqFromBoolList : (list bool) -> Maybe.maybe Word.bitSequence
  val cleanBitSeq : Word.bitSequence -> Word.bitSequence
  val bitSeqTestBit : Word.bitSequence -> nat -> Maybe.maybe bool
  val bitSeqSetBit : Word.bitSequence -> nat -> bool -> Word.bitSequence
  val resizeBitSeq : 
                       (Maybe.maybe nat) -> Word.bitSequence -> Word.bitSequence
  val bitSeqNot : Word.bitSequence -> Word.bitSequence
  val bitSeqBinop : 
                      (bool -> bool -> bool) -> Word.bitSequence -> Word.bitSequence -> 
                                                                    Word.bitSequence
  val bitSeqBinopAux : 
                         (bool -> bool -> bool) -> bool -> (list bool) -> 
                                                           bool -> (list 
                                                                   bool) -> 
                                                                   list 
                                                                   bool
  val bitSeqAnd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqOr : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqXor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqShiftLeft : Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqArithmeticShiftRight : 
                                     Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqLogicalShiftRight : Word.bitSequence -> nat -> Word.bitSequence
  val integerFromBoolList : (bool * (list bool)) -> Num.integer
  val integerFromBoolListAux : Num.integer -> (list bool) -> Num.integer
  val boolListFromInteger : Num.integer -> (bool * (list bool))
  val boolListFromNatural : (list bool) -> Num.natural -> list bool
  val bitSeqFromInteger : 
                            (Maybe.maybe nat) -> Num.integer -> Word.bitSequence
  val integerFromBitSeq : Word.bitSequence -> Num.integer
  val bitSeqArithUnaryOp : 
                             (Num.integer -> Num.integer) -> Word.bitSequence -> 
                                                             Word.bitSequence
  val bitSeqArithBinOp : 
                           (Num.integer -> Num.integer -> Num.integer) -> 
                           Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqArithBinTest : forall 'a. 
                             (Num.integer -> Num.integer -> 'a) -> Word.bitSequence -> 
                                                                   Word.bitSequence -> 
                                                                   'a
  val bitSeqFromNumeral : numeral -> Word.bitSequence
  val instance_Num_Numeral_Word_bitSequence_dict : 
                                                     Num.Numeral_class 
                                                     Word.bitSequence
  val bitSeqLess : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqLessEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreater : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreaterEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqCompare : 
                        Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Word_bitSequence_dict : 
                                                           Basic_classes.Ord_class 
                                                           Word.bitSequence
  val instance_Basic_classes_SetType_Word_bitSequence_dict : 
                                                               Basic_classes.SetType_class 
                                                               Word.bitSequence
  val bitSeqNegate : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumNegate_Word_bitSequence_dict : 
                                                       Num.NumNegate_class 
                                                       Word.bitSequence
  val bitSeqAdd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumAdd_Word_bitSequence_dict : 
                                                    Num.NumAdd_class 
                                                    Word.bitSequence
  val bitSeqMinus : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMinus_Word_bitSequence_dict : 
                                                      Num.NumMinus_class 
                                                      Word.bitSequence
  val bitSeqSucc : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumSucc_Word_bitSequence_dict : 
                                                     Num.NumSucc_class 
                                                     Word.bitSequence
  val bitSeqPred : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumPred_Word_bitSequence_dict : 
                                                     Num.NumPred_class 
                                                     Word.bitSequence
  val bitSeqMult : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMult_Word_bitSequence_dict : 
                                                     Num.NumMult_class 
                                                     Word.bitSequence
  val bitSeqPow : Word.bitSequence -> nat -> Word.bitSequence
  val instance_Num_NumPow_Word_bitSequence_dict : 
                                                    Num.NumPow_class 
                                                    Word.bitSequence
  val bitSeqDiv : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumIntegerDivision_Word_bitSequence_dict : 
                                                                Num.NumIntegerDivision_class 
                                                                Word.bitSequence
  val instance_Num_NumDivision_Word_bitSequence_dict : 
                                                         Num.NumDivision_class 
                                                         Word.bitSequence
  val bitSeqMod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumRemainder_Word_bitSequence_dict : 
                                                          Num.NumRemainder_class 
                                                          Word.bitSequence
  val bitSeqMin : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqMax : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Basic_classes_OrdMaxMin_Word_bitSequence_dict : 
                                                                 Basic_classes.OrdMaxMin_class 
                                                                 Word.bitSequence
  val lnot : forall 'a. (Word.WordNot 'a) => 'a -> 'a
  val land : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val conjunction : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val lor : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val inclusive_or : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val lxor : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val exclusive_or : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val lsl : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val left_shift : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val lsr : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val logicial_right_shift : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val asr : forall 'a. (Word.WordAsr 'a) => 'a -> nat -> 'a
  val arithmetic_right_shift : forall 'a. 
                                 (Word.WordAsr 'a) => 'a -> nat -> 'a
  val instance_Word_WordNot_Word_bitSequence_dict : 
                                                      Word.WordNot_class 
                                                      Word.bitSequence
  val instance_Word_WordAnd_Word_bitSequence_dict : 
                                                      Word.WordAnd_class 
                                                      Word.bitSequence
  val instance_Word_WordOr_Word_bitSequence_dict : 
                                                     Word.WordOr_class 
                                                     Word.bitSequence
  val instance_Word_WordXor_Word_bitSequence_dict : 
                                                      Word.WordXor_class 
                                                      Word.bitSequence
  val instance_Word_WordLsl_Word_bitSequence_dict : 
                                                      Word.WordLsl_class 
                                                      Word.bitSequence
  val instance_Word_WordLsr_Word_bitSequence_dict : 
                                                      Word.WordLsr_class 
                                                      Word.bitSequence
  val instance_Word_WordAsr_Word_bitSequence_dict : 
                                                      Word.WordAsr_class 
                                                      Word.bitSequence
  val int32Lnot : Num.int32 -> Num.int32
  val instance_Word_WordNot_Num_int32_dict : Word.WordNot_class Num.int32
  val int32Lor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordOr_Num_int32_dict : Word.WordOr_class Num.int32
  val int32Lxor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordXor_Num_int32_dict : Word.WordXor_class Num.int32
  val int32Land : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordAnd_Num_int32_dict : Word.WordAnd_class Num.int32
  val int32Lsl : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsl_Num_int32_dict : Word.WordLsl_class Num.int32
  val int32Lsr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsr_Num_int32_dict : Word.WordLsr_class Num.int32
  val int32Asr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordAsr_Num_int32_dict : Word.WordAsr_class Num.int32
  val int64Lnot : Num.int64 -> Num.int64
  val instance_Word_WordNot_Num_int64_dict : Word.WordNot_class Num.int64
  val int64Lor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordOr_Num_int64_dict : Word.WordOr_class Num.int64
  val int64Lxor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordXor_Num_int64_dict : Word.WordXor_class Num.int64
  val int64Land : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordAnd_Num_int64_dict : Word.WordAnd_class Num.int64
  val int64Lsl : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsl_Num_int64_dict : Word.WordLsl_class Num.int64
  val int64Lsr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsr_Num_int64_dict : Word.WordLsr_class Num.int64
  val int64Asr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordAsr_Num_int64_dict : Word.WordAsr_class Num.int64
  val defaultLnot : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a
  val defaultLand : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLor : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> 'a -> 'a
  val defaultLxor : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLsl : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultLsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultAsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val integerLnot : Num.integer -> Num.integer
  val instance_Word_WordNot_Num_integer_dict : Word.WordNot_class Num.integer
  val integerLor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordOr_Num_integer_dict : Word.WordOr_class Num.integer
  val integerLxor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordXor_Num_integer_dict : Word.WordXor_class Num.integer
  val integerLand : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordAnd_Num_integer_dict : Word.WordAnd_class Num.integer
  val integerLsl : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsl_Num_integer_dict : Word.WordLsl_class Num.integer
  val integerAsr : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsr_Num_integer_dict : Word.WordLsr_class Num.integer
  val instance_Word_WordAsr_Num_integer_dict : Word.WordAsr_class Num.integer
  val intFromBitSeq : Word.bitSequence -> Num.int
  val bitSeqFromInt : Num.int -> Word.bitSequence
  val intLnot : Num.int -> Num.int
  val instance_Word_WordNot_Num_int_dict : Word.WordNot_class Num.int
  val intLor : Num.int -> Num.int -> Num.int
  val instance_Word_WordOr_Num_int_dict : Word.WordOr_class Num.int
  val intLxor : Num.int -> Num.int -> Num.int
  val instance_Word_WordXor_Num_int_dict : Word.WordXor_class Num.int
  val intLand : Num.int -> Num.int -> Num.int
  val instance_Word_WordAnd_Num_int_dict : Word.WordAnd_class Num.int
  val intLsl : Num.int -> nat -> Num.int
  val instance_Word_WordLsl_Num_int_dict : Word.WordLsl_class Num.int
  val intAsr : Num.int -> nat -> Num.int
  val instance_Word_WordAsr_Num_int_dict : Word.WordAsr_class Num.int
  val naturalFromBitSeq : Word.bitSequence -> Num.natural
  val bitSeqFromNatural : 
                            (Maybe.maybe nat) -> Num.natural -> Word.bitSequence
  val naturalLor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordOr_Num_natural_dict : Word.WordOr_class Num.natural
  val naturalLxor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordXor_Num_natural_dict : Word.WordXor_class Num.natural
  val naturalLand : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordAnd_Num_natural_dict : Word.WordAnd_class Num.natural
  val naturalLsl : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsl_Num_natural_dict : Word.WordLsl_class Num.natural
  val naturalAsr : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsr_Num_natural_dict : Word.WordLsr_class Num.natural
  val instance_Word_WordAsr_Num_natural_dict : Word.WordAsr_class Num.natural
  val natFromBitSeq : Word.bitSequence -> nat
  val bitSeqFromNat : nat -> Word.bitSequence
  val natLor : nat -> nat -> nat
  val instance_Word_WordOr_nat_dict : Word.WordOr_class nat
  val natLxor : nat -> nat -> nat
  val instance_Word_WordXor_nat_dict : Word.WordXor_class nat
  val natLand : nat -> nat -> nat
  val instance_Word_WordAnd_nat_dict : Word.WordAnd_class nat
  val natLsl : nat -> nat -> nat
  val instance_Word_WordLsl_nat_dict : Word.WordLsl_class nat
  val natAsr : nat -> nat -> nat
  val instance_Word_WordAsr_nat_dict : Word.WordAsr_class nat

  module Instance_Basic_classes_Eq_var = struct

    val = : forall 'a. 'a -> 'a -> bool
    val <> : forall 'a. 'a -> 'a -> bool

  end

  module Instance_Basic_classes_Eq_Basic_classes_ordering = struct

    val = : Basic_classes.ordering -> Basic_classes.ordering -> bool
    val <> : Basic_classes.ordering -> Basic_classes.ordering -> bool

  end

  module Instance_Basic_classes_OrdMaxMin_var = struct

    val max : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
    val min : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a

  end

  module Instance_Basic_classes_SetType_var = struct

    val setElemCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_bool = struct

    val = : bool -> bool -> bool
    val <> : bool -> bool -> bool

  end

  module Instance_Basic_classes_SetType_bool = struct

    val setElemCompare : bool -> bool -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_char = struct

    val = : char -> char -> bool
    val <> : char -> char -> bool

  end

  module Instance_Basic_classes_Eq_string = struct

    val = : string -> string -> bool
    val <> : string -> string -> bool

  end

  module Instance_Basic_classes_Eq_tup2 = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_Ord_tup2 = struct

    val compare : forall 'a 'b. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                      ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering
    val < : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool
    val > : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val >= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_SetType_tup2 = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup3 = struct

    val = : forall 'a 'b 'c. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <> : forall 'a 'b 'c. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_Ord_tup3 = struct

    val compare : forall 'a 'b 'c. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) => 
                      ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering
    val < : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val > : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val >= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_SetType_tup3 = struct

    val setElemCompare : forall 'a 'b 'c. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c) => 
                             ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup4 = struct

    val = : forall 'a 'b 'c 'd. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <> : forall 'a 'b 'c 'd. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_Ord_tup4 = struct

    val compare : forall 'a 'b 'c 'd. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                      ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> Basic_classes.ordering
    val < : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val > : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val >= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_SetType_tup4 = struct

    val setElemCompare : forall 'a 'b 'c 'd. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd) => 
                             ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                    Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup5 = struct

    val = : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <> : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_Ord_tup5 = struct

    val compare : forall 'a 'b 'c 'd 'e. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) => 
                      ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                  Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val > : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val >= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_SetType_tup5 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e) => 
                             ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                          'd * 'e) -> 
                                                         Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup6 = struct

    val = : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <> : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_Ord_tup6 = struct

    val compare : forall 'a 'b 'c 'd 'e 'f. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                      ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 
                                                        'd * 'e * 'f) -> 
                                                       Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool
    val > : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val >= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_SetType_tup6 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e 'f. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e)
                             (Basic_classes.SetType 'f) => 
                             ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                               'c * 'd * 
                                                               'e * 'f) -> 
                                                              Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Maybe_maybe = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

  module Instance_Basic_classes_SetType_Maybe_maybe = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> 
                                                 Basic_classes.ordering

  end

  module Instance_Basic_classes_Ord_Maybe_maybe = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

  module Instance_Num_Numeral_nat = struct

    val fromNumeral : numeral -> nat

  end

  module Instance_Basic_classes_Eq_nat = struct

    val = : nat -> nat -> bool
    val <> : nat -> nat -> bool

  end

  module Instance_Basic_classes_Ord_nat = struct

    val compare : nat -> nat -> Basic_classes.ordering
    val < : nat -> nat -> bool
    val <= : nat -> nat -> bool
    val > : nat -> nat -> bool
    val >= : nat -> nat -> bool

  end

  module Instance_Basic_classes_SetType_nat = struct

    val setElemCompare : nat -> nat -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_nat = struct

    val + : nat -> nat -> nat

  end

  module Instance_Num_NumMinus_nat = struct

    val - : nat -> nat -> nat

  end

  module Instance_Num_NumSucc_nat = struct

    val succ : nat -> nat

  end

  module Instance_Num_NumPred_nat = struct

    val pred : nat -> nat

  end

  module Instance_Num_NumMult_nat = struct

    val * : nat -> nat -> nat

  end

  module Instance_Num_NumIntegerDivision_nat = struct

    val div : nat -> nat -> nat

  end

  module Instance_Num_NumDivision_nat = struct

    val / : nat -> nat -> nat

  end

  module Instance_Num_NumRemainder_nat = struct

    val mod : nat -> nat -> nat

  end

  module Instance_Num_NumPow_nat = struct

    val ** : nat -> nat -> nat

  end

  module Instance_Basic_classes_OrdMaxMin_nat = struct

    val max : nat -> nat -> nat
    val min : nat -> nat -> nat

  end

  module Instance_Num_Numeral_Num_natural = struct

    val fromNumeral : numeral -> Num.natural

  end

  module Instance_Basic_classes_Eq_Num_natural = struct

    val = : Num.natural -> Num.natural -> bool
    val <> : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_Ord_Num_natural = struct

    val compare : Num.natural -> Num.natural -> Basic_classes.ordering
    val < : Num.natural -> Num.natural -> bool
    val <= : Num.natural -> Num.natural -> bool
    val > : Num.natural -> Num.natural -> bool
    val >= : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_SetType_Num_natural = struct

    val setElemCompare : Num.natural -> Num.natural -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_natural = struct

    val + : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumMinus_Num_natural = struct

    val - : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumSucc_Num_natural = struct

    val succ : Num.natural -> Num.natural

  end

  module Instance_Num_NumPred_Num_natural = struct

    val pred : Num.natural -> Num.natural

  end

  module Instance_Num_NumMult_Num_natural = struct

    val * : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumPow_Num_natural = struct

    val ** : Num.natural -> nat -> Num.natural

  end

  module Instance_Num_NumIntegerDivision_Num_natural = struct

    val div : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumDivision_Num_natural = struct

    val / : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumRemainder_Num_natural = struct

    val mod : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Basic_classes_OrdMaxMin_Num_natural = struct

    val max : Num.natural -> Num.natural -> Num.natural
    val min : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_Numeral_Num_int = struct

    val fromNumeral : numeral -> Num.int

  end

  module Instance_Basic_classes_Eq_Num_int = struct

    val = : Num.int -> Num.int -> bool
    val <> : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_Ord_Num_int = struct

    val compare : Num.int -> Num.int -> Basic_classes.ordering
    val < : Num.int -> Num.int -> bool
    val <= : Num.int -> Num.int -> bool
    val > : Num.int -> Num.int -> bool
    val >= : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_SetType_Num_int = struct

    val setElemCompare : Num.int -> Num.int -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int = struct

    val ~ : Num.int -> Num.int

  end

  module Instance_Num_NumAbs_Num_int = struct

    val abs : Num.int -> Num.int

  end

  module Instance_Num_NumAdd_Num_int = struct

    val + : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumMinus_Num_int = struct

    val - : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumSucc_Num_int = struct

    val succ : Num.int -> Num.int

  end

  module Instance_Num_NumPred_Num_int = struct

    val pred : Num.int -> Num.int

  end

  module Instance_Num_NumMult_Num_int = struct

    val * : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumPow_Num_int = struct

    val ** : Num.int -> nat -> Num.int

  end

  module Instance_Num_NumIntegerDivision_Num_int = struct

    val div : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumDivision_Num_int = struct

    val / : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumRemainder_Num_int = struct

    val mod : Num.int -> Num.int -> Num.int

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int = struct

    val max : Num.int -> Num.int -> Num.int
    val min : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_Numeral_Num_int32 = struct

    val fromNumeral : numeral -> Num.int32

  end

  module Instance_Basic_classes_Eq_Num_int32 = struct

    val = : Num.int32 -> Num.int32 -> bool
    val <> : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int32 = struct

    val compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
    val < : Num.int32 -> Num.int32 -> bool
    val <= : Num.int32 -> Num.int32 -> bool
    val > : Num.int32 -> Num.int32 -> bool
    val >= : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int32 = struct

    val setElemCompare : Num.int32 -> Num.int32 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int32 = struct

    val ~ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAbs_Num_int32 = struct

    val abs : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAdd_Num_int32 = struct

    val + : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumMinus_Num_int32 = struct

    val - : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumSucc_Num_int32 = struct

    val succ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumPred_Num_int32 = struct

    val pred : Num.int32 -> Num.int32

  end

  module Instance_Num_NumMult_Num_int32 = struct

    val * : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumPow_Num_int32 = struct

    val ** : Num.int32 -> nat -> Num.int32

  end

  module Instance_Num_NumIntegerDivision_Num_int32 = struct

    val div : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumDivision_Num_int32 = struct

    val / : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumRemainder_Num_int32 = struct

    val mod : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int32 = struct

    val max : Num.int32 -> Num.int32 -> Num.int32
    val min : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_Numeral_Num_int64 = struct

    val fromNumeral : numeral -> Num.int64

  end

  module Instance_Basic_classes_Eq_Num_int64 = struct

    val = : Num.int64 -> Num.int64 -> bool
    val <> : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int64 = struct

    val compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
    val < : Num.int64 -> Num.int64 -> bool
    val <= : Num.int64 -> Num.int64 -> bool
    val > : Num.int64 -> Num.int64 -> bool
    val >= : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int64 = struct

    val setElemCompare : Num.int64 -> Num.int64 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int64 = struct

    val ~ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAbs_Num_int64 = struct

    val abs : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAdd_Num_int64 = struct

    val + : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumMinus_Num_int64 = struct

    val - : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumSucc_Num_int64 = struct

    val succ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumPred_Num_int64 = struct

    val pred : Num.int64 -> Num.int64

  end

  module Instance_Num_NumMult_Num_int64 = struct

    val * : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumPow_Num_int64 = struct

    val ** : Num.int64 -> nat -> Num.int64

  end

  module Instance_Num_NumIntegerDivision_Num_int64 = struct

    val div : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumDivision_Num_int64 = struct

    val / : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumRemainder_Num_int64 = struct

    val mod : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int64 = struct

    val max : Num.int64 -> Num.int64 -> Num.int64
    val min : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_Numeral_Num_integer = struct

    val fromNumeral : numeral -> Num.integer

  end

  module Instance_Basic_classes_Eq_Num_integer = struct

    val = : Num.integer -> Num.integer -> bool
    val <> : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_Ord_Num_integer = struct

    val compare : Num.integer -> Num.integer -> Basic_classes.ordering
    val < : Num.integer -> Num.integer -> bool
    val <= : Num.integer -> Num.integer -> bool
    val > : Num.integer -> Num.integer -> bool
    val >= : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_SetType_Num_integer = struct

    val setElemCompare : Num.integer -> Num.integer -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_integer = struct

    val ~ : Num.integer -> Num.integer

  end

  module Instance_Num_NumAbs_Num_integer = struct

    val abs : Num.integer -> Num.integer

  end

  module Instance_Num_NumAdd_Num_integer = struct

    val + : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumMinus_Num_integer = struct

    val - : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumSucc_Num_integer = struct

    val succ : Num.integer -> Num.integer

  end

  module Instance_Num_NumPred_Num_integer = struct

    val pred : Num.integer -> Num.integer

  end

  module Instance_Num_NumMult_Num_integer = struct

    val * : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumPow_Num_integer = struct

    val ** : Num.integer -> nat -> Num.integer

  end

  module Instance_Num_NumIntegerDivision_Num_integer = struct

    val div : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumDivision_Num_integer = struct

    val / : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumRemainder_Num_integer = struct

    val mod : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Basic_classes_OrdMaxMin_Num_integer = struct

    val max : Num.integer -> Num.integer -> Num.integer
    val min : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_Numeral_Num_rational = struct

    val fromNumeral : numeral -> Num.rational

  end

  module Instance_Basic_classes_Eq_Num_rational = struct

    val = : Num.rational -> Num.rational -> bool
    val <> : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_Ord_Num_rational = struct

    val compare : Num.rational -> Num.rational -> Basic_classes.ordering
    val < : Num.rational -> Num.rational -> bool
    val <= : Num.rational -> Num.rational -> bool
    val > : Num.rational -> Num.rational -> bool
    val >= : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_SetType_Num_rational = struct

    val setElemCompare : 
                           Num.rational -> Num.rational -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_rational = struct

    val + : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumMinus_Num_rational = struct

    val - : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumNegate_Num_rational = struct

    val ~ : Num.rational -> Num.rational

  end

  module Instance_Num_NumAbs_Num_rational = struct

    val abs : Num.rational -> Num.rational

  end

  module Instance_Num_NumSucc_Num_rational = struct

    val succ : Num.rational -> Num.rational

  end

  module Instance_Num_NumPred_Num_rational = struct

    val pred : Num.rational -> Num.rational

  end

  module Instance_Num_NumMult_Num_rational = struct

    val * : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumDivision_Num_rational = struct

    val / : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumPow_Num_rational = struct

    val ** : Num.rational -> nat -> Num.rational

  end

  module Instance_Basic_classes_OrdMaxMin_Num_rational = struct

    val max : Num.rational -> Num.rational -> Num.rational
    val min : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_Numeral_Num_real = struct

    val fromNumeral : numeral -> Num.real

  end

  module Instance_Basic_classes_Eq_Num_real = struct

    val = : Num.real -> Num.real -> bool
    val <> : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_Ord_Num_real = struct

    val compare : Num.real -> Num.real -> Basic_classes.ordering
    val < : Num.real -> Num.real -> bool
    val <= : Num.real -> Num.real -> bool
    val > : Num.real -> Num.real -> bool
    val >= : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_SetType_Num_real = struct

    val setElemCompare : Num.real -> Num.real -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_real = struct

    val + : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumMinus_Num_real = struct

    val - : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumNegate_Num_real = struct

    val ~ : Num.real -> Num.real

  end

  module Instance_Num_NumAbs_Num_real = struct

    val abs : Num.real -> Num.real

  end

  module Instance_Num_NumSucc_Num_real = struct

    val succ : Num.real -> Num.real

  end

  module Instance_Num_NumPred_Num_real = struct

    val pred : Num.real -> Num.real

  end

  module Instance_Num_NumMult_Num_real = struct

    val * : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumDivision_Num_real = struct

    val / : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumPow_Num_real = struct

    val ** : Num.real -> nat -> Num.real

  end

  module Instance_Basic_classes_OrdMaxMin_Num_real = struct

    val max : Num.real -> Num.real -> Num.real
    val min : Num.real -> Num.real -> Num.real

  end

  module Instance_Basic_classes_Eq_list = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_Ord_list = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (list 'a) -> (list 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_SetType_list = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (list 'a) -> (list 'a) -> Basic_classes.ordering

  end

  module Instance_Show_Show_string = struct

    val show : string -> string

  end

  module Instance_Show_Show_Maybe_maybe = struct

    val show : forall 'a. (Show.Show 'a) => (Maybe.maybe 'a) -> string

  end

  module Instance_Show_Show_list = struct

    val show : forall 'a. (Show.Show 'a) => (list 'a) -> string

  end

  module Instance_Show_Show_tup2 = struct

    val show : forall 'a 'b. 
                 (Show.Show 'a) (Show.Show 'b) => ('a * 'b) -> string

  end

  module Instance_Show_Show_bool = struct

    val show : bool -> string

  end

  module Instance_Basic_classes_Eq_set = struct

    val = : forall 'a. 
              (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool

  end

  module Instance_Basic_classes_Eq_Map_map = struct

    val = : forall 'k 'v. 
              (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
    val <> : forall 'k 'v. 
               (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                 (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool

  end

  module Instance_Map_MapKeyType_var = struct

    val mapKeyCompare : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_SetType_Map_map = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Map.MapKeyType 'a) => 
                             (Map.map 'a 'b) -> (Map.map 'a 'b) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Either_either = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool

  end

  module Instance_Basic_classes_SetType_Either_either = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                      Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Word_bitSequence = struct

    val = : Word.bitSequence -> Word.bitSequence -> bool
    val <> : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Num_Numeral_Word_bitSequence = struct

    val fromNumeral : numeral -> Word.bitSequence

  end

  module Instance_Basic_classes_Ord_Word_bitSequence = struct

    val compare : 
                    Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
    val < : Word.bitSequence -> Word.bitSequence -> bool
    val <= : Word.bitSequence -> Word.bitSequence -> bool
    val > : Word.bitSequence -> Word.bitSequence -> bool
    val >= : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Basic_classes_SetType_Word_bitSequence = struct

    val setElemCompare : 
                           Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Word_bitSequence = struct

    val ~ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumAdd_Word_bitSequence = struct

    val + : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMinus_Word_bitSequence = struct

    val - : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumSucc_Word_bitSequence = struct

    val succ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPred_Word_bitSequence = struct

    val pred : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMult_Word_bitSequence = struct

    val * : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPow_Word_bitSequence = struct

    val ** : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Num_NumIntegerDivision_Word_bitSequence = struct

    val div : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumDivision_Word_bitSequence = struct

    val / : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumRemainder_Word_bitSequence = struct

    val mod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Basic_classes_OrdMaxMin_Word_bitSequence = struct

    val max : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
    val min : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordNot_Word_bitSequence = struct

    val lnot : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordAnd_Word_bitSequence = struct

    val land : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordOr_Word_bitSequence = struct

    val lor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordXor_Word_bitSequence = struct

    val lxor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordLsl_Word_bitSequence = struct

    val lsl : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordLsr_Word_bitSequence = struct

    val lsr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordAsr_Word_bitSequence = struct

    val asr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordNot_Num_int32 = struct

    val lnot : Num.int32 -> Num.int32

  end

  module Instance_Word_WordOr_Num_int32 = struct

    val lor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordXor_Num_int32 = struct

    val lxor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordAnd_Num_int32 = struct

    val land : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordLsl_Num_int32 = struct

    val lsl : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordLsr_Num_int32 = struct

    val lsr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordAsr_Num_int32 = struct

    val asr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordNot_Num_int64 = struct

    val lnot : Num.int64 -> Num.int64

  end

  module Instance_Word_WordOr_Num_int64 = struct

    val lor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordXor_Num_int64 = struct

    val lxor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordAnd_Num_int64 = struct

    val land : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordLsl_Num_int64 = struct

    val lsl : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordLsr_Num_int64 = struct

    val lsr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordAsr_Num_int64 = struct

    val asr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordNot_Num_integer = struct

    val lnot : Num.integer -> Num.integer

  end

  module Instance_Word_WordOr_Num_integer = struct

    val lor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordXor_Num_integer = struct

    val lxor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordAnd_Num_integer = struct

    val land : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordLsl_Num_integer = struct

    val lsl : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordLsr_Num_integer = struct

    val lsr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordAsr_Num_integer = struct

    val asr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordNot_Num_int = struct

    val lnot : Num.int -> Num.int

  end

  module Instance_Word_WordOr_Num_int = struct

    val lor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordXor_Num_int = struct

    val lxor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordAnd_Num_int = struct

    val land : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordLsl_Num_int = struct

    val lsl : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordAsr_Num_int = struct

    val asr : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordOr_Num_natural = struct

    val lor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordXor_Num_natural = struct

    val lxor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordAnd_Num_natural = struct

    val land : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordLsl_Num_natural = struct

    val lsl : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordLsr_Num_natural = struct

    val lsr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordAsr_Num_natural = struct

    val asr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordOr_nat = struct

    val lor : nat -> nat -> nat

  end

  module Instance_Word_WordXor_nat = struct

    val lxor : nat -> nat -> nat

  end

  module Instance_Word_WordAnd_nat = struct

    val land : nat -> nat -> nat

  end

  module Instance_Word_WordLsl_nat = struct

    val lsl : nat -> nat -> nat

  end

  module Instance_Word_WordAsr_nat = struct

    val asr : nat -> nat -> nat

  end

end

module List = struct

  val map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val :: : forall 'a. 'a -> (list 'a) -> list 'a
  val cons : forall 'a. 'a -> (list 'a) -> list 'a
  val null : forall 'a. (list 'a) -> bool
  val length : forall 'a. (list 'a) -> nat
  val listEqual : forall 'a. 
                    (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val listEqualBy : forall 'a. 
                      ('a -> 'a -> bool) -> (list 'a) -> (list 'a) -> bool
  val instance_Basic_classes_Eq_list_dict : forall 'a. 
                                              (Basic_classes.Eq 'a) => 
                                                Basic_classes.Eq_class 
                                                (list 'a)
  val lexicographicCompare : forall 'a. 
                               (Basic_classes.Ord 'a) => 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicCompareBy : forall 'a. 
                                 ('a -> 'a -> Basic_classes.ordering) -> 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicLess : forall 'a. 
                            (Basic_classes.Ord 'a) => 
                              (list 'a) -> (list 'a) -> bool
  val lexicographicLessBy : forall 'a. 
                              ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                    (list 'a) -> (list 'a) -> 
                                                                 bool
  val lexicographicLessEq : forall 'a. 
                              (Basic_classes.Ord 'a) => 
                                (list 'a) -> (list 'a) -> bool
  val lexicographicLessEqBy : forall 'a. 
                                ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                      (list 'a) -> (list 'a) -> 
                                                                   bool
  val instance_Basic_classes_Ord_list_dict : forall 'a. 
                                               (Basic_classes.Ord 'a) => 
                                                 Basic_classes.Ord_class 
                                                 (list 'a)
  val ++ : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val append : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val snoc : forall 'a. 'a -> (list 'a) -> list 'a
  val reverseAppend : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val reverse : forall 'a. (list 'a) -> list 'a
  val map_tr : forall 'a 'b. (list 'b) -> ('a -> 'b) -> (list 'a) -> list 'b
  val count_map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> nat -> list 'b
  val reverseMap : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val foldl : forall 'a 'b. ('a -> 'b -> 'a) -> 'a -> (list 'b) -> 'a
  val foldr : forall 'a 'b. ('a -> 'b -> 'b) -> 'b -> (list 'a) -> 'b
  val concat : forall 'a. (list (list 'a)) -> list 'a
  val concatMap : forall 'a 'b. ('a -> list 'b) -> (list 'a) -> list 'b
  val all : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val any : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val dest_init : forall 'a. (list 'a) -> Maybe.maybe ((list 'a) * 'a)
  val dest_init_aux : forall 'a. 
                        (list 'a) -> 'a -> (list 'a) -> ((list 'a) * 'a)
  val index : forall 'a. (list 'a) -> nat -> Maybe.maybe 'a
  val findIndices : forall 'a. ('a -> bool) -> (list 'a) -> list nat
  val findIndices_aux : forall 'a. 
                          nat -> ('a -> bool) -> (list 'a) -> list nat
  val findIndex : forall 'a. ('a -> bool) -> (list 'a) -> Maybe.maybe nat
  val elemIndices : forall 'a. 
                      (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list nat
  val elemIndex : forall 'a. 
                    (Basic_classes.Eq 'a) => 
                      'a -> (list 'a) -> Maybe.maybe nat
  val genlist : forall 'a. (nat -> 'a) -> nat -> list 'a
  val replicate : forall 'a. nat -> 'a -> list 'a
  val splitAtAcc : forall 'a. 
                     (list 'a) -> nat -> (list 'a) -> ((list 'a) * (list 'a))
  val splitAt : forall 'a. nat -> (list 'a) -> ((list 'a) * (list 'a))
  val take : forall 'a. nat -> (list 'a) -> list 'a
  val drop : forall 'a. nat -> (list 'a) -> list 'a
  val splitWhile_tr : forall 'a. 
                        ('a -> bool) -> (list 'a) -> (list 'a) -> ((list 'a)
                                                                   *
                                                                   (list 'a))
  val splitWhile : forall 'a. 
                     ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val takeWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val dropWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val isPrefixOf : forall 'a. 
                     (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val update : forall 'a. (list 'a) -> nat -> 'a -> list 'a
  val elem : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> bool
  val elemBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> bool
  val find : forall 'a. ('a -> bool) -> (list 'a) -> Maybe.maybe 'a
  val lookup : forall 'a 'b. 
                 (Basic_classes.Eq 'a) => 
                   'a -> (list ('a * 'b)) -> Maybe.maybe 'b
  val lookupBy : forall 'a 'b. 
                   ('a -> 'a -> bool) -> 'a -> (list ('a * 'b)) -> Maybe.maybe 
                                                                   'b
  val filter : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val partition : forall 'a. 
                    ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val reversePartition : forall 'a. 
                           ('a -> bool) -> (list 'a) -> ((list 'a) *
                                                         (list 'a))
  val deleteFirst : forall 'a. 
                      ('a -> bool) -> (list 'a) -> Maybe.maybe (list 'a)
  val delete : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list 'a
  val deleteBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> list 'a
  val zip : forall 'a 'b. (list 'a) -> (list 'b) -> list ('a * 'b)
  val unzip : forall 'a 'b. (list ('a * 'b)) -> ((list 'a) * (list 'b))
  val instance_Basic_classes_SetType_list_dict : forall 'a. 
                                                   (Basic_classes.SetType 'a) => 
                                                     Basic_classes.SetType_class 
                                                     (list 'a)
  val allDistinct : forall 'a. (Basic_classes.Eq 'a) => (list 'a) -> bool
  val mapMaybe : forall 'a 'b. ('a -> Maybe.maybe 'b) -> (list 'a) -> list 'b
  val mapi : forall 'a 'b. (nat -> 'a -> 'b) -> (list 'a) -> list 'b
  val mapiAux : forall 'a 'b. 
                  (nat -> 'b -> 'a) -> nat -> (list 'b) -> list 'a
  val deletes : forall 'a. 
                  (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> list 'a
  val catMaybes : forall 'a. (list (Maybe.maybe 'a)) -> list 'a

  module Instance_Basic_classes_Eq_list = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_Ord_list = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (list 'a) -> (list 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_SetType_list = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (list 'a) -> (list 'a) -> Basic_classes.ordering

  end

end

module Set = struct

  val map : forall 'a 'b. 
              (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                ('a -> 'b) -> (set 'a) -> set 'b
  val null : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> bool
  val all : forall 'a. 
              (Basic_classes.SetType 'a) => ('a -> bool) -> (set 'a) -> bool
  val any : forall 'a. 
              (Basic_classes.SetType 'a) => ('a -> bool) -> (set 'a) -> bool
  val member : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val filter : forall 'a. 
                 (Basic_classes.SetType 'a) => 
                   ('a -> bool) -> (set 'a) -> set 'a
  val partition : forall 'a. 
                    (Basic_classes.SetType 'a) => 
                      ('a -> bool) -> (set 'a) -> ((set 'a) * (set 'a))
  val delete : forall 'a. 
                 (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                   'a -> (set 'a) -> set 'a
  val deleteBy : forall 'a. 
                   (Basic_classes.SetType 'a) => 
                     ('a -> 'a -> bool) -> 'a -> (set 'a) -> set 'a
  val split : forall 'a. 
                (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                  'a -> (set 'a) -> ((set 'a) * (set 'a))
  val mapMaybe : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                     ('a -> Maybe.maybe 'b) -> (set 'a) -> set 'b
  val size : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> nat
  val setEqualBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                             (set 'a) -> 
                                                             bool
  val setEqual : forall 'a. 
                   (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val instance_Basic_classes_Eq_set_dict : forall 'a. 
                                             (Basic_classes.SetType 'a) => 
                                               Basic_classes.Eq_class 
                                               (set 'a)
  val empty : forall 'a. (Basic_classes.SetType 'a) => set 'a
  val emptyBy : forall 'a. ('a -> 'a -> Basic_classes.ordering) -> set 'a
  val IN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val memberBy : forall 'a. 
                   ('a -> 'a -> Basic_classes.ordering) -> 'a -> (set 'a) -> 
                                                                 bool
  val NIN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val notMember : forall 'a. 
                    (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val singletonBy : forall 'a. 
                      ('a -> 'a -> Basic_classes.ordering) -> 'a -> set 'a
  val singleton : forall 'a. (Basic_classes.SetType 'a) => 'a -> set 'a
  val set_case : forall 'a 'b. 
                   (Basic_classes.SetType 'a) => 
                     (set 'a) -> 'b -> ('a -> 'b) -> 'b -> 'b
  val unionBy : forall 'a. 
                  ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                          (set 'a) -> 
                                                          set 'a
  val union : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val insert : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> set 'a
  val splitMember : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                        'a -> (set 'a) -> ((set 'a) * bool * (set 'a))
  val isSubsetOfBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               bool
  val isProperSubsetOfBy : forall 'a. 
                             ('a -> 'a -> Basic_classes.ordering) -> 
                             (set 'a) -> (set 'a) -> bool
  val isSubsetOf : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> bool
  val isProperSubsetOf : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (set 'a) -> (set 'a) -> bool
  val subset : forall 'a. 
                 (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val bigunion : forall 'a. 
                   (Basic_classes.SetType 'a) => (set (set 'a)) -> set 'a
  val bigunionBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set (set 'a)) -> 
                                                             set 'a
  val bigintersection : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            (set (set 'a)) -> set 'a
  val differenceBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               set 'a
  val difference : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> set 'a
  val \ : forall 'a. 
            (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val intersection : forall 'a. 
                       (Basic_classes.SetType 'a) => 
                         (set 'a) -> (set 'a) -> set 'a
  val intersectionBy : forall 'a. 
                         ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                                 (set 'a) -> 
                                                                 set 
                                                                 'a
  val inter : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val mapBy : forall 'a 'b. 
                ('b -> 'b -> Basic_classes.ordering) -> ('a -> 'b) -> 
                                                        (set 'a) -> set 'b
  val bigunionMap : forall 'a 'b. 
                      (Basic_classes.SetType 'a)
                        (Basic_classes.SetType 'b) => 
                        ('a -> set 'b) -> (set 'a) -> set 'b
  val bigunionMapBy : forall 'a 'b. 
                        ('b -> 'b -> Basic_classes.ordering) -> ('a -> 
                                                                set 'b) -> 
                                                                (set 'a) -> 
                                                                set 'b
  val removeMaybe : forall 'a. 
                      (Basic_classes.SetType 'a) => 
                        (set (Maybe.maybe 'a)) -> set 'a
  val findMin : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val findMax : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val fromList : forall 'a. (Basic_classes.SetType 'a) => (list 'a) -> set 'a
  val fromListBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (list 'a) -> 
                                                             set 'a
  val sigma : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val sigmaBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val cross : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val crossBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val finite : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> bool
  val leastFixedPoint : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            nat -> ((set 'a) -> set 'a) -> (set 'a) -> set 'a

  module Instance_Basic_classes_Eq_set = struct

    val = : forall 'a. 
              (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool

  end

end

module Function_extra = struct

  val THE : forall 'a. ('a -> bool) -> Maybe.maybe 'a

end

module Maybe_extra = struct

  val fromJust : forall 'a. (Maybe.maybe 'a) -> 'a

end

module Map_extra = struct

  val find : forall 'k 'v. (Map.MapKeyType 'k) => 'k -> (Map.map 'k 'v) -> 'v
  val mapMaybe : forall 'a 'b 'c. 
                   (Map.MapKeyType 'a) => 
                     ('a -> 'b -> Maybe.maybe 'c) -> (Map.map 'a 'b) -> 
                                                     Map.map 'a 'c
  val fold : forall 'k 'v 'r. 
               (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                 (Basic_classes.SetType 'v) => 
                 ('k -> 'v -> 'r -> 'r) -> (Map.map 'k 'v) -> 'r -> 'r
  val fromSet : forall 'k 'v. 
                  (Map.MapKeyType 'k) => 
                    ('k -> 'v) -> (set 'k) -> Map.map 'k 'v
  val toList : forall 'k 'v. 
                 (Map.MapKeyType 'k) => (Map.map 'k 'v) -> list ('k * 'v)

end

module Num_extra = struct

  val naturalOfString : string -> Num.natural
  val integerOfString : string -> Num.integer
  val integerOfChar : char -> Num.integer
  val integerOfStringHelper : (list char) -> Num.integer
  val integerDiv_t : Num.integer -> Num.integer -> Num.integer
  val integerRem_t : Num.integer -> Num.integer -> Num.integer
  val integerRem_f : Num.integer -> Num.integer -> Num.integer

end

module Set_extra = struct

  val toList : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> list 'a
  val choose : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> 'a
  val chooseAndSplit : forall 'a. 
                         (Basic_classes.SetType 'a)
                           (Basic_classes.Ord 'a) => 
                           (set 'a) -> Maybe.maybe ((set 'a) * 'a * (set 'a))
  val universal : forall 'a. (Basic_classes.SetType 'a) => set 'a
  val toOrderedListBy : forall 'a. ('a -> 'a -> bool) -> (set 'a) -> list 'a
  val toOrderedList : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                          (set 'a) -> list 'a
  val setCompareBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               Basic_classes.ordering
  val setCompare : forall 'a. 
                     (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                       (set 'a) -> (set 'a) -> Basic_classes.ordering
  val instance_Basic_classes_SetType_set_dict : forall 'a. 
                                                  (Basic_classes.SetType 'a) => 
                                                    Basic_classes.SetType_class 
                                                    (set 'a)
  val leastFixedPointUnbounded : forall 'a. 
                                   (Basic_classes.SetType 'a) => 
                                     ((set 'a) -> set 'a) -> (set 'a) -> 
                                                             set 'a

  module Instance_Basic_classes_SetType_set = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (set 'a) -> (set 'a) -> Basic_classes.ordering

  end

end

module Set_helpers = struct

  val fold : forall 'a 'b. ('a -> 'b -> 'b) -> (set 'a) -> 'b -> 'b

end

module List_extra = struct

  val head : forall 'a. (list 'a) -> 'a
  val tail : forall 'a. (list 'a) -> list 'a
  val last : forall 'a. (list 'a) -> 'a
  val init : forall 'a. (list 'a) -> list 'a
  val foldl1 : forall 'a. ('a -> 'a -> 'a) -> (list 'a) -> 'a
  val foldr1 : forall 'a. ('a -> 'a -> 'a) -> (list 'a) -> 'a
  val nth : forall 'a. (list 'a) -> nat -> 'a
  val findNonPure : forall 'a. ('a -> bool) -> (list 'a) -> 'a
  val zipSameLength : forall 'a 'b. (list 'a) -> (list 'b) -> list ('a * 'b)
  val unfoldr : forall 'a 'b. ('a -> Maybe.maybe ('b * 'a)) -> 'a -> list 'b

end

module String_extra = struct

  val nth : string -> nat -> char
  val ord : char -> nat
  val chr : nat -> char
  val stringFromNatHelper : nat -> (list char) -> list char
  val stringFromNat : nat -> string
  val stringFromNaturalHelper : Num.natural -> (list char) -> list char
  val stringFromNatural : Num.natural -> string
  val stringFromInt : Num.int -> string
  val stringFromInteger : Num.integer -> string
  val stringConcat : (list string) -> string
  val stringCompare : string -> string -> Basic_classes.ordering
  val stringLess : string -> string -> bool
  val stringLessEq : string -> string -> bool
  val stringGreater : string -> string -> bool
  val stringGreaterEq : string -> string -> bool
  val instance_Basic_classes_Ord_string_dict : Basic_classes.Ord_class string

  module Instance_Basic_classes_Ord_string = struct

    val compare : string -> string -> Basic_classes.ordering
    val < : string -> string -> bool
    val <= : string -> string -> bool
    val > : string -> string -> bool
    val >= : string -> string -> bool

  end

end

module Assert_extra = struct

  val failwith : forall 'a. string -> 'a
  val fail : forall 'a. 'a
  val ensure : bool -> string -> unit

end

module Show_extra = struct

  val instance_Show_Show_nat_dict : Show.Show_class nat
  val instance_Show_Show_Num_natural_dict : Show.Show_class Num.natural
  val instance_Show_Show_Num_int_dict : Show.Show_class Num.int
  val instance_Show_Show_Num_integer_dict : Show.Show_class Num.integer
  val stringFromSet : forall 'a. 
                        (Basic_classes.SetType 'a) => 
                          ('a -> string) -> (set 'a) -> string
  val stringFromRelation : forall 'a. 
                             (Basic_classes.Eq 'a)
                               (Basic_classes.SetType 'a) => 
                               (('a * 'a) -> string) -> (set ('a * 'a)) -> 
                                                        string
  val instance_Show_Show_set_dict : forall 'a. 
                                      (Show.Show 'a)
                                        (Basic_classes.SetType 'a) => 
                                        Show.Show_class (set 'a)

  module Instance_Show_Show_nat = struct

    val show : nat -> string

  end

  module Instance_Show_Show_Num_natural = struct

    val show : Num.natural -> string

  end

  module Instance_Show_Show_Num_int = struct

    val show : Num.int -> string

  end

  module Instance_Show_Show_Num_integer = struct

    val show : Num.integer -> string

  end

  module Instance_Show_Show_set = struct

    val show : forall 'a. 
                 (Show.Show 'a) (Basic_classes.SetType 'a) => 
                   (set 'a) -> string

  end

end

module Machine_word = struct
  type mword 'a
  class Size
  type Size_class 'a = {
      val size_method : forall 'a. (Machine_word.Size_class 'a) -> nat

  }
  type itself 'a
  type ty1
  type ty2
  type ty3
  type ty4
  type ty5
  type ty6
  type ty7
  type ty8
  type ty9
  type ty10
  type ty11
  type ty12
  type ty13
  type ty14
  type ty15
  type ty16
  type ty17
  type ty18
  type ty19
  type ty20
  type ty21
  type ty22
  type ty23
  type ty24
  type ty25
  type ty26
  type ty27
  type ty28
  type ty29
  type ty30
  type ty31
  type ty32
  type ty33
  type ty34
  type ty35
  type ty36
  type ty37
  type ty38
  type ty39
  type ty40
  type ty41
  type ty42
  type ty43
  type ty44
  type ty45
  type ty46
  type ty47
  type ty48
  type ty49
  type ty50
  type ty51
  type ty52
  type ty53
  type ty54
  type ty55
  type ty56
  type ty57
  type ty58
  type ty59
  type ty60
  type ty61
  type ty62
  type ty63
  type ty64
  type ty65
  type ty66
  type ty67
  type ty68
  type ty69
  type ty70
  type ty71
  type ty72
  type ty73
  type ty74
  type ty75
  type ty76
  type ty77
  type ty78
  type ty79
  type ty80
  type ty81
  type ty82
  type ty83
  type ty84
  type ty85
  type ty86
  type ty87
  type ty88
  type ty89
  type ty90
  type ty91
  type ty92
  type ty93
  type ty94
  type ty95
  type ty96
  type ty97
  type ty98
  type ty99
  type ty100
  type ty101
  type ty102
  type ty103
  type ty104
  type ty105
  type ty106
  type ty107
  type ty108
  type ty109
  type ty110
  type ty111
  type ty112
  type ty113
  type ty114
  type ty115
  type ty116
  type ty117
  type ty118
  type ty119
  type ty120
  type ty121
  type ty122
  type ty123
  type ty124
  type ty125
  type ty126
  type ty127
  type ty128
  type ty129
  type ty130
  type ty131
  type ty132
  type ty133
  type ty134
  type ty135
  type ty136
  type ty137
  type ty138
  type ty139
  type ty140
  type ty141
  type ty142
  type ty143
  type ty144
  type ty145
  type ty146
  type ty147
  type ty148
  type ty149
  type ty150
  type ty151
  type ty152
  type ty153
  type ty154
  type ty155
  type ty156
  type ty157
  type ty158
  type ty159
  type ty160
  type ty161
  type ty162
  type ty163
  type ty164
  type ty165
  type ty166
  type ty167
  type ty168
  type ty169
  type ty170
  type ty171
  type ty172
  type ty173
  type ty174
  type ty175
  type ty176
  type ty177
  type ty178
  type ty179
  type ty180
  type ty181
  type ty182
  type ty183
  type ty184
  type ty185
  type ty186
  type ty187
  type ty188
  type ty189
  type ty190
  type ty191
  type ty192
  type ty193
  type ty194
  type ty195
  type ty196
  type ty197
  type ty198
  type ty199
  type ty200
  type ty201
  type ty202
  type ty203
  type ty204
  type ty205
  type ty206
  type ty207
  type ty208
  type ty209
  type ty210
  type ty211
  type ty212
  type ty213
  type ty214
  type ty215
  type ty216
  type ty217
  type ty218
  type ty219
  type ty220
  type ty221
  type ty222
  type ty223
  type ty224
  type ty225
  type ty226
  type ty227
  type ty228
  type ty229
  type ty230
  type ty231
  type ty232
  type ty233
  type ty234
  type ty235
  type ty236
  type ty237
  type ty238
  type ty239
  type ty240
  type ty241
  type ty242
  type ty243
  type ty244
  type ty245
  type ty246
  type ty247
  type ty248
  type ty249
  type ty250
  type ty251
  type ty252
  type ty253
  type ty254
  type ty255
  type ty256
  type ty257

  val plus : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val minus : forall 'a. 
                (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                           Machine_word.mword 'a
  val modulo : forall 'a. 
                 (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                            Machine_word.mword 'a
  val size : forall 'a. (Machine_word.Size 'a) => nat
  val native_size : forall 'a. nat
  val the_value : forall 'a. Machine_word.itself 'a
  val ocaml_inject : forall 'a. (nat * Num.natural) -> Machine_word.mword 'a
  val size_itself : forall 'a. 
                      (Machine_word.Size 'a) => 
                        (Machine_word.itself 'a) -> nat
  val instance_Machine_word_Size_Machine_word_ty1_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty1
  val instance_Machine_word_Size_Machine_word_ty2_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty2
  val instance_Machine_word_Size_Machine_word_ty3_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty3
  val instance_Machine_word_Size_Machine_word_ty4_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty4
  val instance_Machine_word_Size_Machine_word_ty5_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty5
  val instance_Machine_word_Size_Machine_word_ty6_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty6
  val instance_Machine_word_Size_Machine_word_ty7_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty7
  val instance_Machine_word_Size_Machine_word_ty8_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty8
  val instance_Machine_word_Size_Machine_word_ty9_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty9
  val instance_Machine_word_Size_Machine_word_ty10_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty10
  val instance_Machine_word_Size_Machine_word_ty11_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty11
  val instance_Machine_word_Size_Machine_word_ty12_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty12
  val instance_Machine_word_Size_Machine_word_ty13_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty13
  val instance_Machine_word_Size_Machine_word_ty14_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty14
  val instance_Machine_word_Size_Machine_word_ty15_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty15
  val instance_Machine_word_Size_Machine_word_ty16_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty16
  val instance_Machine_word_Size_Machine_word_ty17_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty17
  val instance_Machine_word_Size_Machine_word_ty18_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty18
  val instance_Machine_word_Size_Machine_word_ty19_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty19
  val instance_Machine_word_Size_Machine_word_ty20_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty20
  val instance_Machine_word_Size_Machine_word_ty21_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty21
  val instance_Machine_word_Size_Machine_word_ty22_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty22
  val instance_Machine_word_Size_Machine_word_ty23_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty23
  val instance_Machine_word_Size_Machine_word_ty24_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty24
  val instance_Machine_word_Size_Machine_word_ty25_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty25
  val instance_Machine_word_Size_Machine_word_ty26_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty26
  val instance_Machine_word_Size_Machine_word_ty27_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty27
  val instance_Machine_word_Size_Machine_word_ty28_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty28
  val instance_Machine_word_Size_Machine_word_ty29_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty29
  val instance_Machine_word_Size_Machine_word_ty30_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty30
  val instance_Machine_word_Size_Machine_word_ty31_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty31
  val instance_Machine_word_Size_Machine_word_ty32_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty32
  val instance_Machine_word_Size_Machine_word_ty33_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty33
  val instance_Machine_word_Size_Machine_word_ty34_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty34
  val instance_Machine_word_Size_Machine_word_ty35_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty35
  val instance_Machine_word_Size_Machine_word_ty36_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty36
  val instance_Machine_word_Size_Machine_word_ty37_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty37
  val instance_Machine_word_Size_Machine_word_ty38_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty38
  val instance_Machine_word_Size_Machine_word_ty39_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty39
  val instance_Machine_word_Size_Machine_word_ty40_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty40
  val instance_Machine_word_Size_Machine_word_ty41_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty41
  val instance_Machine_word_Size_Machine_word_ty42_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty42
  val instance_Machine_word_Size_Machine_word_ty43_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty43
  val instance_Machine_word_Size_Machine_word_ty44_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty44
  val instance_Machine_word_Size_Machine_word_ty45_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty45
  val instance_Machine_word_Size_Machine_word_ty46_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty46
  val instance_Machine_word_Size_Machine_word_ty47_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty47
  val instance_Machine_word_Size_Machine_word_ty48_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty48
  val instance_Machine_word_Size_Machine_word_ty49_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty49
  val instance_Machine_word_Size_Machine_word_ty50_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty50
  val instance_Machine_word_Size_Machine_word_ty51_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty51
  val instance_Machine_word_Size_Machine_word_ty52_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty52
  val instance_Machine_word_Size_Machine_word_ty53_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty53
  val instance_Machine_word_Size_Machine_word_ty54_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty54
  val instance_Machine_word_Size_Machine_word_ty55_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty55
  val instance_Machine_word_Size_Machine_word_ty56_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty56
  val instance_Machine_word_Size_Machine_word_ty57_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty57
  val instance_Machine_word_Size_Machine_word_ty58_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty58
  val instance_Machine_word_Size_Machine_word_ty59_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty59
  val instance_Machine_word_Size_Machine_word_ty60_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty60
  val instance_Machine_word_Size_Machine_word_ty61_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty61
  val instance_Machine_word_Size_Machine_word_ty62_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty62
  val instance_Machine_word_Size_Machine_word_ty63_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty63
  val instance_Machine_word_Size_Machine_word_ty64_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty64
  val instance_Machine_word_Size_Machine_word_ty65_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty65
  val instance_Machine_word_Size_Machine_word_ty66_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty66
  val instance_Machine_word_Size_Machine_word_ty67_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty67
  val instance_Machine_word_Size_Machine_word_ty68_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty68
  val instance_Machine_word_Size_Machine_word_ty69_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty69
  val instance_Machine_word_Size_Machine_word_ty70_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty70
  val instance_Machine_word_Size_Machine_word_ty71_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty71
  val instance_Machine_word_Size_Machine_word_ty72_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty72
  val instance_Machine_word_Size_Machine_word_ty73_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty73
  val instance_Machine_word_Size_Machine_word_ty74_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty74
  val instance_Machine_word_Size_Machine_word_ty75_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty75
  val instance_Machine_word_Size_Machine_word_ty76_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty76
  val instance_Machine_word_Size_Machine_word_ty77_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty77
  val instance_Machine_word_Size_Machine_word_ty78_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty78
  val instance_Machine_word_Size_Machine_word_ty79_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty79
  val instance_Machine_word_Size_Machine_word_ty80_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty80
  val instance_Machine_word_Size_Machine_word_ty81_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty81
  val instance_Machine_word_Size_Machine_word_ty82_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty82
  val instance_Machine_word_Size_Machine_word_ty83_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty83
  val instance_Machine_word_Size_Machine_word_ty84_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty84
  val instance_Machine_word_Size_Machine_word_ty85_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty85
  val instance_Machine_word_Size_Machine_word_ty86_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty86
  val instance_Machine_word_Size_Machine_word_ty87_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty87
  val instance_Machine_word_Size_Machine_word_ty88_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty88
  val instance_Machine_word_Size_Machine_word_ty89_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty89
  val instance_Machine_word_Size_Machine_word_ty90_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty90
  val instance_Machine_word_Size_Machine_word_ty91_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty91
  val instance_Machine_word_Size_Machine_word_ty92_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty92
  val instance_Machine_word_Size_Machine_word_ty93_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty93
  val instance_Machine_word_Size_Machine_word_ty94_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty94
  val instance_Machine_word_Size_Machine_word_ty95_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty95
  val instance_Machine_word_Size_Machine_word_ty96_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty96
  val instance_Machine_word_Size_Machine_word_ty97_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty97
  val instance_Machine_word_Size_Machine_word_ty98_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty98
  val instance_Machine_word_Size_Machine_word_ty99_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty99
  val instance_Machine_word_Size_Machine_word_ty100_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty100
  val instance_Machine_word_Size_Machine_word_ty101_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty101
  val instance_Machine_word_Size_Machine_word_ty102_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty102
  val instance_Machine_word_Size_Machine_word_ty103_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty103
  val instance_Machine_word_Size_Machine_word_ty104_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty104
  val instance_Machine_word_Size_Machine_word_ty105_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty105
  val instance_Machine_word_Size_Machine_word_ty106_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty106
  val instance_Machine_word_Size_Machine_word_ty107_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty107
  val instance_Machine_word_Size_Machine_word_ty108_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty108
  val instance_Machine_word_Size_Machine_word_ty109_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty109
  val instance_Machine_word_Size_Machine_word_ty110_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty110
  val instance_Machine_word_Size_Machine_word_ty111_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty111
  val instance_Machine_word_Size_Machine_word_ty112_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty112
  val instance_Machine_word_Size_Machine_word_ty113_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty113
  val instance_Machine_word_Size_Machine_word_ty114_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty114
  val instance_Machine_word_Size_Machine_word_ty115_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty115
  val instance_Machine_word_Size_Machine_word_ty116_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty116
  val instance_Machine_word_Size_Machine_word_ty117_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty117
  val instance_Machine_word_Size_Machine_word_ty118_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty118
  val instance_Machine_word_Size_Machine_word_ty119_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty119
  val instance_Machine_word_Size_Machine_word_ty120_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty120
  val instance_Machine_word_Size_Machine_word_ty121_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty121
  val instance_Machine_word_Size_Machine_word_ty122_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty122
  val instance_Machine_word_Size_Machine_word_ty123_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty123
  val instance_Machine_word_Size_Machine_word_ty124_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty124
  val instance_Machine_word_Size_Machine_word_ty125_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty125
  val instance_Machine_word_Size_Machine_word_ty126_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty126
  val instance_Machine_word_Size_Machine_word_ty127_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty127
  val instance_Machine_word_Size_Machine_word_ty128_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty128
  val instance_Machine_word_Size_Machine_word_ty129_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty129
  val instance_Machine_word_Size_Machine_word_ty130_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty130
  val instance_Machine_word_Size_Machine_word_ty131_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty131
  val instance_Machine_word_Size_Machine_word_ty132_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty132
  val instance_Machine_word_Size_Machine_word_ty133_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty133
  val instance_Machine_word_Size_Machine_word_ty134_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty134
  val instance_Machine_word_Size_Machine_word_ty135_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty135
  val instance_Machine_word_Size_Machine_word_ty136_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty136
  val instance_Machine_word_Size_Machine_word_ty137_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty137
  val instance_Machine_word_Size_Machine_word_ty138_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty138
  val instance_Machine_word_Size_Machine_word_ty139_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty139
  val instance_Machine_word_Size_Machine_word_ty140_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty140
  val instance_Machine_word_Size_Machine_word_ty141_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty141
  val instance_Machine_word_Size_Machine_word_ty142_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty142
  val instance_Machine_word_Size_Machine_word_ty143_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty143
  val instance_Machine_word_Size_Machine_word_ty144_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty144
  val instance_Machine_word_Size_Machine_word_ty145_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty145
  val instance_Machine_word_Size_Machine_word_ty146_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty146
  val instance_Machine_word_Size_Machine_word_ty147_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty147
  val instance_Machine_word_Size_Machine_word_ty148_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty148
  val instance_Machine_word_Size_Machine_word_ty149_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty149
  val instance_Machine_word_Size_Machine_word_ty150_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty150
  val instance_Machine_word_Size_Machine_word_ty151_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty151
  val instance_Machine_word_Size_Machine_word_ty152_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty152
  val instance_Machine_word_Size_Machine_word_ty153_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty153
  val instance_Machine_word_Size_Machine_word_ty154_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty154
  val instance_Machine_word_Size_Machine_word_ty155_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty155
  val instance_Machine_word_Size_Machine_word_ty156_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty156
  val instance_Machine_word_Size_Machine_word_ty157_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty157
  val instance_Machine_word_Size_Machine_word_ty158_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty158
  val instance_Machine_word_Size_Machine_word_ty159_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty159
  val instance_Machine_word_Size_Machine_word_ty160_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty160
  val instance_Machine_word_Size_Machine_word_ty161_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty161
  val instance_Machine_word_Size_Machine_word_ty162_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty162
  val instance_Machine_word_Size_Machine_word_ty163_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty163
  val instance_Machine_word_Size_Machine_word_ty164_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty164
  val instance_Machine_word_Size_Machine_word_ty165_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty165
  val instance_Machine_word_Size_Machine_word_ty166_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty166
  val instance_Machine_word_Size_Machine_word_ty167_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty167
  val instance_Machine_word_Size_Machine_word_ty168_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty168
  val instance_Machine_word_Size_Machine_word_ty169_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty169
  val instance_Machine_word_Size_Machine_word_ty170_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty170
  val instance_Machine_word_Size_Machine_word_ty171_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty171
  val instance_Machine_word_Size_Machine_word_ty172_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty172
  val instance_Machine_word_Size_Machine_word_ty173_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty173
  val instance_Machine_word_Size_Machine_word_ty174_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty174
  val instance_Machine_word_Size_Machine_word_ty175_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty175
  val instance_Machine_word_Size_Machine_word_ty176_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty176
  val instance_Machine_word_Size_Machine_word_ty177_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty177
  val instance_Machine_word_Size_Machine_word_ty178_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty178
  val instance_Machine_word_Size_Machine_word_ty179_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty179
  val instance_Machine_word_Size_Machine_word_ty180_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty180
  val instance_Machine_word_Size_Machine_word_ty181_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty181
  val instance_Machine_word_Size_Machine_word_ty182_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty182
  val instance_Machine_word_Size_Machine_word_ty183_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty183
  val instance_Machine_word_Size_Machine_word_ty184_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty184
  val instance_Machine_word_Size_Machine_word_ty185_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty185
  val instance_Machine_word_Size_Machine_word_ty186_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty186
  val instance_Machine_word_Size_Machine_word_ty187_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty187
  val instance_Machine_word_Size_Machine_word_ty188_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty188
  val instance_Machine_word_Size_Machine_word_ty189_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty189
  val instance_Machine_word_Size_Machine_word_ty190_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty190
  val instance_Machine_word_Size_Machine_word_ty191_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty191
  val instance_Machine_word_Size_Machine_word_ty192_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty192
  val instance_Machine_word_Size_Machine_word_ty193_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty193
  val instance_Machine_word_Size_Machine_word_ty194_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty194
  val instance_Machine_word_Size_Machine_word_ty195_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty195
  val instance_Machine_word_Size_Machine_word_ty196_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty196
  val instance_Machine_word_Size_Machine_word_ty197_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty197
  val instance_Machine_word_Size_Machine_word_ty198_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty198
  val instance_Machine_word_Size_Machine_word_ty199_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty199
  val instance_Machine_word_Size_Machine_word_ty200_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty200
  val instance_Machine_word_Size_Machine_word_ty201_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty201
  val instance_Machine_word_Size_Machine_word_ty202_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty202
  val instance_Machine_word_Size_Machine_word_ty203_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty203
  val instance_Machine_word_Size_Machine_word_ty204_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty204
  val instance_Machine_word_Size_Machine_word_ty205_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty205
  val instance_Machine_word_Size_Machine_word_ty206_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty206
  val instance_Machine_word_Size_Machine_word_ty207_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty207
  val instance_Machine_word_Size_Machine_word_ty208_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty208
  val instance_Machine_word_Size_Machine_word_ty209_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty209
  val instance_Machine_word_Size_Machine_word_ty210_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty210
  val instance_Machine_word_Size_Machine_word_ty211_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty211
  val instance_Machine_word_Size_Machine_word_ty212_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty212
  val instance_Machine_word_Size_Machine_word_ty213_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty213
  val instance_Machine_word_Size_Machine_word_ty214_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty214
  val instance_Machine_word_Size_Machine_word_ty215_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty215
  val instance_Machine_word_Size_Machine_word_ty216_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty216
  val instance_Machine_word_Size_Machine_word_ty217_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty217
  val instance_Machine_word_Size_Machine_word_ty218_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty218
  val instance_Machine_word_Size_Machine_word_ty219_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty219
  val instance_Machine_word_Size_Machine_word_ty220_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty220
  val instance_Machine_word_Size_Machine_word_ty221_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty221
  val instance_Machine_word_Size_Machine_word_ty222_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty222
  val instance_Machine_word_Size_Machine_word_ty223_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty223
  val instance_Machine_word_Size_Machine_word_ty224_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty224
  val instance_Machine_word_Size_Machine_word_ty225_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty225
  val instance_Machine_word_Size_Machine_word_ty226_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty226
  val instance_Machine_word_Size_Machine_word_ty227_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty227
  val instance_Machine_word_Size_Machine_word_ty228_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty228
  val instance_Machine_word_Size_Machine_word_ty229_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty229
  val instance_Machine_word_Size_Machine_word_ty230_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty230
  val instance_Machine_word_Size_Machine_word_ty231_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty231
  val instance_Machine_word_Size_Machine_word_ty232_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty232
  val instance_Machine_word_Size_Machine_word_ty233_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty233
  val instance_Machine_word_Size_Machine_word_ty234_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty234
  val instance_Machine_word_Size_Machine_word_ty235_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty235
  val instance_Machine_word_Size_Machine_word_ty236_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty236
  val instance_Machine_word_Size_Machine_word_ty237_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty237
  val instance_Machine_word_Size_Machine_word_ty238_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty238
  val instance_Machine_word_Size_Machine_word_ty239_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty239
  val instance_Machine_word_Size_Machine_word_ty240_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty240
  val instance_Machine_word_Size_Machine_word_ty241_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty241
  val instance_Machine_word_Size_Machine_word_ty242_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty242
  val instance_Machine_word_Size_Machine_word_ty243_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty243
  val instance_Machine_word_Size_Machine_word_ty244_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty244
  val instance_Machine_word_Size_Machine_word_ty245_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty245
  val instance_Machine_word_Size_Machine_word_ty246_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty246
  val instance_Machine_word_Size_Machine_word_ty247_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty247
  val instance_Machine_word_Size_Machine_word_ty248_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty248
  val instance_Machine_word_Size_Machine_word_ty249_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty249
  val instance_Machine_word_Size_Machine_word_ty250_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty250
  val instance_Machine_word_Size_Machine_word_ty251_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty251
  val instance_Machine_word_Size_Machine_word_ty252_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty252
  val instance_Machine_word_Size_Machine_word_ty253_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty253
  val instance_Machine_word_Size_Machine_word_ty254_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty254
  val instance_Machine_word_Size_Machine_word_ty255_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty255
  val instance_Machine_word_Size_Machine_word_ty256_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty256
  val instance_Machine_word_Size_Machine_word_ty257_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty257
  val word_length : forall 'a. (Machine_word.mword 'a) -> nat
  val signedIntegerFromWord : forall 'a. 
                                (Machine_word.mword 'a) -> Num.integer
  val unsignedIntegerFromWord : forall 'a. 
                                  (Machine_word.mword 'a) -> Num.integer
  val naturalFromWord : forall 'a. (Machine_word.mword 'a) -> Num.natural
  val proverWordFromInteger : forall 'a. Num.integer -> Machine_word.mword 'a
  val wordFromInteger : forall 'a. 
                          (Machine_word.Size 'a) => 
                            Num.integer -> Machine_word.mword 'a
  val wordFromNatural : forall 'a. 
                          (Machine_word.Size 'a) => 
                            Num.natural -> Machine_word.mword 'a
  val wordToHex : forall 'a. (Machine_word.mword 'a) -> string
  val instance_Show_Show_Machine_word_mword_dict : forall 'a. 
                                                     Show.Show_class 
                                                     (Machine_word.mword 'a)
  val wordFromBitlist : forall 'a. 
                          (Machine_word.Size 'a) => 
                            (list bool) -> Machine_word.mword 'a
  val bitlistFromWord : forall 'a. (Machine_word.mword 'a) -> list bool
  val size_test_fn : forall 'a. 
                       (Machine_word.Size 'a) => 
                         (Machine_word.mword 'a) -> nat
  val mwordEq : forall 'a. 
                  (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool
  val instance_Basic_classes_Eq_Machine_word_mword_dict : forall 'a. 
                                                            Basic_classes.Eq_class 
                                                            (Machine_word.mword 
                                                            'a)
  val signedLess : forall 'a. 
                     (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                bool
  val signedLessEq : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  bool
  val unsignedLess : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  bool
  val unsignedLessEq : forall 'a. 
                         (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                    bool
  val word_concat : forall 'a 'b 'c. 
                      (Machine_word.mword 'a) -> (Machine_word.mword 'b) -> 
                                                 Machine_word.mword 'c
  val word_extract : forall 'a 'b. 
                       nat -> nat -> (Machine_word.mword 'a) -> Machine_word.mword 
                                                                'b
  val word_update : forall 'a 'b. 
                      (Machine_word.mword 'a) -> nat -> nat -> (Machine_word.mword 
                                                               'b) -> 
                                                               Machine_word.mword 
                                                               'a
  val setBit : forall 'a. 
                 (Machine_word.mword 'a) -> nat -> bool -> Machine_word.mword 
                                                           'a
  val getBit : forall 'a. (Machine_word.mword 'a) -> nat -> bool
  val msb : forall 'a. (Machine_word.mword 'a) -> bool
  val lsb : forall 'a. (Machine_word.mword 'a) -> bool
  val shiftLeft : forall 'a. 
                    (Machine_word.mword 'a) -> nat -> Machine_word.mword 'a
  val shiftRight : forall 'a. 
                     (Machine_word.mword 'a) -> nat -> Machine_word.mword 'a
  val arithShiftRight : forall 'a. 
                          (Machine_word.mword 'a) -> nat -> Machine_word.mword 
                                                            'a
  val lAnd : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val lOr : forall 'a. 
              (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> Machine_word.mword 
                                                                    'a
  val lXor : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val lNot : forall 'a. (Machine_word.mword 'a) -> Machine_word.mword 'a
  val rotateRight : forall 'a. 
                      nat -> (Machine_word.mword 'a) -> Machine_word.mword 'a
  val rotateLeft : forall 'a. 
                     nat -> (Machine_word.mword 'a) -> Machine_word.mword 'a
  val zeroExtend : forall 'a 'b. 
                     (Machine_word.Size 'b) => 
                       (Machine_word.mword 'a) -> Machine_word.mword 'b
  val signExtend : forall 'a 'b. 
                     (Machine_word.Size 'b) => 
                       (Machine_word.mword 'a) -> Machine_word.mword 'b
  val uminus : forall 'a. (Machine_word.mword 'a) -> Machine_word.mword 'a
  val times : forall 'a. 
                (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                           Machine_word.mword 'a
  val unsignedDivide : forall 'a. 
                         (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                    Machine_word.mword 
                                                    'a
  val signedDivide : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  Machine_word.mword 
                                                  'a
  val wordFromNumeral : forall 'a. 
                          (Machine_word.Size 'a) => 
                            numeral -> Machine_word.mword 'a
  val instance_Num_Numeral_Machine_word_mword_dict : forall 'a. 
                                                       (Machine_word.Size 'a) => 
                                                         Num.Numeral_class 
                                                         (Machine_word.mword 
                                                         'a)

  module Instance_Machine_word_Size_Machine_word_ty1 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty2 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty3 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty4 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty5 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty6 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty7 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty8 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty9 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty10 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty11 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty12 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty13 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty14 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty15 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty16 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty17 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty18 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty19 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty20 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty21 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty22 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty23 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty24 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty25 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty26 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty27 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty28 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty29 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty30 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty31 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty32 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty33 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty34 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty35 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty36 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty37 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty38 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty39 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty40 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty41 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty42 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty43 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty44 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty45 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty46 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty47 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty48 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty49 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty50 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty51 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty52 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty53 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty54 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty55 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty56 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty57 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty58 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty59 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty60 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty61 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty62 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty63 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty64 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty65 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty66 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty67 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty68 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty69 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty70 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty71 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty72 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty73 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty74 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty75 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty76 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty77 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty78 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty79 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty80 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty81 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty82 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty83 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty84 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty85 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty86 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty87 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty88 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty89 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty90 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty91 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty92 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty93 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty94 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty95 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty96 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty97 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty98 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty99 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty100 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty101 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty102 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty103 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty104 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty105 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty106 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty107 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty108 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty109 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty110 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty111 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty112 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty113 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty114 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty115 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty116 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty117 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty118 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty119 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty120 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty121 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty122 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty123 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty124 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty125 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty126 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty127 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty128 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty129 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty130 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty131 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty132 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty133 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty134 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty135 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty136 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty137 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty138 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty139 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty140 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty141 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty142 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty143 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty144 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty145 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty146 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty147 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty148 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty149 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty150 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty151 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty152 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty153 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty154 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty155 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty156 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty157 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty158 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty159 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty160 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty161 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty162 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty163 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty164 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty165 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty166 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty167 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty168 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty169 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty170 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty171 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty172 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty173 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty174 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty175 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty176 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty177 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty178 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty179 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty180 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty181 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty182 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty183 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty184 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty185 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty186 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty187 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty188 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty189 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty190 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty191 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty192 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty193 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty194 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty195 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty196 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty197 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty198 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty199 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty200 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty201 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty202 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty203 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty204 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty205 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty206 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty207 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty208 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty209 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty210 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty211 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty212 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty213 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty214 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty215 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty216 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty217 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty218 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty219 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty220 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty221 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty222 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty223 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty224 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty225 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty226 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty227 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty228 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty229 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty230 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty231 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty232 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty233 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty234 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty235 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty236 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty237 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty238 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty239 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty240 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty241 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty242 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty243 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty244 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty245 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty246 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty247 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty248 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty249 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty250 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty251 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty252 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty253 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty254 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty255 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty256 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty257 = struct

    val size : nat

  end

  module Instance_Show_Show_Machine_word_mword = struct

    val show : forall 'a. (Machine_word.mword 'a) -> string

  end

  module Instance_Basic_classes_Eq_Machine_word_mword = struct

    val = : forall 'a. 
              (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool
    val <> : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool

  end

  module Instance_Num_Numeral_Machine_word_mword = struct

    val fromNumeral : forall 'a. 
                        (Machine_word.Size 'a) => 
                          numeral -> Machine_word.mword 'a

  end

end

module Maybe = struct
  type maybe 'a

  val maybe : forall 'a 'b. 'b -> ('a -> 'b) -> (Maybe.maybe 'a) -> 'b
  val Nothing : forall 'a. Maybe.maybe 'a
  val Just : forall 'a. 'a -> Maybe.maybe 'a
  val maybeEqual : forall 'a. 
                     (Basic_classes.Eq 'a) => 
                       (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
  val maybeEqualBy : forall 'a. 
                       ('a -> 'a -> bool) -> (Maybe.maybe 'a) -> (Maybe.maybe 
                                                                 'a) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Maybe_maybe_dict : forall 'a. 
                                                     (Basic_classes.Eq 'a) => 
                                                       Basic_classes.Eq_class 
                                                       (Maybe.maybe 'a)
  val maybeCompare : forall 'a 'b. 
                       ('b -> 'a -> Basic_classes.ordering) -> (Maybe.maybe 
                                                               'b) -> 
                                                               (Maybe.maybe 
                                                               'a) -> 
                                                               Basic_classes.ordering
  val instance_Basic_classes_SetType_Maybe_maybe_dict : forall 'a. 
                                                          (Basic_classes.SetType
                                                           'a) => 
                                                            Basic_classes.SetType_class 
                                                            (Maybe.maybe 'a)
  val instance_Basic_classes_Ord_Maybe_maybe_dict : forall 'a. 
                                                      (Basic_classes.Ord 'a) => 
                                                        Basic_classes.Ord_class 
                                                        (Maybe.maybe 'a)
  val isJust : forall 'a. (Maybe.maybe 'a) -> bool
  val isNothing : forall 'a. (Maybe.maybe 'a) -> bool
  val fromMaybe : forall 'a. 'a -> (Maybe.maybe 'a) -> 'a
  val map : forall 'a 'b. ('a -> 'b) -> (Maybe.maybe 'a) -> Maybe.maybe 'b
  val bind : forall 'a 'b. 
               (Maybe.maybe 'a) -> ('a -> Maybe.maybe 'b) -> Maybe.maybe 'b

  module Instance_Basic_classes_Eq_Maybe_maybe = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

  module Instance_Basic_classes_SetType_Maybe_maybe = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> 
                                                 Basic_classes.ordering

  end

  module Instance_Basic_classes_Ord_Maybe_maybe = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

end

module Bool = struct

  val not : bool -> bool
  val && : bool -> bool -> bool
  val and : bool -> bool -> bool
  val || : bool -> bool -> bool
  val or : bool -> bool -> bool
  val --> : bool -> bool -> bool
  val imp : bool -> bool -> bool
  val <-> : bool -> bool -> bool
  val equiv : bool -> bool -> bool
  val xor : bool -> bool -> bool

end

module Basic_classes = struct
  class Eq
  type Eq_class 'a = {
      val isEqual_method : forall 'a. 
                             (Basic_classes.Eq_class 'a) -> 'a -> 'a -> bool

      val isInequal_method : forall 'a. 
                               (Basic_classes.Eq_class 'a) -> 'a -> 'a -> 
                                                                    bool

  }
  type ordering
  class Ord
  type Ord_class 'a = {
      val compare_method : forall 'a. 
                             (Basic_classes.Ord_class 'a) -> 'a -> 'a -> 
                                                                   Basic_classes.ordering

      val isLess_method : forall 'a. 
                            (Basic_classes.Ord_class 'a) -> 'a -> 'a -> bool

      val isLessEqual_method : forall 'a. 
                                 (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                 'a -> 
                                                                 bool

      val isGreater_method : forall 'a. 
                               (Basic_classes.Ord_class 'a) -> 'a -> 
                                                               'a -> 
                                                               bool

      val isGreaterEqual_method : forall 'a. 
                                    (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                    'a -> 
                                                                    bool

  }
  class OrdMaxMin
  type OrdMaxMin_class 'a = {
      val max_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

      val min_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

  }
  class SetType
  type SetType_class 'a = {
      val setElemCompare_method : forall 'a. 
                                    (Basic_classes.SetType_class 'a) -> 
                                    'a -> 'a -> Basic_classes.ordering

  }

  val = : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val isEqual : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val <> : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val isInequal : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val unsafe_structural_equality : forall 'a. 'a -> 'a -> bool
  val unsafe_structural_inequality : forall 'a. 'a -> 'a -> bool
  val instance_Basic_classes_Eq_var_dict : forall 'a. 
                                             Basic_classes.Eq_class 'a
  val LT : Basic_classes.ordering
  val EQ : Basic_classes.ordering
  val GT : Basic_classes.ordering
  val orderingIsLess : Basic_classes.ordering -> bool
  val orderingIsGreater : Basic_classes.ordering -> bool
  val orderingIsEqual : Basic_classes.ordering -> bool
  val orderingIsLessEqual : Basic_classes.ordering -> bool
  val orderingIsGreaterEqual : Basic_classes.ordering -> bool
  val ordering_cases : forall 'a. 
                         Basic_classes.ordering -> 'a -> 'a -> 'a -> 'a
  val orderingEqual : 
                        Basic_classes.ordering -> Basic_classes.ordering -> 
                                                  bool
  val instance_Basic_classes_Eq_Basic_classes_ordering_dict : 
                                                                Basic_classes.Eq_class 
                                                                Basic_classes.ordering
  val compare : forall 'a. 
                  (Basic_classes.Ord 'a) => 
                    'a -> 'a -> Basic_classes.ordering
  val < : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLess : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val <= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLessEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val > : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreater : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val >= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreaterEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val defaultCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering
  val defaultLess : forall 'a. 'a -> 'a -> bool
  val defaultLessEq : forall 'a. 'a -> 'a -> bool
  val defaultGreater : forall 'a. 'a -> 'a -> bool
  val defaultGreaterEq : forall 'a. 'a -> 'a -> bool
  val genericCompare : forall 'a. 
                         ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                               'a -> 'a -> Basic_classes.ordering
  val ordCompare : forall 'a. 
                     (Basic_classes.Eq 'a) (Basic_classes.Ord 'a) => 
                       'a -> 'a -> Basic_classes.ordering
  val max : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val min : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val minByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val maxByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val defaultMax : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val defaultMin : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val instance_Basic_classes_OrdMaxMin_var_dict : forall 'a. 
                                                    (Basic_classes.Ord 'a) => 
                                                      Basic_classes.OrdMaxMin_class 
                                                      'a
  val setElemCompare : forall 'a. 
                         (Basic_classes.SetType 'a) => 
                           'a -> 'a -> Basic_classes.ordering
  val instance_Basic_classes_SetType_var_dict : forall 'a. 
                                                  Basic_classes.SetType_class 
                                                  'a
  val instance_Basic_classes_Eq_bool_dict : Basic_classes.Eq_class bool
  val boolCompare : bool -> bool -> Basic_classes.ordering
  val instance_Basic_classes_SetType_bool_dict : 
                                                   Basic_classes.SetType_class 
                                                   bool
  val charEqual : char -> char -> bool
  val instance_Basic_classes_Eq_char_dict : Basic_classes.Eq_class char
  val stringEquality : string -> string -> bool
  val instance_Basic_classes_Eq_string_dict : Basic_classes.Eq_class string
  val pairEqual : forall 'a 'b. 
                    (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                      ('a * 'b) -> ('a * 'b) -> bool
  val pairEqualBy : forall 'a 'b. 
                      ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a * 'b) -> 
                                                                  ('a * 'b) -> 
                                                                  bool
  val instance_Basic_classes_Eq_tup2_dict : forall 'a 'b. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b)
  val pairCompare : forall 'a 'b. 
                      ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                              'b -> Basic_classes.ordering) -> 
                                                              ('a * 'b) -> 
                                                              ('a * 'b) -> 
                                                              Basic_classes.ordering
  val pairLess : forall 'a 'b. 
                   (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                     ('b * 'a) -> ('b * 'a) -> bool
  val pairLessEq : forall 'a 'b. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                       ('b * 'a) -> ('b * 'a) -> bool
  val pairGreater : forall 'a 'b. 
                      (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                        ('a * 'b) -> ('a * 'b) -> bool
  val pairGreaterEq : forall 'a 'b. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                          ('a * 'b) -> ('a * 'b) -> bool
  val instance_Basic_classes_Ord_tup2_dict : forall 'a 'b. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b)
  val instance_Basic_classes_SetType_tup2_dict : forall 'a 'b. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b)
  val tripleEqual : forall 'a 'b 'c. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                        (Basic_classes.Eq 'c) => 
                        ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val instance_Basic_classes_Eq_tup3_dict : forall 'a 'b 'c. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c)
  val tripleCompare : forall 'a 'b 'c. 
                        ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                'b -> 
                                                                Basic_classes.ordering) -> 
                                                                ('c -> 
                                                                'c -> 
                                                                Basic_classes.ordering) -> 
                                                                ('a * 'b * 'c) -> 
                                                                ('a * 'b * 'c) -> 
                                                                Basic_classes.ordering
  val tripleLess : forall 'a 'b 'c. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                       (Basic_classes.Ord 'c) => 
                       ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleLessEq : forall 'a 'b 'c. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) => 
                         ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleGreater : forall 'a 'b 'c. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) => 
                          ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val tripleGreaterEq : forall 'a 'b 'c. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) => 
                            ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val instance_Basic_classes_Ord_tup3_dict : forall 'a 'b 'c. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c)
  val instance_Basic_classes_SetType_tup3_dict : forall 'a 'b 'c. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c)
  val quadrupleEqual : forall 'a 'b 'c 'd. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                           ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val instance_Basic_classes_Eq_tup4_dict : forall 'a 'b 'c 'd. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd)
  val quadrupleCompare : forall 'a 'b 'c 'd. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   Basic_classes.ordering
  val quadrupleLess : forall 'a 'b 'c 'd. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                          ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val quadrupleLessEq : forall 'a 'b 'c 'd. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                            ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                   bool
  val quadrupleGreater : forall 'a 'b 'c 'd. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c)
                             (Basic_classes.Ord 'd) => 
                             ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                    bool
  val quadrupleGreaterEq : forall 'a 'b 'c 'd. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c)
                               (Basic_classes.Ord 'd) => 
                               ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                      bool
  val instance_Basic_classes_Ord_tup4_dict : forall 'a 'b 'c 'd. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd)
  val instance_Basic_classes_SetType_tup4_dict : forall 'a 'b 'c 'd. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd)
  val quintupleEqual : forall 'a 'b 'c 'd 'e. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                           (Basic_classes.Eq 'e) => 
                           ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                        'd * 'e) -> bool
  val instance_Basic_classes_Eq_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e)
  val quintupleCompare : forall 'a 'b 'c 'd 'e. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('e -> 
                                                                   'e -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   Basic_classes.ordering
  val quintupleLess : forall 'a 'b 'c 'd 'e. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                          (Basic_classes.Ord 'e) => 
                          ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                      bool
  val quintupleLessEq : forall 'a 'b 'c 'd 'e. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) => 
                            ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                         'd * 'e) -> 
                                                        bool
  val quintupleGreater : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                             (Basic_classes.Ord 'e) => 
                             ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 'c * 
                                                          'b * 'a) -> 
                                                         bool
  val quintupleGreaterEq : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                               (Basic_classes.Ord 'e) => 
                               ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 
                                                            'c * 'b * 
                                                            'a) -> bool
  val instance_Basic_classes_Ord_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e)
  val instance_Basic_classes_SetType_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd * 'e)
  val sextupleEqual : forall 'a 'b 'c 'd 'e 'f. 
                        (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                          (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                          (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                          ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                            'c * 'd * 
                                                            'e * 'f) -> 
                                                           bool
  val instance_Basic_classes_Eq_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e)
                                                (Basic_classes.Eq 'f) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e * 'f)
  val sextupleCompare : forall 'a 'b 'c 'd 'e 'f. 
                          ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                  'b -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('c -> 
                                                                  'c -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('d -> 
                                                                  'd -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('e -> 
                                                                  'e -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('f -> 
                                                                  'f -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  Basic_classes.ordering
  val sextupleLess : forall 'a 'b 'c 'd 'e 'f. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                         (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                         ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                           'c * 'd * 
                                                           'e * 'f) -> 
                                                          bool
  val sextupleLessEq : forall 'a 'b 'c 'd 'e 'f. 
                         (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                           (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                           (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                           ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                             'c * 'd * 
                                                             'e * 'f) -> 
                                                            bool
  val sextupleGreater : forall 'a 'b 'c 'd 'e 'f. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                            ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 'e * 
                                                              'd * 'c * 
                                                              'b * 'a) -> 
                                                             bool
  val sextupleGreaterEq : forall 'a 'b 'c 'd 'e 'f. 
                            (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                              (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                              (Basic_classes.Ord 'e)
                              (Basic_classes.Ord 'f) => 
                              ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 
                                                                'e * 
                                                                'd * 
                                                                'c * 
                                                                'b * 
                                                                'a) -> 
                                                               bool
  val instance_Basic_classes_Ord_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e)
                                                 (Basic_classes.Ord 'f) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e * 'f)
  val instance_Basic_classes_SetType_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e)
                                                     (Basic_classes.SetType
                                                      'f) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 
                                                      'd * 'e * 'f)

  module Instance_Basic_classes_Eq_var = struct

    val = : forall 'a. 'a -> 'a -> bool
    val <> : forall 'a. 'a -> 'a -> bool

  end

  module Instance_Basic_classes_Eq_Basic_classes_ordering = struct

    val = : Basic_classes.ordering -> Basic_classes.ordering -> bool
    val <> : Basic_classes.ordering -> Basic_classes.ordering -> bool

  end

  module Instance_Basic_classes_OrdMaxMin_var = struct

    val max : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
    val min : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a

  end

  module Instance_Basic_classes_SetType_var = struct

    val setElemCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_bool = struct

    val = : bool -> bool -> bool
    val <> : bool -> bool -> bool

  end

  module Instance_Basic_classes_SetType_bool = struct

    val setElemCompare : bool -> bool -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_char = struct

    val = : char -> char -> bool
    val <> : char -> char -> bool

  end

  module Instance_Basic_classes_Eq_string = struct

    val = : string -> string -> bool
    val <> : string -> string -> bool

  end

  module Instance_Basic_classes_Eq_tup2 = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_Ord_tup2 = struct

    val compare : forall 'a 'b. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                      ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering
    val < : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool
    val > : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val >= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_SetType_tup2 = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup3 = struct

    val = : forall 'a 'b 'c. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <> : forall 'a 'b 'c. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_Ord_tup3 = struct

    val compare : forall 'a 'b 'c. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) => 
                      ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering
    val < : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val > : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val >= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_SetType_tup3 = struct

    val setElemCompare : forall 'a 'b 'c. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c) => 
                             ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup4 = struct

    val = : forall 'a 'b 'c 'd. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <> : forall 'a 'b 'c 'd. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_Ord_tup4 = struct

    val compare : forall 'a 'b 'c 'd. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                      ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> Basic_classes.ordering
    val < : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val > : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val >= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_SetType_tup4 = struct

    val setElemCompare : forall 'a 'b 'c 'd. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd) => 
                             ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                    Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup5 = struct

    val = : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <> : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_Ord_tup5 = struct

    val compare : forall 'a 'b 'c 'd 'e. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) => 
                      ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                  Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val > : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val >= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_SetType_tup5 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e) => 
                             ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                          'd * 'e) -> 
                                                         Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup6 = struct

    val = : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <> : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_Ord_tup6 = struct

    val compare : forall 'a 'b 'c 'd 'e 'f. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                      ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 
                                                        'd * 'e * 'f) -> 
                                                       Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool
    val > : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val >= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_SetType_tup6 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e 'f. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e)
                             (Basic_classes.SetType 'f) => 
                             ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                               'c * 'd * 
                                                               'e * 'f) -> 
                                                              Basic_classes.ordering

  end

end

module Function = struct

  val id : forall 'a. 'a -> 'a
  val const : forall 'a 'b. 'a -> 'b -> 'a
  val comb : forall 'a 'b 'c. ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
  val $ : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val apply : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val $> : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val rev_apply : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val flip : forall 'a 'b 'c. ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
  val curry : forall 'a 'b 'c. (('a * 'b) -> 'c) -> 'a -> 'b -> 'c
  val uncurry : forall 'a 'b 'c. ('a -> 'b -> 'c) -> ('a * 'b) -> 'c

end

module Tuple = struct

  val curry : forall 'a 'b 'c. (('a * 'b) -> 'c) -> 'a -> 'b -> 'c
  val uncurry : forall 'a 'b 'c. ('a -> 'b -> 'c) -> ('a * 'b) -> 'c
  val fst : forall 'a 'b. ('a * 'b) -> 'a
  val snd : forall 'a 'b. ('a * 'b) -> 'b
  val swap : forall 'a 'b. ('a * 'b) -> ('b * 'a)

end

module Show = struct
  class Show
  type Show_class 'a = {
      val show_method : forall 'a. (Show.Show_class 'a) -> 'a -> string

  }

  val show : forall 'a. (Show.Show 'a) => 'a -> string
  val instance_Show_Show_string_dict : Show.Show_class string
  val stringFromMaybe : forall 'a. 
                          ('a -> string) -> (Maybe.maybe 'a) -> string
  val instance_Show_Show_Maybe_maybe_dict : forall 'a. 
                                              (Show.Show 'a) => 
                                                Show.Show_class (Maybe.maybe 
                                                                'a)
  val stringFromListAux : forall 'a. ('a -> string) -> (list 'a) -> string
  val stringFromList : forall 'a. ('a -> string) -> (list 'a) -> string
  val instance_Show_Show_list_dict : forall 'a. 
                                       (Show.Show 'a) => 
                                         Show.Show_class (list 'a)
  val stringFromPair : forall 'a 'b. 
                         ('a -> string) -> ('b -> string) -> ('a * 'b) -> 
                                                             string
  val instance_Show_Show_tup2_dict : forall 'a 'b. 
                                       (Show.Show 'a) (Show.Show 'b) => 
                                         Show.Show_class ('a * 'b)
  val instance_Show_Show_bool_dict : Show.Show_class bool

  module Instance_Show_Show_string = struct

    val show : string -> string

  end

  module Instance_Show_Show_Maybe_maybe = struct

    val show : forall 'a. (Show.Show 'a) => (Maybe.maybe 'a) -> string

  end

  module Instance_Show_Show_list = struct

    val show : forall 'a. (Show.Show 'a) => (list 'a) -> string

  end

  module Instance_Show_Show_tup2 = struct

    val show : forall 'a 'b. 
                 (Show.Show 'a) (Show.Show 'b) => ('a * 'b) -> string

  end

  module Instance_Show_Show_bool = struct

    val show : bool -> string

  end

end

module String = struct

  val ^ : string -> string -> string
  val concat : string -> (list string) -> string
  val toCharList : string -> list char
  val toString : (list char) -> string
  val makeString : nat -> char -> string
  val stringLength : string -> nat
  val stringAppend : string -> string -> string
  val string_case : forall 'a. string -> 'a -> (char -> string -> 'a) -> 'a
  val empty_string : string
  val cons_string : char -> string -> string

end

module Map = struct
  type map 'k 'v
  class MapKeyType
  type MapKeyType_class 'a = {
      val mapKeyCompare_method : forall 'a. 
                                   (Map.MapKeyType_class 'a) -> 'a -> 
                                                                'a -> 
                                                                Basic_classes.ordering

  }

  val map : forall 'k 'v 'w. 
              (Map.MapKeyType 'k) => 
                ('v -> 'w) -> (Map.map 'k 'v) -> Map.map 'k 'w
  val null : forall 'k 'v. 
               (Map.MapKeyType 'k) (Basic_classes.Eq 'k)
                 (Basic_classes.Eq 'v) => (Map.map 'k 'v) -> bool
  val all : forall 'k 'v. 
              (Map.MapKeyType 'k) (Basic_classes.Eq 'v) => 
                ('k -> 'v -> bool) -> (Map.map 'k 'v) -> bool
  val any : forall 'k 'v. 
              (Map.MapKeyType 'k) (Basic_classes.Eq 'v) => 
                ('k -> 'v -> bool) -> (Map.map 'k 'v) -> bool
  val member : forall 'k 'v. 
                 (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                   (Basic_classes.Eq 'k) => 'k -> (Map.map 'k 'v) -> bool
  val lookup : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   'k -> (Map.map 'k 'v) -> Maybe.maybe 'v
  val lookupBy : forall 'k 'v. 
                   ('k -> 'k -> Basic_classes.ordering) -> 'k -> (Map.map 
                                                                 'k 'v) -> 
                                                                 Maybe.maybe 
                                                                 'v
  val delete : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   'k -> (Map.map 'k 'v) -> Map.map 'k 'v
  val deleteBy : forall 'k 'v. 
                   ('k -> 'k -> Basic_classes.ordering) -> 'k -> (Map.map 
                                                                 'k 'v) -> 
                                                                 Map.map 
                                                                 'k 'v
  val mapi : forall 'k 'v 'w. 
               (Map.MapKeyType 'k) => 
                 ('k -> 'v -> 'w) -> (Map.map 'k 'v) -> Map.map 'k 'w
  val size : forall 'k 'v. 
               (Map.MapKeyType 'k) (Basic_classes.SetType 'k) => 
                 (Map.map 'k 'v) -> nat
  val empty : forall 'k 'v. (Map.MapKeyType 'k) => Map.map 'k 'v
  val emptyBy : forall 'k 'v. 
                  ('k -> 'k -> Basic_classes.ordering) -> Map.map 'k 'v
  val notMember : forall 'k 'v. 
                    (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                      (Basic_classes.Eq 'k) => 'k -> (Map.map 'k 'v) -> bool
  val singleton : forall 'k 'v. 
                    (Map.MapKeyType 'k) => 'k -> 'v -> Map.map 'k 'v
  val union : forall 'k 'v. 
                (Map.MapKeyType 'k) => 
                  (Map.map 'k 'v) -> (Map.map 'k 'v) -> Map.map 'k 'v
  val insert : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   'k -> 'v -> (Map.map 'k 'v) -> Map.map 'k 'v
  val fromList : forall 'k 'v. 
                   (Map.MapKeyType 'k) => (list ('k * 'v)) -> Map.map 'k 'v
  val mapEqual : forall 'k 'v. 
                   (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                     (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
  val mapEqualBy : forall 'k 'v. 
                     ('k -> 'k -> bool) -> ('v -> 'v -> bool) -> (Map.map 
                                                                 'k 'v) -> 
                                                                 (Map.map 
                                                                 'k 'v) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Map_map_dict : forall 'k 'v. 
                                                 (Basic_classes.Eq 'k)
                                                   (Basic_classes.Eq 'v) => 
                                                   Basic_classes.Eq_class 
                                                   (Map.map 'k 'v)
  val mapKeyCompare : forall 'a. 
                        (Map.MapKeyType 'a) => 
                          'a -> 'a -> Basic_classes.ordering
  val instance_Map_MapKeyType_var_dict : forall 'a. 
                                           (Basic_classes.SetType 'a) => 
                                             Map.MapKeyType_class 'a
  val findWithDefault : forall 'k 'v. 
                          (Map.MapKeyType 'k) => 
                            'k -> 'v -> (Map.map 'k 'v) -> 'v
  val toSet : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                  (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val toSetBy : forall 'k 'v. 
                  (('k * 'v) -> ('k * 'v) -> Basic_classes.ordering) -> 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val domainBy : forall 'k 'v. 
                   ('k -> 'k -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                           set 'k
  val domain : forall 'k 'v. 
                 (Map.MapKeyType 'k) (Basic_classes.SetType 'k) => 
                   (Map.map 'k 'v) -> set 'k
  val range : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set 'v
  val rangeBy : forall 'k 'v. 
                  ('v -> 'v -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                          set 'v
  val deleteSwap : forall 'k 'v. 
                     (Map.MapKeyType 'k) => 
                       (Map.map 'k 'v) -> 'k -> Map.map 'k 'v
  val unions : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   (list (Map.map 'k 'v)) -> Map.map 'k 'v
  val map_setElemCompare : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.SetType 'a)
                               (Basic_classes.SetType 'b)
                               (Basic_classes.SetType 'c)
                               (Basic_classes.SetType 'd) (Map.MapKeyType 'b)
                               (Map.MapKeyType 'd) => 
                               ((set ('d * 'c)) -> (set ('b * 'a)) -> 'e) -> 
                               (Map.map 'd 'c) -> (Map.map 'b 'a) -> 'e
  val instance_Basic_classes_SetType_Map_map_dict : forall 'a 'b. 
                                                      (Basic_classes.SetType
                                                       'a)
                                                        (Basic_classes.SetType
                                                         'b)
                                                        (Map.MapKeyType 'a) => 
                                                        Basic_classes.SetType_class 
                                                        (Map.map 'a 'b)

  module Instance_Basic_classes_Eq_Map_map = struct

    val = : forall 'k 'v. 
              (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
    val <> : forall 'k 'v. 
               (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                 (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool

  end

  module Instance_Map_MapKeyType_var = struct

    val mapKeyCompare : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_SetType_Map_map = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Map.MapKeyType 'a) => 
                             (Map.map 'a 'b) -> (Map.map 'a 'b) -> Basic_classes.ordering

  end

end

module Either = struct
  type either 'a 'b

  val either : forall 'a 'b 'c. 
                 ('a -> 'c) -> ('b -> 'c) -> (Either.either 'a 'b) -> 'c
  val Left : forall 'a 'b. 'a -> Either.either 'a 'b
  val Right : forall 'a 'b. 'b -> Either.either 'a 'b
  val eitherEqual : forall 'a 'b. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                        (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                 bool
  val eitherEqualBy : forall 'a 'b. 
                        ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    bool
  val instance_Basic_classes_Eq_Either_either_dict : forall 'a 'b. 
                                                       (Basic_classes.Eq 'a)
                                                         (Basic_classes.Eq 'b) => 
                                                         Basic_classes.Eq_class 
                                                         (Either.either 
                                                         'a 'b)
  val either_setElemCompare : forall 'a 'b 'c 'd. 
                                ('d -> 'b -> Basic_classes.ordering) -> 
                                ('c -> 'a -> Basic_classes.ordering) -> 
                                (Either.either 'd 'c) -> (Either.either 
                                                         'b 'a) -> Basic_classes.ordering
  val instance_Basic_classes_SetType_Either_either_dict : forall 'a 'b. 
                                                            (Basic_classes.SetType
                                                             'a)
                                                              (Basic_classes.SetType
                                                               'b) => 
                                                              Basic_classes.SetType_class 
                                                              (Either.either 
                                                              'a 'b)
  val isLeft : forall 'a 'b. (Either.either 'a 'b) -> bool
  val isRight : forall 'a 'b. (Either.either 'a 'b) -> bool
  val partitionEither : forall 'a 'b. 
                          (list (Either.either 'a 'b)) -> ((list 'a) *
                                                           (list 'b))
  val lefts : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'a
  val rights : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'b

  module Instance_Basic_classes_Eq_Either_either = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool

  end

  module Instance_Basic_classes_SetType_Either_either = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                      Basic_classes.ordering

  end

end

module Word = struct
  type bitSequence
  class WordNot
  type WordNot_class 'a = {
      val lnot_method : forall 'a. (Word.WordNot_class 'a) -> 'a -> 'a

  }
  class WordAnd
  type WordAnd_class 'a = {
      val land_method : forall 'a. (Word.WordAnd_class 'a) -> 'a -> 'a -> 'a

  }
  class WordOr
  type WordOr_class 'a = {
      val lor_method : forall 'a. (Word.WordOr_class 'a) -> 'a -> 'a -> 'a

  }
  class WordXor
  type WordXor_class 'a = {
      val lxor_method : forall 'a. (Word.WordXor_class 'a) -> 'a -> 'a -> 'a

  }
  class WordLsl
  type WordLsl_class 'a = {
      val lsl_method : forall 'a. (Word.WordLsl_class 'a) -> 'a -> nat -> 'a

  }
  class WordLsr
  type WordLsr_class 'a = {
      val lsr_method : forall 'a. (Word.WordLsr_class 'a) -> 'a -> nat -> 'a

  }
  class WordAsr
  type WordAsr_class 'a = {
      val asr_method : forall 'a. (Word.WordAsr_class 'a) -> 'a -> nat -> 'a

  }

  val BitSeq : (Maybe.maybe nat) -> bool -> (list bool) -> Word.bitSequence
  val bitSeqEq : Word.bitSequence -> Word.bitSequence -> bool
  val instance_Basic_classes_Eq_Word_bitSequence_dict : 
                                                          Basic_classes.Eq_class 
                                                          Word.bitSequence
  val boolListFrombitSeq : nat -> Word.bitSequence -> list bool
  val boolListFrombitSeqAux : forall 'a. nat -> 'a -> (list 'a) -> list 'a
  val bitSeqFromBoolList : (list bool) -> Maybe.maybe Word.bitSequence
  val cleanBitSeq : Word.bitSequence -> Word.bitSequence
  val bitSeqTestBit : Word.bitSequence -> nat -> Maybe.maybe bool
  val bitSeqSetBit : Word.bitSequence -> nat -> bool -> Word.bitSequence
  val resizeBitSeq : 
                       (Maybe.maybe nat) -> Word.bitSequence -> Word.bitSequence
  val bitSeqNot : Word.bitSequence -> Word.bitSequence
  val bitSeqBinop : 
                      (bool -> bool -> bool) -> Word.bitSequence -> Word.bitSequence -> 
                                                                    Word.bitSequence
  val bitSeqBinopAux : 
                         (bool -> bool -> bool) -> bool -> (list bool) -> 
                                                           bool -> (list 
                                                                   bool) -> 
                                                                   list 
                                                                   bool
  val bitSeqAnd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqOr : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqXor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqShiftLeft : Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqArithmeticShiftRight : 
                                     Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqLogicalShiftRight : Word.bitSequence -> nat -> Word.bitSequence
  val integerFromBoolList : (bool * (list bool)) -> Num.integer
  val integerFromBoolListAux : Num.integer -> (list bool) -> Num.integer
  val boolListFromInteger : Num.integer -> (bool * (list bool))
  val boolListFromNatural : (list bool) -> Num.natural -> list bool
  val bitSeqFromInteger : 
                            (Maybe.maybe nat) -> Num.integer -> Word.bitSequence
  val integerFromBitSeq : Word.bitSequence -> Num.integer
  val bitSeqArithUnaryOp : 
                             (Num.integer -> Num.integer) -> Word.bitSequence -> 
                                                             Word.bitSequence
  val bitSeqArithBinOp : 
                           (Num.integer -> Num.integer -> Num.integer) -> 
                           Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqArithBinTest : forall 'a. 
                             (Num.integer -> Num.integer -> 'a) -> Word.bitSequence -> 
                                                                   Word.bitSequence -> 
                                                                   'a
  val bitSeqFromNumeral : numeral -> Word.bitSequence
  val instance_Num_Numeral_Word_bitSequence_dict : 
                                                     Num.Numeral_class 
                                                     Word.bitSequence
  val bitSeqLess : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqLessEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreater : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreaterEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqCompare : 
                        Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Word_bitSequence_dict : 
                                                           Basic_classes.Ord_class 
                                                           Word.bitSequence
  val instance_Basic_classes_SetType_Word_bitSequence_dict : 
                                                               Basic_classes.SetType_class 
                                                               Word.bitSequence
  val bitSeqNegate : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumNegate_Word_bitSequence_dict : 
                                                       Num.NumNegate_class 
                                                       Word.bitSequence
  val bitSeqAdd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumAdd_Word_bitSequence_dict : 
                                                    Num.NumAdd_class 
                                                    Word.bitSequence
  val bitSeqMinus : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMinus_Word_bitSequence_dict : 
                                                      Num.NumMinus_class 
                                                      Word.bitSequence
  val bitSeqSucc : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumSucc_Word_bitSequence_dict : 
                                                     Num.NumSucc_class 
                                                     Word.bitSequence
  val bitSeqPred : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumPred_Word_bitSequence_dict : 
                                                     Num.NumPred_class 
                                                     Word.bitSequence
  val bitSeqMult : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMult_Word_bitSequence_dict : 
                                                     Num.NumMult_class 
                                                     Word.bitSequence
  val bitSeqPow : Word.bitSequence -> nat -> Word.bitSequence
  val instance_Num_NumPow_Word_bitSequence_dict : 
                                                    Num.NumPow_class 
                                                    Word.bitSequence
  val bitSeqDiv : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumIntegerDivision_Word_bitSequence_dict : 
                                                                Num.NumIntegerDivision_class 
                                                                Word.bitSequence
  val instance_Num_NumDivision_Word_bitSequence_dict : 
                                                         Num.NumDivision_class 
                                                         Word.bitSequence
  val bitSeqMod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumRemainder_Word_bitSequence_dict : 
                                                          Num.NumRemainder_class 
                                                          Word.bitSequence
  val bitSeqMin : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqMax : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Basic_classes_OrdMaxMin_Word_bitSequence_dict : 
                                                                 Basic_classes.OrdMaxMin_class 
                                                                 Word.bitSequence
  val lnot : forall 'a. (Word.WordNot 'a) => 'a -> 'a
  val land : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val conjunction : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val lor : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val inclusive_or : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val lxor : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val exclusive_or : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val lsl : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val left_shift : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val lsr : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val logicial_right_shift : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val asr : forall 'a. (Word.WordAsr 'a) => 'a -> nat -> 'a
  val arithmetic_right_shift : forall 'a. 
                                 (Word.WordAsr 'a) => 'a -> nat -> 'a
  val instance_Word_WordNot_Word_bitSequence_dict : 
                                                      Word.WordNot_class 
                                                      Word.bitSequence
  val instance_Word_WordAnd_Word_bitSequence_dict : 
                                                      Word.WordAnd_class 
                                                      Word.bitSequence
  val instance_Word_WordOr_Word_bitSequence_dict : 
                                                     Word.WordOr_class 
                                                     Word.bitSequence
  val instance_Word_WordXor_Word_bitSequence_dict : 
                                                      Word.WordXor_class 
                                                      Word.bitSequence
  val instance_Word_WordLsl_Word_bitSequence_dict : 
                                                      Word.WordLsl_class 
                                                      Word.bitSequence
  val instance_Word_WordLsr_Word_bitSequence_dict : 
                                                      Word.WordLsr_class 
                                                      Word.bitSequence
  val instance_Word_WordAsr_Word_bitSequence_dict : 
                                                      Word.WordAsr_class 
                                                      Word.bitSequence
  val int32Lnot : Num.int32 -> Num.int32
  val instance_Word_WordNot_Num_int32_dict : Word.WordNot_class Num.int32
  val int32Lor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordOr_Num_int32_dict : Word.WordOr_class Num.int32
  val int32Lxor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordXor_Num_int32_dict : Word.WordXor_class Num.int32
  val int32Land : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordAnd_Num_int32_dict : Word.WordAnd_class Num.int32
  val int32Lsl : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsl_Num_int32_dict : Word.WordLsl_class Num.int32
  val int32Lsr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsr_Num_int32_dict : Word.WordLsr_class Num.int32
  val int32Asr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordAsr_Num_int32_dict : Word.WordAsr_class Num.int32
  val int64Lnot : Num.int64 -> Num.int64
  val instance_Word_WordNot_Num_int64_dict : Word.WordNot_class Num.int64
  val int64Lor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordOr_Num_int64_dict : Word.WordOr_class Num.int64
  val int64Lxor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordXor_Num_int64_dict : Word.WordXor_class Num.int64
  val int64Land : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordAnd_Num_int64_dict : Word.WordAnd_class Num.int64
  val int64Lsl : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsl_Num_int64_dict : Word.WordLsl_class Num.int64
  val int64Lsr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsr_Num_int64_dict : Word.WordLsr_class Num.int64
  val int64Asr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordAsr_Num_int64_dict : Word.WordAsr_class Num.int64
  val defaultLnot : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a
  val defaultLand : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLor : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> 'a -> 'a
  val defaultLxor : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLsl : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultLsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultAsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val integerLnot : Num.integer -> Num.integer
  val instance_Word_WordNot_Num_integer_dict : Word.WordNot_class Num.integer
  val integerLor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordOr_Num_integer_dict : Word.WordOr_class Num.integer
  val integerLxor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordXor_Num_integer_dict : Word.WordXor_class Num.integer
  val integerLand : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordAnd_Num_integer_dict : Word.WordAnd_class Num.integer
  val integerLsl : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsl_Num_integer_dict : Word.WordLsl_class Num.integer
  val integerAsr : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsr_Num_integer_dict : Word.WordLsr_class Num.integer
  val instance_Word_WordAsr_Num_integer_dict : Word.WordAsr_class Num.integer
  val intFromBitSeq : Word.bitSequence -> Num.int
  val bitSeqFromInt : Num.int -> Word.bitSequence
  val intLnot : Num.int -> Num.int
  val instance_Word_WordNot_Num_int_dict : Word.WordNot_class Num.int
  val intLor : Num.int -> Num.int -> Num.int
  val instance_Word_WordOr_Num_int_dict : Word.WordOr_class Num.int
  val intLxor : Num.int -> Num.int -> Num.int
  val instance_Word_WordXor_Num_int_dict : Word.WordXor_class Num.int
  val intLand : Num.int -> Num.int -> Num.int
  val instance_Word_WordAnd_Num_int_dict : Word.WordAnd_class Num.int
  val intLsl : Num.int -> nat -> Num.int
  val instance_Word_WordLsl_Num_int_dict : Word.WordLsl_class Num.int
  val intAsr : Num.int -> nat -> Num.int
  val instance_Word_WordAsr_Num_int_dict : Word.WordAsr_class Num.int
  val naturalFromBitSeq : Word.bitSequence -> Num.natural
  val bitSeqFromNatural : 
                            (Maybe.maybe nat) -> Num.natural -> Word.bitSequence
  val naturalLor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordOr_Num_natural_dict : Word.WordOr_class Num.natural
  val naturalLxor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordXor_Num_natural_dict : Word.WordXor_class Num.natural
  val naturalLand : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordAnd_Num_natural_dict : Word.WordAnd_class Num.natural
  val naturalLsl : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsl_Num_natural_dict : Word.WordLsl_class Num.natural
  val naturalAsr : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsr_Num_natural_dict : Word.WordLsr_class Num.natural
  val instance_Word_WordAsr_Num_natural_dict : Word.WordAsr_class Num.natural
  val natFromBitSeq : Word.bitSequence -> nat
  val bitSeqFromNat : nat -> Word.bitSequence
  val natLor : nat -> nat -> nat
  val instance_Word_WordOr_nat_dict : Word.WordOr_class nat
  val natLxor : nat -> nat -> nat
  val instance_Word_WordXor_nat_dict : Word.WordXor_class nat
  val natLand : nat -> nat -> nat
  val instance_Word_WordAnd_nat_dict : Word.WordAnd_class nat
  val natLsl : nat -> nat -> nat
  val instance_Word_WordLsl_nat_dict : Word.WordLsl_class nat
  val natAsr : nat -> nat -> nat
  val instance_Word_WordAsr_nat_dict : Word.WordAsr_class nat

  module Instance_Basic_classes_Eq_Word_bitSequence = struct

    val = : Word.bitSequence -> Word.bitSequence -> bool
    val <> : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Num_Numeral_Word_bitSequence = struct

    val fromNumeral : numeral -> Word.bitSequence

  end

  module Instance_Basic_classes_Ord_Word_bitSequence = struct

    val compare : 
                    Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
    val < : Word.bitSequence -> Word.bitSequence -> bool
    val <= : Word.bitSequence -> Word.bitSequence -> bool
    val > : Word.bitSequence -> Word.bitSequence -> bool
    val >= : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Basic_classes_SetType_Word_bitSequence = struct

    val setElemCompare : 
                           Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Word_bitSequence = struct

    val ~ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumAdd_Word_bitSequence = struct

    val + : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMinus_Word_bitSequence = struct

    val - : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumSucc_Word_bitSequence = struct

    val succ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPred_Word_bitSequence = struct

    val pred : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMult_Word_bitSequence = struct

    val * : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPow_Word_bitSequence = struct

    val ** : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Num_NumIntegerDivision_Word_bitSequence = struct

    val div : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumDivision_Word_bitSequence = struct

    val / : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumRemainder_Word_bitSequence = struct

    val mod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Basic_classes_OrdMaxMin_Word_bitSequence = struct

    val max : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
    val min : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordNot_Word_bitSequence = struct

    val lnot : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordAnd_Word_bitSequence = struct

    val land : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordOr_Word_bitSequence = struct

    val lor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordXor_Word_bitSequence = struct

    val lxor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordLsl_Word_bitSequence = struct

    val lsl : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordLsr_Word_bitSequence = struct

    val lsr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordAsr_Word_bitSequence = struct

    val asr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordNot_Num_int32 = struct

    val lnot : Num.int32 -> Num.int32

  end

  module Instance_Word_WordOr_Num_int32 = struct

    val lor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordXor_Num_int32 = struct

    val lxor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordAnd_Num_int32 = struct

    val land : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordLsl_Num_int32 = struct

    val lsl : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordLsr_Num_int32 = struct

    val lsr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordAsr_Num_int32 = struct

    val asr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordNot_Num_int64 = struct

    val lnot : Num.int64 -> Num.int64

  end

  module Instance_Word_WordOr_Num_int64 = struct

    val lor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordXor_Num_int64 = struct

    val lxor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordAnd_Num_int64 = struct

    val land : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordLsl_Num_int64 = struct

    val lsl : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordLsr_Num_int64 = struct

    val lsr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordAsr_Num_int64 = struct

    val asr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordNot_Num_integer = struct

    val lnot : Num.integer -> Num.integer

  end

  module Instance_Word_WordOr_Num_integer = struct

    val lor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordXor_Num_integer = struct

    val lxor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordAnd_Num_integer = struct

    val land : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordLsl_Num_integer = struct

    val lsl : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordLsr_Num_integer = struct

    val lsr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordAsr_Num_integer = struct

    val asr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordNot_Num_int = struct

    val lnot : Num.int -> Num.int

  end

  module Instance_Word_WordOr_Num_int = struct

    val lor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordXor_Num_int = struct

    val lxor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordAnd_Num_int = struct

    val land : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordLsl_Num_int = struct

    val lsl : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordAsr_Num_int = struct

    val asr : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordOr_Num_natural = struct

    val lor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordXor_Num_natural = struct

    val lxor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordAnd_Num_natural = struct

    val land : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordLsl_Num_natural = struct

    val lsl : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordLsr_Num_natural = struct

    val lsr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordAsr_Num_natural = struct

    val asr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordOr_nat = struct

    val lor : nat -> nat -> nat

  end

  module Instance_Word_WordXor_nat = struct

    val lxor : nat -> nat -> nat

  end

  module Instance_Word_WordAnd_nat = struct

    val land : nat -> nat -> nat

  end

  module Instance_Word_WordLsl_nat = struct

    val lsl : nat -> nat -> nat

  end

  module Instance_Word_WordAsr_nat = struct

    val asr : nat -> nat -> nat

  end

end

module Sorting = struct

  val insert : forall 'a. 
                 (Basic_classes.Ord 'a) => 'a -> (list 'a) -> list 'a
  val isPermutation : forall 'a. 
                        (Basic_classes.Eq 'a) => 
                          (list 'a) -> (list 'a) -> bool
  val isPermutationBy : forall 'a. 
                          ('a -> 'a -> bool) -> (list 'a) -> (list 'a) -> 
                                                             bool
  val isSorted : forall 'a. (Basic_classes.Ord 'a) => (list 'a) -> bool
  val isSortedBy : forall 'a. ('a -> 'a -> bool) -> (list 'a) -> bool
  val insertBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> list 'a
  val insertSort : forall 'a. (Basic_classes.Ord 'a) => (list 'a) -> list 'a
  val insertSortBy : forall 'a. ('a -> 'a -> bool) -> (list 'a) -> list 'a
  val sort : forall 'a. (Basic_classes.Ord 'a) => (list 'a) -> list 'a
  val sortBy : forall 'a. ('a -> 'a -> bool) -> (list 'a) -> list 'a
  val sortByOrd : forall 'a. 
                    ('a -> 'a -> Basic_classes.ordering) -> (list 'a) -> 
                                                            list 'a
  val predicate_of_ord : forall 'a. 
                           ('a -> 'a -> Basic_classes.ordering) -> 'a -> 
                                                                   'a -> 
                                                                   bool

end

module Relation = struct
  type rel_pred 'a 'b = 'a -> 'b -> bool
  type rel_set 'a 'b = set ('a * 'b)
  type rel 'a 'b = Relation.rel_set 'a 'b

  val relToSet : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                     (Relation.rel 'a 'b) -> Relation.rel_set 'a 'b
  val relFromSet : forall 'a 'b. 
                     (Basic_classes.SetType 'a)
                       (Basic_classes.SetType 'b) => 
                       (Relation.rel_set 'a 'b) -> Relation.rel 'a 'b
  val relEq : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (Relation.rel 'a 'b) -> (Relation.rel 'a 'b) -> bool
  val relToPred : forall 'a 'b. 
                    (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                      (Relation.rel 'a 'b) -> Relation.rel_pred 'a 'b
  val relFromPred : forall 'a 'b. 
                      (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                        (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                        (set 'a) -> (set 'b) -> (Relation.rel_pred 'a 'b) -> 
                                                Relation.rel 'a 'b
  val inRel : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                  (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                  'a -> 'b -> (Relation.rel 'a 'b) -> bool
  val relEmpty : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                     Relation.rel 'a 'b
  val relAdd : forall 'a 'b. 
                 (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                   'a -> 'b -> (Relation.rel 'a 'b) -> Relation.rel 'a 'b
  val relIdOn : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Relation.rel 'a 'a
  val relId : forall 'a. 
                (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                  Relation.rel 'a 'a
  val relUnion : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                     (Relation.rel 'a 'b) -> (Relation.rel 'a 'b) -> 
                                             Relation.rel 'a 'b
  val relIntersection : forall 'a 'b. 
                          (Basic_classes.SetType 'a)
                            (Basic_classes.SetType 'b) (Basic_classes.Eq 'a)
                            (Basic_classes.Eq 'b) => 
                            (Relation.rel 'a 'b) -> (Relation.rel 'a 'b) -> 
                                                    Relation.rel 'a 'b
  val relComp : forall 'a 'b 'c. 
                  (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                    (Basic_classes.SetType 'c) (Basic_classes.Eq 'a)
                    (Basic_classes.Eq 'b) => 
                    (Relation.rel 'a 'b) -> (Relation.rel 'b 'c) -> Relation.rel 
                                                                    'a 
                                                                    'c
  val relRestrict : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                        (Relation.rel 'a 'a) -> (set 'a) -> Relation.rel 
                                                            'a 'a
  val relConverse : forall 'a 'b. 
                      (Basic_classes.SetType 'a)
                        (Basic_classes.SetType 'b) => 
                        (Relation.rel 'a 'b) -> Relation.rel 'b 'a
  val relDomain : forall 'a 'b. 
                    (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                      (Relation.rel 'a 'b) -> set 'a
  val relRange : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                     (Relation.rel 'a 'b) -> set 'b
  val relDefinedOn : forall 'a. 
                       (Basic_classes.SetType 'a) => 
                         (Relation.rel 'a 'a) -> set 'a
  val relOver : forall 'a. 
                  (Basic_classes.SetType 'a) => 
                    (Relation.rel 'a 'a) -> (set 'a) -> bool
  val relApply : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                     (Basic_classes.Eq 'a) => 
                     (Relation.rel 'a 'b) -> (set 'a) -> set 'b
  val isSubrel : forall 'a 'b. 
                   (Basic_classes.SetType 'a) (Basic_classes.SetType 'b)
                     (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                     (Relation.rel 'a 'b) -> (Relation.rel 'a 'b) -> bool
  val isReflexiveOn : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                          (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isReflexive : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                        (Relation.rel 'a 'a) -> bool
  val isIrreflexiveOn : forall 'a. 
                          (Basic_classes.SetType 'a)
                            (Basic_classes.Eq 'a) => 
                            (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isIrreflexive : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                          (Relation.rel 'a 'a) -> bool
  val isSymmetricOn : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                          (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isSymmetric : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                        (Relation.rel 'a 'a) -> bool
  val isAntisymmetricOn : forall 'a. 
                            (Basic_classes.SetType 'a)
                              (Basic_classes.Eq 'a) => 
                              (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isAntisymmetric : forall 'a. 
                          (Basic_classes.SetType 'a)
                            (Basic_classes.Eq 'a) => 
                            (Relation.rel 'a 'a) -> bool
  val isTransitiveOn : forall 'a. 
                         (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                           (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isTransitive : forall 'a. 
                       (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                         (Relation.rel 'a 'a) -> bool
  val isTotalOn : forall 'a. 
                    (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                      (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isTotal : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (Relation.rel 'a 'a) -> bool
  val isTrichotomousOn : forall 'a. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.Eq 'a) => 
                             (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isTrichotomous : forall 'a. 
                         (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                           (Relation.rel 'a 'a) -> bool
  val isSingleValued : forall 'a 'b. 
                         (Basic_classes.SetType 'a)
                           (Basic_classes.SetType 'b) (Basic_classes.Eq 'a)
                           (Basic_classes.Eq 'b) => 
                           (Relation.rel 'a 'b) -> bool
  val isEquivalenceOn : forall 'a. 
                          (Basic_classes.SetType 'a)
                            (Basic_classes.Eq 'a) => 
                            (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isEquivalence : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                          (Relation.rel 'a 'a) -> bool
  val isWellFounded : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                          (Relation.rel 'a 'a) -> bool
  val isPreorderOn : forall 'a. 
                       (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                         (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isPreorder : forall 'a. 
                     (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                       (Relation.rel 'a 'a) -> bool
  val isPartialOrderOn : forall 'a. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.Eq 'a) => 
                             (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isStrictPartialOrderOn : forall 'a. 
                                 (Basic_classes.SetType 'a)
                                   (Basic_classes.Eq 'a) => 
                                   (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isStrictPartialOrder : forall 'a. 
                               (Basic_classes.SetType 'a)
                                 (Basic_classes.Eq 'a) => 
                                 (Relation.rel 'a 'a) -> bool
  val isPartialOrder : forall 'a. 
                         (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                           (Relation.rel 'a 'a) -> bool
  val isTotalOrderOn : forall 'a. 
                         (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                           (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isStrictTotalOrderOn : forall 'a. 
                               (Basic_classes.SetType 'a)
                                 (Basic_classes.Eq 'a) => 
                                 (Relation.rel 'a 'a) -> (set 'a) -> bool
  val isTotalOrder : forall 'a. 
                       (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                         (Relation.rel 'a 'a) -> bool
  val isStrictTotalOrder : forall 'a. 
                             (Basic_classes.SetType 'a)
                               (Basic_classes.Eq 'a) => 
                               (Relation.rel 'a 'a) -> bool
  val transitiveClosure : forall 'a. 
                            (Basic_classes.SetType 'a)
                              (Basic_classes.Eq 'a) => 
                              (Relation.rel 'a 'a) -> Relation.rel 'a 'a
  val transitiveClosureByEq : forall 'a. 
                                ('a -> 'a -> bool) -> (Relation.rel 'a 'a) -> 
                                                      Relation.rel 'a 'a
  val transitiveClosureByCmp : forall 'a. 
                                 (('a * 'a) -> ('a * 'a) -> Basic_classes.ordering) -> 
                                 (Relation.rel 'a 'a) -> Relation.rel 'a 'a
  val transitiveClosureAdd : forall 'a. 
                               (Basic_classes.SetType 'a)
                                 (Basic_classes.Eq 'a) => 
                                 'a -> 'a -> (Relation.rel 'a 'a) -> 
                                             Relation.rel 'a 'a
  val reflexiveTransitiveClosureOn : forall 'a. 
                                       (Basic_classes.SetType 'a)
                                         (Basic_classes.Eq 'a) => 
                                         (Relation.rel 'a 'a) -> (set 'a) -> 
                                                                 Relation.rel 
                                                                 'a 'a
  val reflexiveTransitiveClosure : forall 'a. 
                                     (Basic_classes.SetType 'a)
                                       (Basic_classes.Eq 'a) => 
                                       (Relation.rel 'a 'a) -> Relation.rel 
                                                               'a 'a
  val withoutTransitiveEdges : forall 'a. 
                                 (Basic_classes.SetType 'a)
                                   (Basic_classes.Eq 'a) => 
                                   (Relation.rel 'a 'a) -> Relation.rel 'a 'a

end

module Pervasives_extra = struct
  type natural
  class Show
  class Eq
  type Eq_class 'a = {
      val isEqual_method : forall 'a. 
                             (Basic_classes.Eq_class 'a) -> 'a -> 'a -> bool

      val isInequal_method : forall 'a. 
                               (Basic_classes.Eq_class 'a) -> 'a -> 'a -> 
                                                                    bool

  }
  type ordering
  type int
  class Ord
  type Ord_class 'a = {
      val compare_method : forall 'a. 
                             (Basic_classes.Ord_class 'a) -> 'a -> 'a -> 
                                                                   Basic_classes.ordering

      val isLess_method : forall 'a. 
                            (Basic_classes.Ord_class 'a) -> 'a -> 'a -> bool

      val isLessEqual_method : forall 'a. 
                                 (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                 'a -> 
                                                                 bool

      val isGreater_method : forall 'a. 
                               (Basic_classes.Ord_class 'a) -> 'a -> 
                                                               'a -> 
                                                               bool

      val isGreaterEqual_method : forall 'a. 
                                    (Basic_classes.Ord_class 'a) -> 'a -> 
                                                                    'a -> 
                                                                    bool

  }
  class OrdMaxMin
  type OrdMaxMin_class 'a = {
      val max_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

      val min_method : forall 'a. 
                         (Basic_classes.OrdMaxMin_class 'a) -> 'a -> 'a -> 'a

  }
  class SetType
  type SetType_class 'a = {
      val setElemCompare_method : forall 'a. 
                                    (Basic_classes.SetType_class 'a) -> 
                                    'a -> 'a -> Basic_classes.ordering

  }
  type maybe 'a
  type map 'k 'v
  class Numeral
  type Numeral_class 'a = {
      val fromNumeral_method : forall 'a. 
                                 (Num.Numeral_class 'a) -> numeral -> 'a

  }
  class NumNegate
  type NumNegate_class 'a = {
      val numNegate_method : forall 'a. (Num.NumNegate_class 'a) -> 'a -> 'a

  }
  class NumAbs
  type NumAbs_class 'a = {
      val abs_method : forall 'a. (Num.NumAbs_class 'a) -> 'a -> 'a

  }
  class NumAdd
  type NumAdd_class 'a = {
      val numAdd_method : forall 'a. (Num.NumAdd_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMinus
  type NumMinus_class 'a = {
      val numMinus_method : forall 'a. 
                              (Num.NumMinus_class 'a) -> 'a -> 'a -> 'a

  }
  class NumMult
  type NumMult_class 'a = {
      val numMult_method : forall 'a. 
                             (Num.NumMult_class 'a) -> 'a -> 'a -> 'a

  }
  class NumPow
  type NumPow_class 'a = {
      val numPow_method : forall 'a. (Num.NumPow_class 'a) -> 'a -> nat -> 'a

  }
  class NumDivision
  type NumDivision_class 'a = {
      val numDivision_method : forall 'a. 
                                 (Num.NumDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumIntegerDivision
  type NumIntegerDivision_class 'a = {
      val div_method : forall 'a. 
                         (Num.NumIntegerDivision_class 'a) -> 'a -> 'a -> 'a

  }
  class NumRemainder
  type NumRemainder_class 'a = {
      val mod_method : forall 'a. 
                         (Num.NumRemainder_class 'a) -> 'a -> 'a -> 'a

  }
  class NumSucc
  type NumSucc_class 'a = {
      val succ_method : forall 'a. (Num.NumSucc_class 'a) -> 'a -> 'a

  }
  class NumPred
  type NumPred_class 'a = {
      val pred_method : forall 'a. (Num.NumPred_class 'a) -> 'a -> 'a

  }
  type integer
  type int32
  type int64
  type rational
  type real
  type float64
  type float32
  type Show_class 'a = {
      val show_method : forall 'a. (Show.Show_class 'a) -> 'a -> string

  }
  type mword 'a
  class Size
  type Size_class 'a = {
      val size_method : forall 'a. (Machine_word.Size_class 'a) -> nat

  }
  type itself 'a
  type ty1
  type ty2
  type ty3
  type ty4
  type ty5
  type ty6
  type ty7
  type ty8
  type ty9
  type ty10
  type ty11
  type ty12
  type ty13
  type ty14
  type ty15
  type ty16
  type ty17
  type ty18
  type ty19
  type ty20
  type ty21
  type ty22
  type ty23
  type ty24
  type ty25
  type ty26
  type ty27
  type ty28
  type ty29
  type ty30
  type ty31
  type ty32
  type ty33
  type ty34
  type ty35
  type ty36
  type ty37
  type ty38
  type ty39
  type ty40
  type ty41
  type ty42
  type ty43
  type ty44
  type ty45
  type ty46
  type ty47
  type ty48
  type ty49
  type ty50
  type ty51
  type ty52
  type ty53
  type ty54
  type ty55
  type ty56
  type ty57
  type ty58
  type ty59
  type ty60
  type ty61
  type ty62
  type ty63
  type ty64
  type ty65
  type ty66
  type ty67
  type ty68
  type ty69
  type ty70
  type ty71
  type ty72
  type ty73
  type ty74
  type ty75
  type ty76
  type ty77
  type ty78
  type ty79
  type ty80
  type ty81
  type ty82
  type ty83
  type ty84
  type ty85
  type ty86
  type ty87
  type ty88
  type ty89
  type ty90
  type ty91
  type ty92
  type ty93
  type ty94
  type ty95
  type ty96
  type ty97
  type ty98
  type ty99
  type ty100
  type ty101
  type ty102
  type ty103
  type ty104
  type ty105
  type ty106
  type ty107
  type ty108
  type ty109
  type ty110
  type ty111
  type ty112
  type ty113
  type ty114
  type ty115
  type ty116
  type ty117
  type ty118
  type ty119
  type ty120
  type ty121
  type ty122
  type ty123
  type ty124
  type ty125
  type ty126
  type ty127
  type ty128
  type ty129
  type ty130
  type ty131
  type ty132
  type ty133
  type ty134
  type ty135
  type ty136
  type ty137
  type ty138
  type ty139
  type ty140
  type ty141
  type ty142
  type ty143
  type ty144
  type ty145
  type ty146
  type ty147
  type ty148
  type ty149
  type ty150
  type ty151
  type ty152
  type ty153
  type ty154
  type ty155
  type ty156
  type ty157
  type ty158
  type ty159
  type ty160
  type ty161
  type ty162
  type ty163
  type ty164
  type ty165
  type ty166
  type ty167
  type ty168
  type ty169
  type ty170
  type ty171
  type ty172
  type ty173
  type ty174
  type ty175
  type ty176
  type ty177
  type ty178
  type ty179
  type ty180
  type ty181
  type ty182
  type ty183
  type ty184
  type ty185
  type ty186
  type ty187
  type ty188
  type ty189
  type ty190
  type ty191
  type ty192
  type ty193
  type ty194
  type ty195
  type ty196
  type ty197
  type ty198
  type ty199
  type ty200
  type ty201
  type ty202
  type ty203
  type ty204
  type ty205
  type ty206
  type ty207
  type ty208
  type ty209
  type ty210
  type ty211
  type ty212
  type ty213
  type ty214
  type ty215
  type ty216
  type ty217
  type ty218
  type ty219
  type ty220
  type ty221
  type ty222
  type ty223
  type ty224
  type ty225
  type ty226
  type ty227
  type ty228
  type ty229
  type ty230
  type ty231
  type ty232
  type ty233
  type ty234
  type ty235
  type ty236
  type ty237
  type ty238
  type ty239
  type ty240
  type ty241
  type ty242
  type ty243
  type ty244
  type ty245
  type ty246
  type ty247
  type ty248
  type ty249
  type ty250
  type ty251
  type ty252
  type ty253
  type ty254
  type ty255
  type ty256
  type ty257
  class MapKeyType
  type MapKeyType_class 'a = {
      val mapKeyCompare_method : forall 'a. 
                                   (Map.MapKeyType_class 'a) -> 'a -> 
                                                                'a -> 
                                                                Basic_classes.ordering

  }
  type either 'a 'b
  type bitSequence
  class WordNot
  type WordNot_class 'a = {
      val lnot_method : forall 'a. (Word.WordNot_class 'a) -> 'a -> 'a

  }
  class WordAnd
  type WordAnd_class 'a = {
      val land_method : forall 'a. (Word.WordAnd_class 'a) -> 'a -> 'a -> 'a

  }
  class WordOr
  type WordOr_class 'a = {
      val lor_method : forall 'a. (Word.WordOr_class 'a) -> 'a -> 'a -> 'a

  }
  class WordXor
  type WordXor_class 'a = {
      val lxor_method : forall 'a. (Word.WordXor_class 'a) -> 'a -> 'a -> 'a

  }
  class WordLsl
  type WordLsl_class 'a = {
      val lsl_method : forall 'a. (Word.WordLsl_class 'a) -> 'a -> nat -> 'a

  }
  class WordLsr
  type WordLsr_class 'a = {
      val lsr_method : forall 'a. (Word.WordLsr_class 'a) -> 'a -> nat -> 'a

  }
  class WordAsr
  type WordAsr_class 'a = {
      val asr_method : forall 'a. (Word.WordAsr_class 'a) -> 'a -> nat -> 'a

  }

  val failwith : forall 'a. string -> 'a
  val fail : forall 'a. 'a
  val ensure : bool -> string -> unit
  val not : bool -> bool
  val ~ : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val && : bool -> bool -> bool
  val and : bool -> bool -> bool
  val || : bool -> bool -> bool
  val or : bool -> bool -> bool
  val --> : bool -> bool -> bool
  val imp : bool -> bool -> bool
  val <-> : bool -> bool -> bool
  val equiv : bool -> bool -> bool
  val = : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val xor : bool -> bool -> bool
  val isEqual : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val <> : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val isInequal : forall 'a. (Basic_classes.Eq 'a) => 'a -> 'a -> bool
  val unsafe_structural_equality : forall 'a. 'a -> 'a -> bool
  val unsafe_structural_inequality : forall 'a. 'a -> 'a -> bool
  val instance_Basic_classes_Eq_var_dict : forall 'a. 
                                             Basic_classes.Eq_class 'a
  val LT : Basic_classes.ordering
  val EQ : Basic_classes.ordering
  val GT : Basic_classes.ordering
  val orderingIsLess : Basic_classes.ordering -> bool
  val orderingIsGreater : Basic_classes.ordering -> bool
  val orderingIsEqual : Basic_classes.ordering -> bool
  val orderingIsLessEqual : Basic_classes.ordering -> bool
  val orderingIsGreaterEqual : Basic_classes.ordering -> bool
  val ordering_cases : forall 'a. 
                         Basic_classes.ordering -> 'a -> 'a -> 'a -> 'a
  val orderingEqual : 
                        Basic_classes.ordering -> Basic_classes.ordering -> 
                                                  bool
  val instance_Basic_classes_Eq_Basic_classes_ordering_dict : 
                                                                Basic_classes.Eq_class 
                                                                Basic_classes.ordering
  val compare : forall 'a. 
                  (Basic_classes.Ord 'a) => 
                    'a -> 'a -> Basic_classes.ordering
  val < : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLess : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val <= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isLessEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val > : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreater : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val >= : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val isGreaterEqual : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> bool
  val defaultCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering
  val defaultLess : forall 'a. 'a -> 'a -> bool
  val defaultLessEq : forall 'a. 'a -> 'a -> bool
  val defaultGreater : forall 'a. 'a -> 'a -> bool
  val defaultGreaterEq : forall 'a. 'a -> 'a -> bool
  val genericCompare : forall 'a. 
                         ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                               'a -> 'a -> Basic_classes.ordering
  val ordCompare : forall 'a. 
                     (Basic_classes.Eq 'a) (Basic_classes.Ord 'a) => 
                       'a -> 'a -> Basic_classes.ordering
  val max : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val min : forall 'a. (Basic_classes.OrdMaxMin 'a) => 'a -> 'a -> 'a
  val minByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val maxByLessEqual : forall 'a. ('a -> 'a -> bool) -> 'a -> 'a -> 'a
  val defaultMax : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val defaultMin : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
  val instance_Basic_classes_OrdMaxMin_var_dict : forall 'a. 
                                                    (Basic_classes.Ord 'a) => 
                                                      Basic_classes.OrdMaxMin_class 
                                                      'a
  val setElemCompare : forall 'a. 
                         (Basic_classes.SetType 'a) => 
                           'a -> 'a -> Basic_classes.ordering
  val instance_Basic_classes_SetType_var_dict : forall 'a. 
                                                  Basic_classes.SetType_class 
                                                  'a
  val instance_Basic_classes_Eq_bool_dict : Basic_classes.Eq_class bool
  val boolCompare : bool -> bool -> Basic_classes.ordering
  val instance_Basic_classes_SetType_bool_dict : 
                                                   Basic_classes.SetType_class 
                                                   bool
  val charEqual : char -> char -> bool
  val instance_Basic_classes_Eq_char_dict : Basic_classes.Eq_class char
  val stringEquality : string -> string -> bool
  val instance_Basic_classes_Eq_string_dict : Basic_classes.Eq_class string
  val pairEqual : forall 'a 'b. 
                    (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                      ('a * 'b) -> ('a * 'b) -> bool
  val pairEqualBy : forall 'a 'b. 
                      ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a * 'b) -> 
                                                                  ('a * 'b) -> 
                                                                  bool
  val instance_Basic_classes_Eq_tup2_dict : forall 'a 'b. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b)
  val pairCompare : forall 'a 'b. 
                      ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                              'b -> Basic_classes.ordering) -> 
                                                              ('a * 'b) -> 
                                                              ('a * 'b) -> 
                                                              Basic_classes.ordering
  val pairLess : forall 'a 'b. 
                   (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                     ('b * 'a) -> ('b * 'a) -> bool
  val pairLessEq : forall 'a 'b. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                       ('b * 'a) -> ('b * 'a) -> bool
  val pairGreater : forall 'a 'b. 
                      (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                        ('a * 'b) -> ('a * 'b) -> bool
  val pairGreaterEq : forall 'a 'b. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                          ('a * 'b) -> ('a * 'b) -> bool
  val instance_Basic_classes_Ord_tup2_dict : forall 'a 'b. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b)
  val instance_Basic_classes_SetType_tup2_dict : forall 'a 'b. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b)
  val tripleEqual : forall 'a 'b 'c. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                        (Basic_classes.Eq 'c) => 
                        ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val instance_Basic_classes_Eq_tup3_dict : forall 'a 'b 'c. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c)
  val tripleCompare : forall 'a 'b 'c. 
                        ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                'b -> 
                                                                Basic_classes.ordering) -> 
                                                                ('c -> 
                                                                'c -> 
                                                                Basic_classes.ordering) -> 
                                                                ('a * 'b * 'c) -> 
                                                                ('a * 'b * 'c) -> 
                                                                Basic_classes.ordering
  val tripleLess : forall 'a 'b 'c. 
                     (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                       (Basic_classes.Ord 'c) => 
                       ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleLessEq : forall 'a 'b 'c. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) => 
                         ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
  val tripleGreater : forall 'a 'b 'c. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) => 
                          ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val tripleGreaterEq : forall 'a 'b 'c. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) => 
                            ('c * 'b * 'a) -> ('c * 'b * 'a) -> bool
  val instance_Basic_classes_Ord_tup3_dict : forall 'a 'b 'c. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c)
  val instance_Basic_classes_SetType_tup3_dict : forall 'a 'b 'c. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c)
  val quadrupleEqual : forall 'a 'b 'c 'd. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                           ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val instance_Basic_classes_Eq_tup4_dict : forall 'a 'b 'c 'd. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd)
  val quadrupleCompare : forall 'a 'b 'c 'd. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd) -> 
                                                                   Basic_classes.ordering
  val quadrupleLess : forall 'a 'b 'c 'd. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                          ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
  val quadrupleLessEq : forall 'a 'b 'c 'd. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                            ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                   bool
  val quadrupleGreater : forall 'a 'b 'c 'd. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c)
                             (Basic_classes.Ord 'd) => 
                             ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                    bool
  val quadrupleGreaterEq : forall 'a 'b 'c 'd. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c)
                               (Basic_classes.Ord 'd) => 
                               ('d * 'c * 'b * 'a) -> ('d * 'c * 'b * 'a) -> 
                                                      bool
  val instance_Basic_classes_Ord_tup4_dict : forall 'a 'b 'c 'd. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd)
  val instance_Basic_classes_SetType_tup4_dict : forall 'a 'b 'c 'd. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd)
  val quintupleEqual : forall 'a 'b 'c 'd 'e. 
                         (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                           (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                           (Basic_classes.Eq 'e) => 
                           ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                        'd * 'e) -> bool
  val instance_Basic_classes_Eq_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e)
  val quintupleCompare : forall 'a 'b 'c 'd 'e. 
                           ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                   'b -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('c -> 
                                                                   'c -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('d -> 
                                                                   'd -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('e -> 
                                                                   'e -> 
                                                                   Basic_classes.ordering) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   ('a * 
                                                                    'b * 
                                                                    'c * 
                                                                    'd * 
                                                                    'e) -> 
                                                                   Basic_classes.ordering
  val quintupleLess : forall 'a 'b 'c 'd 'e. 
                        (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                          (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                          (Basic_classes.Ord 'e) => 
                          ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                      bool
  val quintupleLessEq : forall 'a 'b 'c 'd 'e. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) => 
                            ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                         'd * 'e) -> 
                                                        bool
  val quintupleGreater : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                             (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                             (Basic_classes.Ord 'e) => 
                             ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 'c * 
                                                          'b * 'a) -> 
                                                         bool
  val quintupleGreaterEq : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                               (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                               (Basic_classes.Ord 'e) => 
                               ('e * 'd * 'c * 'b * 'a) -> ('e * 'd * 
                                                            'c * 'b * 
                                                            'a) -> bool
  val instance_Basic_classes_Ord_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e)
  val instance_Basic_classes_SetType_tup5_dict : forall 'a 'b 'c 'd 'e. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 'd * 'e)
  val sextupleEqual : forall 'a 'b 'c 'd 'e 'f. 
                        (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                          (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                          (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                          ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                            'c * 'd * 
                                                            'e * 'f) -> 
                                                           bool
  val instance_Basic_classes_Eq_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                              (Basic_classes.Eq 'a)
                                                (Basic_classes.Eq 'b)
                                                (Basic_classes.Eq 'c)
                                                (Basic_classes.Eq 'd)
                                                (Basic_classes.Eq 'e)
                                                (Basic_classes.Eq 'f) => 
                                                Basic_classes.Eq_class 
                                                ('a * 'b * 'c * 'd * 'e * 'f)
  val sextupleCompare : forall 'a 'b 'c 'd 'e 'f. 
                          ('a -> 'a -> Basic_classes.ordering) -> ('b -> 
                                                                  'b -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('c -> 
                                                                  'c -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('d -> 
                                                                  'd -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('e -> 
                                                                  'e -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('f -> 
                                                                  'f -> 
                                                                  Basic_classes.ordering) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  ('a * 
                                                                   'b * 
                                                                   'c * 
                                                                   'd * 
                                                                   'e * 
                                                                   'f) -> 
                                                                  Basic_classes.ordering
  val sextupleLess : forall 'a 'b 'c 'd 'e 'f. 
                       (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                         (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                         (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                         ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                           'c * 'd * 
                                                           'e * 'f) -> 
                                                          bool
  val sextupleLessEq : forall 'a 'b 'c 'd 'e 'f. 
                         (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                           (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                           (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                           ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                             'c * 'd * 
                                                             'e * 'f) -> 
                                                            bool
  val sextupleGreater : forall 'a 'b 'c 'd 'e 'f. 
                          (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                            (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                            (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                            ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 'e * 
                                                              'd * 'c * 
                                                              'b * 'a) -> 
                                                             bool
  val sextupleGreaterEq : forall 'a 'b 'c 'd 'e 'f. 
                            (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                              (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                              (Basic_classes.Ord 'e)
                              (Basic_classes.Ord 'f) => 
                              ('f * 'e * 'd * 'c * 'b * 'a) -> ('f * 
                                                                'e * 
                                                                'd * 
                                                                'c * 
                                                                'b * 
                                                                'a) -> 
                                                               bool
  val instance_Basic_classes_Ord_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                               (Basic_classes.Ord 'a)
                                                 (Basic_classes.Ord 'b)
                                                 (Basic_classes.Ord 'c)
                                                 (Basic_classes.Ord 'd)
                                                 (Basic_classes.Ord 'e)
                                                 (Basic_classes.Ord 'f) => 
                                                 Basic_classes.Ord_class 
                                                 ('a * 'b * 'c * 'd * 'e * 'f)
  val instance_Basic_classes_SetType_tup6_dict : forall 'a 'b 'c 'd 'e 'f. 
                                                   (Basic_classes.SetType 'a)
                                                     (Basic_classes.SetType
                                                      'b)
                                                     (Basic_classes.SetType
                                                      'c)
                                                     (Basic_classes.SetType
                                                      'd)
                                                     (Basic_classes.SetType
                                                      'e)
                                                     (Basic_classes.SetType
                                                      'f) => 
                                                     Basic_classes.SetType_class 
                                                     ('a * 'b * 'c * 
                                                      'd * 'e * 'f)
  val id : forall 'a. 'a -> 'a
  val const : forall 'a 'b. 'a -> 'b -> 'a
  val comb : forall 'a 'b 'c. ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
  val $ : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val apply : forall 'a 'b. ('a -> 'b) -> 'a -> 'b
  val $> : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val rev_apply : forall 'a 'b. 'a -> ('a -> 'b) -> 'b
  val flip : forall 'a 'b 'c. ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
  val curry : forall 'a 'b 'c. (('a * 'b) -> 'c) -> 'a -> 'b -> 'c
  val uncurry : forall 'a 'b 'c. ('a -> 'b -> 'c) -> ('a * 'b) -> 'c
  val maybe : forall 'a 'b. 'b -> ('a -> 'b) -> (Maybe.maybe 'a) -> 'b
  val Nothing : forall 'a. Maybe.maybe 'a
  val Just : forall 'a. 'a -> Maybe.maybe 'a
  val maybeEqual : forall 'a. 
                     (Basic_classes.Eq 'a) => 
                       (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
  val maybeEqualBy : forall 'a. 
                       ('a -> 'a -> bool) -> (Maybe.maybe 'a) -> (Maybe.maybe 
                                                                 'a) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Maybe_maybe_dict : forall 'a. 
                                                     (Basic_classes.Eq 'a) => 
                                                       Basic_classes.Eq_class 
                                                       (Maybe.maybe 'a)
  val maybeCompare : forall 'a 'b. 
                       ('b -> 'a -> Basic_classes.ordering) -> (Maybe.maybe 
                                                               'b) -> 
                                                               (Maybe.maybe 
                                                               'a) -> 
                                                               Basic_classes.ordering
  val instance_Basic_classes_SetType_Maybe_maybe_dict : forall 'a. 
                                                          (Basic_classes.SetType
                                                           'a) => 
                                                            Basic_classes.SetType_class 
                                                            (Maybe.maybe 'a)
  val instance_Basic_classes_Ord_Maybe_maybe_dict : forall 'a. 
                                                      (Basic_classes.Ord 'a) => 
                                                        Basic_classes.Ord_class 
                                                        (Maybe.maybe 'a)
  val isJust : forall 'a. (Maybe.maybe 'a) -> bool
  val isNothing : forall 'a. (Maybe.maybe 'a) -> bool
  val fromMaybe : forall 'a. 'a -> (Maybe.maybe 'a) -> 'a
  val map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val bind : forall 'a 'b. 
               (Maybe.maybe 'a) -> ('a -> Maybe.maybe 'b) -> Maybe.maybe 'b
  val fromNumeral : forall 'a. (Num.Numeral 'a) => numeral -> 'a
  val numNegate : forall 'a. (Num.NumNegate 'a) => 'a -> 'a
  val abs : forall 'a. (Num.NumAbs 'a) => 'a -> 'a
  val + : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val numAdd : forall 'a. (Num.NumAdd 'a) => 'a -> 'a -> 'a
  val - : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val numMinus : forall 'a. (Num.NumMinus 'a) => 'a -> 'a -> 'a
  val * : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val numMult : forall 'a. (Num.NumMult 'a) => 'a -> 'a -> 'a
  val ** : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val numPow : forall 'a. (Num.NumPow 'a) => 'a -> nat -> 'a
  val / : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val numDivision : forall 'a. (Num.NumDivision 'a) => 'a -> 'a -> 'a
  val div : forall 'a. (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val numIntegerDivision : forall 'a. 
                             (Num.NumIntegerDivision 'a) => 'a -> 'a -> 'a
  val mod : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val numRemainder : forall 'a. (Num.NumRemainder 'a) => 'a -> 'a -> 'a
  val succ : forall 'a. (Num.NumSucc 'a) => 'a -> 'a
  val pred : forall 'a. (Num.NumPred 'a) => 'a -> 'a
  val natFromNumeral : numeral -> nat
  val instance_Num_Numeral_nat_dict : Num.Numeral_class nat
  val natEq : nat -> nat -> bool
  val instance_Basic_classes_Eq_nat_dict : Basic_classes.Eq_class nat
  val natLess : nat -> nat -> bool
  val natLessEqual : nat -> nat -> bool
  val natGreater : nat -> nat -> bool
  val natGreaterEqual : nat -> nat -> bool
  val natCompare : nat -> nat -> Basic_classes.ordering
  val instance_Basic_classes_Ord_nat_dict : Basic_classes.Ord_class nat
  val instance_Basic_classes_SetType_nat_dict : 
                                                  Basic_classes.SetType_class 
                                                  nat
  val natAdd : nat -> nat -> nat
  val plus : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val instance_Num_NumAdd_nat_dict : Num.NumAdd_class nat
  val natMinus : nat -> nat -> nat
  val minus : forall 'a. 
                (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                           Machine_word.mword 'a
  val instance_Num_NumMinus_nat_dict : Num.NumMinus_class nat
  val natSucc : nat -> nat
  val instance_Num_NumSucc_nat_dict : Num.NumSucc_class nat
  val natPred : nat -> nat
  val instance_Num_NumPred_nat_dict : Num.NumPred_class nat
  val natMult : nat -> nat -> nat
  val instance_Num_NumMult_nat_dict : Num.NumMult_class nat
  val natDiv : nat -> nat -> nat
  val instance_Num_NumIntegerDivision_nat_dict : 
                                                   Num.NumIntegerDivision_class 
                                                   nat
  val instance_Num_NumDivision_nat_dict : Num.NumDivision_class nat
  val natMod : nat -> nat -> nat
  val modulo : forall 'a. 
                 (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                            Machine_word.mword 'a
  val instance_Num_NumRemainder_nat_dict : Num.NumRemainder_class nat
  val gen_pow_aux : forall 'a. ('a -> 'a -> 'a) -> 'a -> 'a -> nat -> 'a
  val gen_pow : forall 'a. 'a -> ('a -> 'a -> 'a) -> 'a -> nat -> 'a
  val natPow : nat -> nat -> nat
  val ^ : string -> string -> string
  val instance_Num_NumPow_nat_dict : Num.NumPow_class nat
  val natMin : nat -> nat -> nat
  val natMax : nat -> nat -> nat
  val instance_Basic_classes_OrdMaxMin_nat_dict : 
                                                    Basic_classes.OrdMaxMin_class 
                                                    nat
  val naturalFromNumeral : numeral -> Num.natural
  val instance_Num_Numeral_Num_natural_dict : Num.Numeral_class Num.natural
  val naturalEq : Num.natural -> Num.natural -> bool
  val instance_Basic_classes_Eq_Num_natural_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.natural
  val naturalLess : Num.natural -> Num.natural -> bool
  val naturalLessEqual : Num.natural -> Num.natural -> bool
  val naturalGreater : Num.natural -> Num.natural -> bool
  val naturalGreaterEqual : Num.natural -> Num.natural -> bool
  val naturalCompare : Num.natural -> Num.natural -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_natural_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.natural
  val instance_Basic_classes_SetType_Num_natural_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.natural
  val naturalAdd : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumAdd_Num_natural_dict : Num.NumAdd_class Num.natural
  val naturalMinus : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMinus_Num_natural_dict : Num.NumMinus_class Num.natural
  val naturalSucc : Num.natural -> Num.natural
  val instance_Num_NumSucc_Num_natural_dict : Num.NumSucc_class Num.natural
  val naturalPred : Num.natural -> Num.natural
  val instance_Num_NumPred_Num_natural_dict : Num.NumPred_class Num.natural
  val naturalMult : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumMult_Num_natural_dict : Num.NumMult_class Num.natural
  val naturalPow : Num.natural -> nat -> Num.natural
  val instance_Num_NumPow_Num_natural_dict : Num.NumPow_class Num.natural
  val naturalDiv : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumIntegerDivision_Num_natural_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.natural
  val instance_Num_NumDivision_Num_natural_dict : 
                                                    Num.NumDivision_class 
                                                    Num.natural
  val naturalMod : Num.natural -> Num.natural -> Num.natural
  val instance_Num_NumRemainder_Num_natural_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.natural
  val naturalMin : Num.natural -> Num.natural -> Num.natural
  val naturalMax : Num.natural -> Num.natural -> Num.natural
  val instance_Basic_classes_OrdMaxMin_Num_natural_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.natural
  val intFromNumeral : numeral -> Num.int
  val instance_Num_Numeral_Num_int_dict : Num.Numeral_class Num.int
  val intEq : Num.int -> Num.int -> bool
  val instance_Basic_classes_Eq_Num_int_dict : Basic_classes.Eq_class Num.int
  val intLess : Num.int -> Num.int -> bool
  val intLessEqual : Num.int -> Num.int -> bool
  val intGreater : Num.int -> Num.int -> bool
  val intGreaterEqual : Num.int -> Num.int -> bool
  val intCompare : Num.int -> Num.int -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int_dict : 
                                                  Basic_classes.Ord_class 
                                                  Num.int
  val instance_Basic_classes_SetType_Num_int_dict : 
                                                      Basic_classes.SetType_class 
                                                      Num.int
  val intNegate : Num.int -> Num.int
  val instance_Num_NumNegate_Num_int_dict : Num.NumNegate_class Num.int
  val intAbs : Num.int -> Num.int
  val instance_Num_NumAbs_Num_int_dict : Num.NumAbs_class Num.int
  val intAdd : Num.int -> Num.int -> Num.int
  val instance_Num_NumAdd_Num_int_dict : Num.NumAdd_class Num.int
  val intMinus : Num.int -> Num.int -> Num.int
  val instance_Num_NumMinus_Num_int_dict : Num.NumMinus_class Num.int
  val intSucc : Num.int -> Num.int
  val instance_Num_NumSucc_Num_int_dict : Num.NumSucc_class Num.int
  val intPred : Num.int -> Num.int
  val instance_Num_NumPred_Num_int_dict : Num.NumPred_class Num.int
  val intMult : Num.int -> Num.int -> Num.int
  val instance_Num_NumMult_Num_int_dict : Num.NumMult_class Num.int
  val intPow : Num.int -> nat -> Num.int
  val instance_Num_NumPow_Num_int_dict : Num.NumPow_class Num.int
  val intDiv : Num.int -> Num.int -> Num.int
  val instance_Num_NumIntegerDivision_Num_int_dict : 
                                                       Num.NumIntegerDivision_class 
                                                       Num.int
  val instance_Num_NumDivision_Num_int_dict : Num.NumDivision_class Num.int
  val intMod : Num.int -> Num.int -> Num.int
  val instance_Num_NumRemainder_Num_int_dict : Num.NumRemainder_class Num.int
  val intMin : Num.int -> Num.int -> Num.int
  val intMax : Num.int -> Num.int -> Num.int
  val instance_Basic_classes_OrdMaxMin_Num_int_dict : 
                                                        Basic_classes.OrdMaxMin_class 
                                                        Num.int
  val int32FromNumeral : numeral -> Num.int32
  val instance_Num_Numeral_Num_int32_dict : Num.Numeral_class Num.int32
  val int32Eq : Num.int32 -> Num.int32 -> bool
  val instance_Basic_classes_Eq_Num_int32_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int32
  val int32Less : Num.int32 -> Num.int32 -> bool
  val int32LessEqual : Num.int32 -> Num.int32 -> bool
  val int32Greater : Num.int32 -> Num.int32 -> bool
  val int32GreaterEqual : Num.int32 -> Num.int32 -> bool
  val int32Compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int32_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int32
  val instance_Basic_classes_SetType_Num_int32_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int32
  val int32Negate : Num.int32 -> Num.int32
  val instance_Num_NumNegate_Num_int32_dict : Num.NumNegate_class Num.int32
  val int32Abs : Num.int32 -> Num.int32
  val instance_Num_NumAbs_Num_int32_dict : Num.NumAbs_class Num.int32
  val int32Add : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumAdd_Num_int32_dict : Num.NumAdd_class Num.int32
  val int32Minus : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMinus_Num_int32_dict : Num.NumMinus_class Num.int32
  val int32Succ : Num.int32 -> Num.int32
  val instance_Num_NumSucc_Num_int32_dict : Num.NumSucc_class Num.int32
  val int32Pred : Num.int32 -> Num.int32
  val instance_Num_NumPred_Num_int32_dict : Num.NumPred_class Num.int32
  val int32Mult : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumMult_Num_int32_dict : Num.NumMult_class Num.int32
  val int32Pow : Num.int32 -> nat -> Num.int32
  val instance_Num_NumPow_Num_int32_dict : Num.NumPow_class Num.int32
  val int32Div : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumIntegerDivision_Num_int32_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int32
  val instance_Num_NumDivision_Num_int32_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int32
  val int32Mod : Num.int32 -> Num.int32 -> Num.int32
  val instance_Num_NumRemainder_Num_int32_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int32
  val int32Min : Num.int32 -> Num.int32 -> Num.int32
  val int32Max : Num.int32 -> Num.int32 -> Num.int32
  val instance_Basic_classes_OrdMaxMin_Num_int32_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int32
  val int64FromNumeral : numeral -> Num.int64
  val instance_Num_Numeral_Num_int64_dict : Num.Numeral_class Num.int64
  val int64Eq : Num.int64 -> Num.int64 -> bool
  val instance_Basic_classes_Eq_Num_int64_dict : 
                                                   Basic_classes.Eq_class 
                                                   Num.int64
  val int64Less : Num.int64 -> Num.int64 -> bool
  val int64LessEqual : Num.int64 -> Num.int64 -> bool
  val int64Greater : Num.int64 -> Num.int64 -> bool
  val int64GreaterEqual : Num.int64 -> Num.int64 -> bool
  val int64Compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_int64_dict : 
                                                    Basic_classes.Ord_class 
                                                    Num.int64
  val instance_Basic_classes_SetType_Num_int64_dict : 
                                                        Basic_classes.SetType_class 
                                                        Num.int64
  val int64Negate : Num.int64 -> Num.int64
  val instance_Num_NumNegate_Num_int64_dict : Num.NumNegate_class Num.int64
  val int64Abs : Num.int64 -> Num.int64
  val instance_Num_NumAbs_Num_int64_dict : Num.NumAbs_class Num.int64
  val int64Add : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumAdd_Num_int64_dict : Num.NumAdd_class Num.int64
  val int64Minus : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMinus_Num_int64_dict : Num.NumMinus_class Num.int64
  val int64Succ : Num.int64 -> Num.int64
  val instance_Num_NumSucc_Num_int64_dict : Num.NumSucc_class Num.int64
  val int64Pred : Num.int64 -> Num.int64
  val instance_Num_NumPred_Num_int64_dict : Num.NumPred_class Num.int64
  val int64Mult : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumMult_Num_int64_dict : Num.NumMult_class Num.int64
  val int64Pow : Num.int64 -> nat -> Num.int64
  val instance_Num_NumPow_Num_int64_dict : Num.NumPow_class Num.int64
  val int64Div : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumIntegerDivision_Num_int64_dict : 
                                                         Num.NumIntegerDivision_class 
                                                         Num.int64
  val instance_Num_NumDivision_Num_int64_dict : 
                                                  Num.NumDivision_class 
                                                  Num.int64
  val int64Mod : Num.int64 -> Num.int64 -> Num.int64
  val instance_Num_NumRemainder_Num_int64_dict : 
                                                   Num.NumRemainder_class 
                                                   Num.int64
  val int64Min : Num.int64 -> Num.int64 -> Num.int64
  val int64Max : Num.int64 -> Num.int64 -> Num.int64
  val instance_Basic_classes_OrdMaxMin_Num_int64_dict : 
                                                          Basic_classes.OrdMaxMin_class 
                                                          Num.int64
  val integerFromNumeral : numeral -> Num.integer
  val instance_Num_Numeral_Num_integer_dict : Num.Numeral_class Num.integer
  val integerFromNat : nat -> Num.integer
  val integerEq : Num.integer -> Num.integer -> bool
  val instance_Basic_classes_Eq_Num_integer_dict : 
                                                     Basic_classes.Eq_class 
                                                     Num.integer
  val integerLess : Num.integer -> Num.integer -> bool
  val integerLessEqual : Num.integer -> Num.integer -> bool
  val integerGreater : Num.integer -> Num.integer -> bool
  val integerGreaterEqual : Num.integer -> Num.integer -> bool
  val integerCompare : Num.integer -> Num.integer -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_integer_dict : 
                                                      Basic_classes.Ord_class 
                                                      Num.integer
  val instance_Basic_classes_SetType_Num_integer_dict : 
                                                          Basic_classes.SetType_class 
                                                          Num.integer
  val integerNegate : Num.integer -> Num.integer
  val instance_Num_NumNegate_Num_integer_dict : 
                                                  Num.NumNegate_class 
                                                  Num.integer
  val integerAbs : Num.integer -> Num.integer
  val instance_Num_NumAbs_Num_integer_dict : Num.NumAbs_class Num.integer
  val integerAdd : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumAdd_Num_integer_dict : Num.NumAdd_class Num.integer
  val integerMinus : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMinus_Num_integer_dict : Num.NumMinus_class Num.integer
  val integerSucc : Num.integer -> Num.integer
  val instance_Num_NumSucc_Num_integer_dict : Num.NumSucc_class Num.integer
  val integerPred : Num.integer -> Num.integer
  val instance_Num_NumPred_Num_integer_dict : Num.NumPred_class Num.integer
  val integerMult : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumMult_Num_integer_dict : Num.NumMult_class Num.integer
  val integerPow : Num.integer -> nat -> Num.integer
  val instance_Num_NumPow_Num_integer_dict : Num.NumPow_class Num.integer
  val integerDiv : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumIntegerDivision_Num_integer_dict : 
                                                           Num.NumIntegerDivision_class 
                                                           Num.integer
  val instance_Num_NumDivision_Num_integer_dict : 
                                                    Num.NumDivision_class 
                                                    Num.integer
  val integerMod : Num.integer -> Num.integer -> Num.integer
  val instance_Num_NumRemainder_Num_integer_dict : 
                                                     Num.NumRemainder_class 
                                                     Num.integer
  val integerMin : Num.integer -> Num.integer -> Num.integer
  val integerMax : Num.integer -> Num.integer -> Num.integer
  val instance_Basic_classes_OrdMaxMin_Num_integer_dict : 
                                                            Basic_classes.OrdMaxMin_class 
                                                            Num.integer
  val rationalFromNumeral : numeral -> Num.rational
  val instance_Num_Numeral_Num_rational_dict : Num.Numeral_class Num.rational
  val rationalFromInt : Num.int -> Num.rational
  val rationalFromInteger : Num.integer -> Num.rational
  val rationalEq : Num.rational -> Num.rational -> bool
  val instance_Basic_classes_Eq_Num_rational_dict : 
                                                      Basic_classes.Eq_class 
                                                      Num.rational
  val rationalLess : Num.rational -> Num.rational -> bool
  val rationalLessEqual : Num.rational -> Num.rational -> bool
  val rationalGreater : Num.rational -> Num.rational -> bool
  val rationalGreaterEqual : Num.rational -> Num.rational -> bool
  val rationalCompare : 
                          Num.rational -> Num.rational -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_rational_dict : 
                                                       Basic_classes.Ord_class 
                                                       Num.rational
  val instance_Basic_classes_SetType_Num_rational_dict : 
                                                           Basic_classes.SetType_class 
                                                           Num.rational
  val rationalAdd : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumAdd_Num_rational_dict : Num.NumAdd_class Num.rational
  val rationalMinus : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMinus_Num_rational_dict : 
                                                  Num.NumMinus_class 
                                                  Num.rational
  val rationalNegate : Num.rational -> Num.rational
  val instance_Num_NumNegate_Num_rational_dict : 
                                                   Num.NumNegate_class 
                                                   Num.rational
  val rationalAbs : Num.rational -> Num.rational
  val instance_Num_NumAbs_Num_rational_dict : Num.NumAbs_class Num.rational
  val rationalSucc : Num.rational -> Num.rational
  val instance_Num_NumSucc_Num_rational_dict : Num.NumSucc_class Num.rational
  val rationalPred : Num.rational -> Num.rational
  val instance_Num_NumPred_Num_rational_dict : Num.NumPred_class Num.rational
  val rationalMult : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumMult_Num_rational_dict : Num.NumMult_class Num.rational
  val rationalDiv : Num.rational -> Num.rational -> Num.rational
  val instance_Num_NumDivision_Num_rational_dict : 
                                                     Num.NumDivision_class 
                                                     Num.rational
  val rationalFromFrac : Num.int -> Num.int -> Num.rational
  val rationalNumerator : Num.rational -> Num.integer
  val fst : forall 'a 'b. ('a * 'b) -> 'a
  val rationalDenominator : Num.rational -> Num.integer
  val snd : forall 'a 'b. ('a * 'b) -> 'b
  val rationalPowInteger : Num.rational -> Num.integer -> Num.rational
  val rationalPowNat : Num.rational -> nat -> Num.rational
  val instance_Num_NumPow_Num_rational_dict : Num.NumPow_class Num.rational
  val rationalMin : Num.rational -> Num.rational -> Num.rational
  val rationalMax : Num.rational -> Num.rational -> Num.rational
  val instance_Basic_classes_OrdMaxMin_Num_rational_dict : 
                                                             Basic_classes.OrdMaxMin_class 
                                                             Num.rational
  val realFromNumeral : numeral -> Num.real
  val instance_Num_Numeral_Num_real_dict : Num.Numeral_class Num.real
  val realFromInteger : Num.integer -> Num.real
  val realEq : Num.real -> Num.real -> bool
  val instance_Basic_classes_Eq_Num_real_dict : 
                                                  Basic_classes.Eq_class 
                                                  Num.real
  val realLess : Num.real -> Num.real -> bool
  val realLessEqual : Num.real -> Num.real -> bool
  val realGreater : Num.real -> Num.real -> bool
  val realGreaterEqual : Num.real -> Num.real -> bool
  val realCompare : Num.real -> Num.real -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Num_real_dict : 
                                                   Basic_classes.Ord_class 
                                                   Num.real
  val instance_Basic_classes_SetType_Num_real_dict : 
                                                       Basic_classes.SetType_class 
                                                       Num.real
  val realAdd : Num.real -> Num.real -> Num.real
  val instance_Num_NumAdd_Num_real_dict : Num.NumAdd_class Num.real
  val realMinus : Num.real -> Num.real -> Num.real
  val instance_Num_NumMinus_Num_real_dict : Num.NumMinus_class Num.real
  val realNegate : Num.real -> Num.real
  val instance_Num_NumNegate_Num_real_dict : Num.NumNegate_class Num.real
  val realAbs : Num.real -> Num.real
  val instance_Num_NumAbs_Num_real_dict : Num.NumAbs_class Num.real
  val realSucc : Num.real -> Num.real
  val instance_Num_NumSucc_Num_real_dict : Num.NumSucc_class Num.real
  val realPred : Num.real -> Num.real
  val instance_Num_NumPred_Num_real_dict : Num.NumPred_class Num.real
  val realMult : Num.real -> Num.real -> Num.real
  val instance_Num_NumMult_Num_real_dict : Num.NumMult_class Num.real
  val realDiv : Num.real -> Num.real -> Num.real
  val instance_Num_NumDivision_Num_real_dict : Num.NumDivision_class Num.real
  val realFromFrac : Num.integer -> Num.integer -> Num.real
  val realPowInteger : Num.real -> Num.integer -> Num.real
  val realPowNat : Num.real -> nat -> Num.real
  val instance_Num_NumPow_Num_real_dict : Num.NumPow_class Num.real
  val realSqrt : Num.real -> Num.real
  val realMin : Num.real -> Num.real -> Num.real
  val realMax : Num.real -> Num.real -> Num.real
  val instance_Basic_classes_OrdMaxMin_Num_real_dict : 
                                                         Basic_classes.OrdMaxMin_class 
                                                         Num.real
  val realCeiling : Num.real -> Num.integer
  val realFloor : Num.real -> Num.integer
  val integerSqrt : Num.integer -> Num.integer
  val integerFromInt : Num.int -> Num.integer
  val integerFromNatural : Num.natural -> Num.integer
  val integerFromInt32 : Num.int32 -> Num.integer
  val integerFromInt64 : Num.int64 -> Num.integer
  val naturalFromNat : nat -> Num.natural
  val naturalFromInteger : Num.integer -> Num.natural
  val intFromInteger : Num.integer -> Num.int
  val intFromNat : nat -> Num.int
  val natFromNatural : Num.natural -> nat
  val natFromInt : Num.int -> nat
  val int32FromNat : nat -> Num.int32
  val int32FromNatural : Num.natural -> Num.int32
  val int32FromInteger : Num.integer -> Num.int32
  val int32FromInt : Num.int -> Num.int32
  val int32FromInt64 : Num.int64 -> Num.int32
  val int64FromNat : nat -> Num.int64
  val int64FromNatural : Num.natural -> Num.int64
  val int64FromInteger : Num.integer -> Num.int64
  val int64FromInt : Num.int -> Num.int64
  val int64FromInt32 : Num.int32 -> Num.int64
  val naturalFromInt : Num.int -> Num.natural
  val naturalFromInt32 : Num.int32 -> Num.natural
  val naturalFromInt64 : Num.int64 -> Num.natural
  val intFromNatural : Num.natural -> Num.int
  val intFromInt32 : Num.int32 -> Num.int
  val intFromInt64 : Num.int64 -> Num.int
  val natFromInteger : Num.integer -> nat
  val natFromInt32 : Num.int32 -> nat
  val natFromInt64 : Num.int64 -> nat
  val THE : forall 'a. ('a -> bool) -> Maybe.maybe 'a
  val swap : forall 'a 'b. ('a * 'b) -> ('b * 'a)
  val :: : forall 'a. 'a -> (list 'a) -> list 'a
  val cons : forall 'a. 'a -> (list 'a) -> list 'a
  val null : forall 'a. (list 'a) -> bool
  val length : forall 'a. (list 'a) -> nat
  val listEqual : forall 'a. 
                    (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val listEqualBy : forall 'a. 
                      ('a -> 'a -> bool) -> (list 'a) -> (list 'a) -> bool
  val instance_Basic_classes_Eq_list_dict : forall 'a. 
                                              (Basic_classes.Eq 'a) => 
                                                Basic_classes.Eq_class 
                                                (list 'a)
  val lexicographicCompare : forall 'a. 
                               (Basic_classes.Ord 'a) => 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicCompareBy : forall 'a. 
                                 ('a -> 'a -> Basic_classes.ordering) -> 
                                 (list 'a) -> (list 'a) -> Basic_classes.ordering
  val lexicographicLess : forall 'a. 
                            (Basic_classes.Ord 'a) => 
                              (list 'a) -> (list 'a) -> bool
  val lexicographicLessBy : forall 'a. 
                              ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                    (list 'a) -> (list 'a) -> 
                                                                 bool
  val lexicographicLessEq : forall 'a. 
                              (Basic_classes.Ord 'a) => 
                                (list 'a) -> (list 'a) -> bool
  val lexicographicLessEqBy : forall 'a. 
                                ('a -> 'a -> bool) -> ('a -> 'a -> bool) -> 
                                                      (list 'a) -> (list 'a) -> 
                                                                   bool
  val instance_Basic_classes_Ord_list_dict : forall 'a. 
                                               (Basic_classes.Ord 'a) => 
                                                 Basic_classes.Ord_class 
                                                 (list 'a)
  val ++ : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val append : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val snoc : forall 'a. 'a -> (list 'a) -> list 'a
  val reverseAppend : forall 'a. (list 'a) -> (list 'a) -> list 'a
  val reverse : forall 'a. (list 'a) -> list 'a
  val map_tr : forall 'a 'b. (list 'b) -> ('a -> 'b) -> (list 'a) -> list 'b
  val count_map : forall 'a 'b. ('a -> 'b) -> (list 'a) -> nat -> list 'b
  val reverseMap : forall 'a 'b. ('a -> 'b) -> (list 'a) -> list 'b
  val foldl : forall 'a 'b. ('a -> 'b -> 'a) -> 'a -> (list 'b) -> 'a
  val foldr : forall 'a 'b. ('a -> 'b -> 'b) -> 'b -> (list 'a) -> 'b
  val concat : string -> (list string) -> string
  val concatMap : forall 'a 'b. ('a -> list 'b) -> (list 'a) -> list 'b
  val all : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val any : forall 'a. ('a -> bool) -> (list 'a) -> bool
  val dest_init : forall 'a. (list 'a) -> Maybe.maybe ((list 'a) * 'a)
  val dest_init_aux : forall 'a. 
                        (list 'a) -> 'a -> (list 'a) -> ((list 'a) * 'a)
  val index : forall 'a. (list 'a) -> nat -> Maybe.maybe 'a
  val findIndices : forall 'a. ('a -> bool) -> (list 'a) -> list nat
  val findIndices_aux : forall 'a. 
                          nat -> ('a -> bool) -> (list 'a) -> list nat
  val findIndex : forall 'a. ('a -> bool) -> (list 'a) -> Maybe.maybe nat
  val elemIndices : forall 'a. 
                      (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list nat
  val elemIndex : forall 'a. 
                    (Basic_classes.Eq 'a) => 
                      'a -> (list 'a) -> Maybe.maybe nat
  val genlist : forall 'a. (nat -> 'a) -> nat -> list 'a
  val replicate : forall 'a. nat -> 'a -> list 'a
  val splitAtAcc : forall 'a. 
                     (list 'a) -> nat -> (list 'a) -> ((list 'a) * (list 'a))
  val splitAt : forall 'a. nat -> (list 'a) -> ((list 'a) * (list 'a))
  val take : forall 'a. nat -> (list 'a) -> list 'a
  val drop : forall 'a. nat -> (list 'a) -> list 'a
  val splitWhile_tr : forall 'a. 
                        ('a -> bool) -> (list 'a) -> (list 'a) -> ((list 'a)
                                                                   *
                                                                   (list 'a))
  val splitWhile : forall 'a. 
                     ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val takeWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val dropWhile : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val isPrefixOf : forall 'a. 
                     (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
  val update : forall 'a. (list 'a) -> nat -> 'a -> list 'a
  val elem : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> bool
  val elemBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> bool
  val member : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val find : forall 'k 'v. (Map.MapKeyType 'k) => 'k -> (Map.map 'k 'v) -> 'v
  val lookup : forall 'a 'b. 
                 (Basic_classes.Eq 'a) => 
                   'a -> (list ('a * 'b)) -> Maybe.maybe 'b
  val lookupBy : forall 'a 'b. 
                   ('a -> 'a -> bool) -> 'a -> (list ('a * 'b)) -> Maybe.maybe 
                                                                   'b
  val filter : forall 'a. ('a -> bool) -> (list 'a) -> list 'a
  val partition : forall 'a. 
                    ('a -> bool) -> (list 'a) -> ((list 'a) * (list 'a))
  val reversePartition : forall 'a. 
                           ('a -> bool) -> (list 'a) -> ((list 'a) *
                                                         (list 'a))
  val deleteFirst : forall 'a. 
                      ('a -> bool) -> (list 'a) -> Maybe.maybe (list 'a)
  val delete : forall 'a. (Basic_classes.Eq 'a) => 'a -> (list 'a) -> list 'a
  val deleteBy : forall 'a. ('a -> 'a -> bool) -> 'a -> (list 'a) -> list 'a
  val zip : forall 'a 'b. (list 'a) -> (list 'b) -> list ('a * 'b)
  val unzip : forall 'a 'b. (list ('a * 'b)) -> ((list 'a) * (list 'b))
  val split : forall 'a. 
                (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                  'a -> (set 'a) -> ((set 'a) * (set 'a))
  val instance_Basic_classes_SetType_list_dict : forall 'a. 
                                                   (Basic_classes.SetType 'a) => 
                                                     Basic_classes.SetType_class 
                                                     (list 'a)
  val allDistinct : forall 'a. (Basic_classes.Eq 'a) => (list 'a) -> bool
  val mapMaybe : forall 'a 'b 'c. 
                   (Map.MapKeyType 'a) => 
                     ('a -> 'b -> Maybe.maybe 'c) -> (Map.map 'a 'b) -> 
                                                     Map.map 'a 'c
  val mapi : forall 'a 'b. (nat -> 'a -> 'b) -> (list 'a) -> list 'b
  val mapiAux : forall 'a 'b. 
                  (nat -> 'b -> 'a) -> nat -> (list 'b) -> list 'a
  val deletes : forall 'a. 
                  (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> list 'a
  val catMaybes : forall 'a. (list (Maybe.maybe 'a)) -> list 'a
  val head : forall 'a. (list 'a) -> 'a
  val tail : forall 'a. (list 'a) -> list 'a
  val last : forall 'a. (list 'a) -> 'a
  val init : forall 'a. (list 'a) -> list 'a
  val foldl1 : forall 'a. ('a -> 'a -> 'a) -> (list 'a) -> 'a
  val foldr1 : forall 'a. ('a -> 'a -> 'a) -> (list 'a) -> 'a
  val nth : string -> nat -> char
  val findNonPure : forall 'a. ('a -> bool) -> (list 'a) -> 'a
  val zipSameLength : forall 'a 'b. (list 'a) -> (list 'b) -> list ('a * 'b)
  val unfoldr : forall 'a 'b. ('a -> Maybe.maybe ('b * 'a)) -> 'a -> list 'b
  val toCharList : string -> list char
  val toString : (list char) -> string
  val makeString : nat -> char -> string
  val stringLength : string -> nat
  val stringAppend : string -> string -> string
  val string_case : forall 'a. string -> 'a -> (char -> string -> 'a) -> 'a
  val empty_string : string
  val cons_string : char -> string -> string
  val show : forall 'a. (Show.Show 'a) => 'a -> string
  val instance_Show_Show_string_dict : Show.Show_class string
  val stringFromMaybe : forall 'a. 
                          ('a -> string) -> (Maybe.maybe 'a) -> string
  val instance_Show_Show_Maybe_maybe_dict : forall 'a. 
                                              (Show.Show 'a) => 
                                                Show.Show_class (Maybe.maybe 
                                                                'a)
  val stringFromListAux : forall 'a. ('a -> string) -> (list 'a) -> string
  val stringFromList : forall 'a. ('a -> string) -> (list 'a) -> string
  val instance_Show_Show_list_dict : forall 'a. 
                                       (Show.Show 'a) => 
                                         Show.Show_class (list 'a)
  val stringFromPair : forall 'a 'b. 
                         ('a -> string) -> ('b -> string) -> ('a * 'b) -> 
                                                             string
  val instance_Show_Show_tup2_dict : forall 'a 'b. 
                                       (Show.Show 'a) (Show.Show 'b) => 
                                         Show.Show_class ('a * 'b)
  val instance_Show_Show_bool_dict : Show.Show_class bool
  val size : forall 'a. (Machine_word.Size 'a) => nat
  val native_size : forall 'a. nat
  val the_value : forall 'a. Machine_word.itself 'a
  val ocaml_inject : forall 'a. (nat * Num.natural) -> Machine_word.mword 'a
  val size_itself : forall 'a. 
                      (Machine_word.Size 'a) => 
                        (Machine_word.itself 'a) -> nat
  val instance_Machine_word_Size_Machine_word_ty1_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty1
  val instance_Machine_word_Size_Machine_word_ty2_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty2
  val instance_Machine_word_Size_Machine_word_ty3_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty3
  val instance_Machine_word_Size_Machine_word_ty4_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty4
  val instance_Machine_word_Size_Machine_word_ty5_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty5
  val instance_Machine_word_Size_Machine_word_ty6_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty6
  val instance_Machine_word_Size_Machine_word_ty7_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty7
  val instance_Machine_word_Size_Machine_word_ty8_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty8
  val instance_Machine_word_Size_Machine_word_ty9_dict : 
                                                           Machine_word.Size_class 
                                                           Machine_word.ty9
  val instance_Machine_word_Size_Machine_word_ty10_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty10
  val instance_Machine_word_Size_Machine_word_ty11_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty11
  val instance_Machine_word_Size_Machine_word_ty12_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty12
  val instance_Machine_word_Size_Machine_word_ty13_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty13
  val instance_Machine_word_Size_Machine_word_ty14_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty14
  val instance_Machine_word_Size_Machine_word_ty15_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty15
  val instance_Machine_word_Size_Machine_word_ty16_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty16
  val instance_Machine_word_Size_Machine_word_ty17_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty17
  val instance_Machine_word_Size_Machine_word_ty18_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty18
  val instance_Machine_word_Size_Machine_word_ty19_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty19
  val instance_Machine_word_Size_Machine_word_ty20_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty20
  val instance_Machine_word_Size_Machine_word_ty21_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty21
  val instance_Machine_word_Size_Machine_word_ty22_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty22
  val instance_Machine_word_Size_Machine_word_ty23_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty23
  val instance_Machine_word_Size_Machine_word_ty24_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty24
  val instance_Machine_word_Size_Machine_word_ty25_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty25
  val instance_Machine_word_Size_Machine_word_ty26_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty26
  val instance_Machine_word_Size_Machine_word_ty27_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty27
  val instance_Machine_word_Size_Machine_word_ty28_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty28
  val instance_Machine_word_Size_Machine_word_ty29_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty29
  val instance_Machine_word_Size_Machine_word_ty30_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty30
  val instance_Machine_word_Size_Machine_word_ty31_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty31
  val instance_Machine_word_Size_Machine_word_ty32_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty32
  val instance_Machine_word_Size_Machine_word_ty33_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty33
  val instance_Machine_word_Size_Machine_word_ty34_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty34
  val instance_Machine_word_Size_Machine_word_ty35_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty35
  val instance_Machine_word_Size_Machine_word_ty36_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty36
  val instance_Machine_word_Size_Machine_word_ty37_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty37
  val instance_Machine_word_Size_Machine_word_ty38_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty38
  val instance_Machine_word_Size_Machine_word_ty39_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty39
  val instance_Machine_word_Size_Machine_word_ty40_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty40
  val instance_Machine_word_Size_Machine_word_ty41_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty41
  val instance_Machine_word_Size_Machine_word_ty42_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty42
  val instance_Machine_word_Size_Machine_word_ty43_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty43
  val instance_Machine_word_Size_Machine_word_ty44_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty44
  val instance_Machine_word_Size_Machine_word_ty45_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty45
  val instance_Machine_word_Size_Machine_word_ty46_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty46
  val instance_Machine_word_Size_Machine_word_ty47_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty47
  val instance_Machine_word_Size_Machine_word_ty48_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty48
  val instance_Machine_word_Size_Machine_word_ty49_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty49
  val instance_Machine_word_Size_Machine_word_ty50_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty50
  val instance_Machine_word_Size_Machine_word_ty51_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty51
  val instance_Machine_word_Size_Machine_word_ty52_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty52
  val instance_Machine_word_Size_Machine_word_ty53_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty53
  val instance_Machine_word_Size_Machine_word_ty54_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty54
  val instance_Machine_word_Size_Machine_word_ty55_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty55
  val instance_Machine_word_Size_Machine_word_ty56_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty56
  val instance_Machine_word_Size_Machine_word_ty57_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty57
  val instance_Machine_word_Size_Machine_word_ty58_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty58
  val instance_Machine_word_Size_Machine_word_ty59_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty59
  val instance_Machine_word_Size_Machine_word_ty60_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty60
  val instance_Machine_word_Size_Machine_word_ty61_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty61
  val instance_Machine_word_Size_Machine_word_ty62_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty62
  val instance_Machine_word_Size_Machine_word_ty63_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty63
  val instance_Machine_word_Size_Machine_word_ty64_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty64
  val instance_Machine_word_Size_Machine_word_ty65_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty65
  val instance_Machine_word_Size_Machine_word_ty66_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty66
  val instance_Machine_word_Size_Machine_word_ty67_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty67
  val instance_Machine_word_Size_Machine_word_ty68_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty68
  val instance_Machine_word_Size_Machine_word_ty69_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty69
  val instance_Machine_word_Size_Machine_word_ty70_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty70
  val instance_Machine_word_Size_Machine_word_ty71_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty71
  val instance_Machine_word_Size_Machine_word_ty72_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty72
  val instance_Machine_word_Size_Machine_word_ty73_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty73
  val instance_Machine_word_Size_Machine_word_ty74_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty74
  val instance_Machine_word_Size_Machine_word_ty75_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty75
  val instance_Machine_word_Size_Machine_word_ty76_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty76
  val instance_Machine_word_Size_Machine_word_ty77_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty77
  val instance_Machine_word_Size_Machine_word_ty78_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty78
  val instance_Machine_word_Size_Machine_word_ty79_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty79
  val instance_Machine_word_Size_Machine_word_ty80_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty80
  val instance_Machine_word_Size_Machine_word_ty81_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty81
  val instance_Machine_word_Size_Machine_word_ty82_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty82
  val instance_Machine_word_Size_Machine_word_ty83_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty83
  val instance_Machine_word_Size_Machine_word_ty84_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty84
  val instance_Machine_word_Size_Machine_word_ty85_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty85
  val instance_Machine_word_Size_Machine_word_ty86_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty86
  val instance_Machine_word_Size_Machine_word_ty87_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty87
  val instance_Machine_word_Size_Machine_word_ty88_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty88
  val instance_Machine_word_Size_Machine_word_ty89_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty89
  val instance_Machine_word_Size_Machine_word_ty90_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty90
  val instance_Machine_word_Size_Machine_word_ty91_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty91
  val instance_Machine_word_Size_Machine_word_ty92_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty92
  val instance_Machine_word_Size_Machine_word_ty93_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty93
  val instance_Machine_word_Size_Machine_word_ty94_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty94
  val instance_Machine_word_Size_Machine_word_ty95_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty95
  val instance_Machine_word_Size_Machine_word_ty96_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty96
  val instance_Machine_word_Size_Machine_word_ty97_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty97
  val instance_Machine_word_Size_Machine_word_ty98_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty98
  val instance_Machine_word_Size_Machine_word_ty99_dict : 
                                                            Machine_word.Size_class 
                                                            Machine_word.ty99
  val instance_Machine_word_Size_Machine_word_ty100_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty100
  val instance_Machine_word_Size_Machine_word_ty101_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty101
  val instance_Machine_word_Size_Machine_word_ty102_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty102
  val instance_Machine_word_Size_Machine_word_ty103_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty103
  val instance_Machine_word_Size_Machine_word_ty104_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty104
  val instance_Machine_word_Size_Machine_word_ty105_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty105
  val instance_Machine_word_Size_Machine_word_ty106_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty106
  val instance_Machine_word_Size_Machine_word_ty107_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty107
  val instance_Machine_word_Size_Machine_word_ty108_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty108
  val instance_Machine_word_Size_Machine_word_ty109_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty109
  val instance_Machine_word_Size_Machine_word_ty110_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty110
  val instance_Machine_word_Size_Machine_word_ty111_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty111
  val instance_Machine_word_Size_Machine_word_ty112_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty112
  val instance_Machine_word_Size_Machine_word_ty113_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty113
  val instance_Machine_word_Size_Machine_word_ty114_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty114
  val instance_Machine_word_Size_Machine_word_ty115_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty115
  val instance_Machine_word_Size_Machine_word_ty116_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty116
  val instance_Machine_word_Size_Machine_word_ty117_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty117
  val instance_Machine_word_Size_Machine_word_ty118_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty118
  val instance_Machine_word_Size_Machine_word_ty119_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty119
  val instance_Machine_word_Size_Machine_word_ty120_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty120
  val instance_Machine_word_Size_Machine_word_ty121_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty121
  val instance_Machine_word_Size_Machine_word_ty122_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty122
  val instance_Machine_word_Size_Machine_word_ty123_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty123
  val instance_Machine_word_Size_Machine_word_ty124_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty124
  val instance_Machine_word_Size_Machine_word_ty125_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty125
  val instance_Machine_word_Size_Machine_word_ty126_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty126
  val instance_Machine_word_Size_Machine_word_ty127_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty127
  val instance_Machine_word_Size_Machine_word_ty128_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty128
  val instance_Machine_word_Size_Machine_word_ty129_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty129
  val instance_Machine_word_Size_Machine_word_ty130_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty130
  val instance_Machine_word_Size_Machine_word_ty131_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty131
  val instance_Machine_word_Size_Machine_word_ty132_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty132
  val instance_Machine_word_Size_Machine_word_ty133_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty133
  val instance_Machine_word_Size_Machine_word_ty134_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty134
  val instance_Machine_word_Size_Machine_word_ty135_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty135
  val instance_Machine_word_Size_Machine_word_ty136_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty136
  val instance_Machine_word_Size_Machine_word_ty137_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty137
  val instance_Machine_word_Size_Machine_word_ty138_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty138
  val instance_Machine_word_Size_Machine_word_ty139_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty139
  val instance_Machine_word_Size_Machine_word_ty140_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty140
  val instance_Machine_word_Size_Machine_word_ty141_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty141
  val instance_Machine_word_Size_Machine_word_ty142_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty142
  val instance_Machine_word_Size_Machine_word_ty143_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty143
  val instance_Machine_word_Size_Machine_word_ty144_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty144
  val instance_Machine_word_Size_Machine_word_ty145_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty145
  val instance_Machine_word_Size_Machine_word_ty146_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty146
  val instance_Machine_word_Size_Machine_word_ty147_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty147
  val instance_Machine_word_Size_Machine_word_ty148_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty148
  val instance_Machine_word_Size_Machine_word_ty149_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty149
  val instance_Machine_word_Size_Machine_word_ty150_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty150
  val instance_Machine_word_Size_Machine_word_ty151_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty151
  val instance_Machine_word_Size_Machine_word_ty152_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty152
  val instance_Machine_word_Size_Machine_word_ty153_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty153
  val instance_Machine_word_Size_Machine_word_ty154_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty154
  val instance_Machine_word_Size_Machine_word_ty155_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty155
  val instance_Machine_word_Size_Machine_word_ty156_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty156
  val instance_Machine_word_Size_Machine_word_ty157_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty157
  val instance_Machine_word_Size_Machine_word_ty158_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty158
  val instance_Machine_word_Size_Machine_word_ty159_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty159
  val instance_Machine_word_Size_Machine_word_ty160_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty160
  val instance_Machine_word_Size_Machine_word_ty161_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty161
  val instance_Machine_word_Size_Machine_word_ty162_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty162
  val instance_Machine_word_Size_Machine_word_ty163_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty163
  val instance_Machine_word_Size_Machine_word_ty164_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty164
  val instance_Machine_word_Size_Machine_word_ty165_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty165
  val instance_Machine_word_Size_Machine_word_ty166_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty166
  val instance_Machine_word_Size_Machine_word_ty167_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty167
  val instance_Machine_word_Size_Machine_word_ty168_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty168
  val instance_Machine_word_Size_Machine_word_ty169_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty169
  val instance_Machine_word_Size_Machine_word_ty170_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty170
  val instance_Machine_word_Size_Machine_word_ty171_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty171
  val instance_Machine_word_Size_Machine_word_ty172_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty172
  val instance_Machine_word_Size_Machine_word_ty173_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty173
  val instance_Machine_word_Size_Machine_word_ty174_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty174
  val instance_Machine_word_Size_Machine_word_ty175_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty175
  val instance_Machine_word_Size_Machine_word_ty176_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty176
  val instance_Machine_word_Size_Machine_word_ty177_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty177
  val instance_Machine_word_Size_Machine_word_ty178_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty178
  val instance_Machine_word_Size_Machine_word_ty179_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty179
  val instance_Machine_word_Size_Machine_word_ty180_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty180
  val instance_Machine_word_Size_Machine_word_ty181_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty181
  val instance_Machine_word_Size_Machine_word_ty182_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty182
  val instance_Machine_word_Size_Machine_word_ty183_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty183
  val instance_Machine_word_Size_Machine_word_ty184_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty184
  val instance_Machine_word_Size_Machine_word_ty185_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty185
  val instance_Machine_word_Size_Machine_word_ty186_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty186
  val instance_Machine_word_Size_Machine_word_ty187_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty187
  val instance_Machine_word_Size_Machine_word_ty188_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty188
  val instance_Machine_word_Size_Machine_word_ty189_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty189
  val instance_Machine_word_Size_Machine_word_ty190_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty190
  val instance_Machine_word_Size_Machine_word_ty191_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty191
  val instance_Machine_word_Size_Machine_word_ty192_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty192
  val instance_Machine_word_Size_Machine_word_ty193_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty193
  val instance_Machine_word_Size_Machine_word_ty194_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty194
  val instance_Machine_word_Size_Machine_word_ty195_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty195
  val instance_Machine_word_Size_Machine_word_ty196_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty196
  val instance_Machine_word_Size_Machine_word_ty197_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty197
  val instance_Machine_word_Size_Machine_word_ty198_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty198
  val instance_Machine_word_Size_Machine_word_ty199_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty199
  val instance_Machine_word_Size_Machine_word_ty200_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty200
  val instance_Machine_word_Size_Machine_word_ty201_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty201
  val instance_Machine_word_Size_Machine_word_ty202_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty202
  val instance_Machine_word_Size_Machine_word_ty203_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty203
  val instance_Machine_word_Size_Machine_word_ty204_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty204
  val instance_Machine_word_Size_Machine_word_ty205_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty205
  val instance_Machine_word_Size_Machine_word_ty206_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty206
  val instance_Machine_word_Size_Machine_word_ty207_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty207
  val instance_Machine_word_Size_Machine_word_ty208_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty208
  val instance_Machine_word_Size_Machine_word_ty209_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty209
  val instance_Machine_word_Size_Machine_word_ty210_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty210
  val instance_Machine_word_Size_Machine_word_ty211_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty211
  val instance_Machine_word_Size_Machine_word_ty212_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty212
  val instance_Machine_word_Size_Machine_word_ty213_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty213
  val instance_Machine_word_Size_Machine_word_ty214_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty214
  val instance_Machine_word_Size_Machine_word_ty215_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty215
  val instance_Machine_word_Size_Machine_word_ty216_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty216
  val instance_Machine_word_Size_Machine_word_ty217_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty217
  val instance_Machine_word_Size_Machine_word_ty218_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty218
  val instance_Machine_word_Size_Machine_word_ty219_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty219
  val instance_Machine_word_Size_Machine_word_ty220_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty220
  val instance_Machine_word_Size_Machine_word_ty221_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty221
  val instance_Machine_word_Size_Machine_word_ty222_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty222
  val instance_Machine_word_Size_Machine_word_ty223_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty223
  val instance_Machine_word_Size_Machine_word_ty224_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty224
  val instance_Machine_word_Size_Machine_word_ty225_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty225
  val instance_Machine_word_Size_Machine_word_ty226_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty226
  val instance_Machine_word_Size_Machine_word_ty227_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty227
  val instance_Machine_word_Size_Machine_word_ty228_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty228
  val instance_Machine_word_Size_Machine_word_ty229_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty229
  val instance_Machine_word_Size_Machine_word_ty230_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty230
  val instance_Machine_word_Size_Machine_word_ty231_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty231
  val instance_Machine_word_Size_Machine_word_ty232_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty232
  val instance_Machine_word_Size_Machine_word_ty233_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty233
  val instance_Machine_word_Size_Machine_word_ty234_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty234
  val instance_Machine_word_Size_Machine_word_ty235_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty235
  val instance_Machine_word_Size_Machine_word_ty236_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty236
  val instance_Machine_word_Size_Machine_word_ty237_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty237
  val instance_Machine_word_Size_Machine_word_ty238_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty238
  val instance_Machine_word_Size_Machine_word_ty239_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty239
  val instance_Machine_word_Size_Machine_word_ty240_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty240
  val instance_Machine_word_Size_Machine_word_ty241_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty241
  val instance_Machine_word_Size_Machine_word_ty242_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty242
  val instance_Machine_word_Size_Machine_word_ty243_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty243
  val instance_Machine_word_Size_Machine_word_ty244_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty244
  val instance_Machine_word_Size_Machine_word_ty245_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty245
  val instance_Machine_word_Size_Machine_word_ty246_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty246
  val instance_Machine_word_Size_Machine_word_ty247_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty247
  val instance_Machine_word_Size_Machine_word_ty248_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty248
  val instance_Machine_word_Size_Machine_word_ty249_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty249
  val instance_Machine_word_Size_Machine_word_ty250_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty250
  val instance_Machine_word_Size_Machine_word_ty251_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty251
  val instance_Machine_word_Size_Machine_word_ty252_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty252
  val instance_Machine_word_Size_Machine_word_ty253_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty253
  val instance_Machine_word_Size_Machine_word_ty254_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty254
  val instance_Machine_word_Size_Machine_word_ty255_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty255
  val instance_Machine_word_Size_Machine_word_ty256_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty256
  val instance_Machine_word_Size_Machine_word_ty257_dict : 
                                                             Machine_word.Size_class 
                                                             Machine_word.ty257
  val word_length : forall 'a. (Machine_word.mword 'a) -> nat
  val signedIntegerFromWord : forall 'a. 
                                (Machine_word.mword 'a) -> Num.integer
  val unsignedIntegerFromWord : forall 'a. 
                                  (Machine_word.mword 'a) -> Num.integer
  val naturalFromWord : forall 'a. (Machine_word.mword 'a) -> Num.natural
  val proverWordFromInteger : forall 'a. Num.integer -> Machine_word.mword 'a
  val wordFromInteger : forall 'a. 
                          (Machine_word.Size 'a) => 
                            Num.integer -> Machine_word.mword 'a
  val wordFromNatural : forall 'a. 
                          (Machine_word.Size 'a) => 
                            Num.natural -> Machine_word.mword 'a
  val wordToHex : forall 'a. (Machine_word.mword 'a) -> string
  val instance_Show_Show_Machine_word_mword_dict : forall 'a. 
                                                     Show.Show_class 
                                                     (Machine_word.mword 'a)
  val wordFromBitlist : forall 'a. 
                          (Machine_word.Size 'a) => 
                            (list bool) -> Machine_word.mword 'a
  val bitlistFromWord : forall 'a. (Machine_word.mword 'a) -> list bool
  val size_test_fn : forall 'a. 
                       (Machine_word.Size 'a) => 
                         (Machine_word.mword 'a) -> nat
  val mwordEq : forall 'a. 
                  (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool
  val instance_Basic_classes_Eq_Machine_word_mword_dict : forall 'a. 
                                                            Basic_classes.Eq_class 
                                                            (Machine_word.mword 
                                                            'a)
  val signedLess : forall 'a. 
                     (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                bool
  val signedLessEq : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  bool
  val unsignedLess : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  bool
  val unsignedLessEq : forall 'a. 
                         (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                    bool
  val word_concat : forall 'a 'b 'c. 
                      (Machine_word.mword 'a) -> (Machine_word.mword 'b) -> 
                                                 Machine_word.mword 'c
  val word_extract : forall 'a 'b. 
                       nat -> nat -> (Machine_word.mword 'a) -> Machine_word.mword 
                                                                'b
  val word_update : forall 'a 'b. 
                      (Machine_word.mword 'a) -> nat -> nat -> (Machine_word.mword 
                                                               'b) -> 
                                                               Machine_word.mword 
                                                               'a
  val setBit : forall 'a. 
                 (Machine_word.mword 'a) -> nat -> bool -> Machine_word.mword 
                                                           'a
  val getBit : forall 'a. (Machine_word.mword 'a) -> nat -> bool
  val msb : forall 'a. (Machine_word.mword 'a) -> bool
  val lsb : forall 'a. (Machine_word.mword 'a) -> bool
  val shiftLeft : forall 'a. 
                    (Machine_word.mword 'a) -> nat -> Machine_word.mword 'a
  val shiftRight : forall 'a. 
                     (Machine_word.mword 'a) -> nat -> Machine_word.mword 'a
  val arithShiftRight : forall 'a. 
                          (Machine_word.mword 'a) -> nat -> Machine_word.mword 
                                                            'a
  val lAnd : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val lOr : forall 'a. 
              (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> Machine_word.mword 
                                                                    'a
  val lXor : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                          Machine_word.mword 'a
  val lNot : forall 'a. (Machine_word.mword 'a) -> Machine_word.mword 'a
  val rotateRight : forall 'a. 
                      nat -> (Machine_word.mword 'a) -> Machine_word.mword 'a
  val rotateLeft : forall 'a. 
                     nat -> (Machine_word.mword 'a) -> Machine_word.mword 'a
  val zeroExtend : forall 'a 'b. 
                     (Machine_word.Size 'b) => 
                       (Machine_word.mword 'a) -> Machine_word.mword 'b
  val signExtend : forall 'a 'b. 
                     (Machine_word.Size 'b) => 
                       (Machine_word.mword 'a) -> Machine_word.mword 'b
  val uminus : forall 'a. (Machine_word.mword 'a) -> Machine_word.mword 'a
  val times : forall 'a. 
                (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                           Machine_word.mword 'a
  val unsignedDivide : forall 'a. 
                         (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                    Machine_word.mword 
                                                    'a
  val signedDivide : forall 'a. 
                       (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> 
                                                  Machine_word.mword 
                                                  'a
  val wordFromNumeral : forall 'a. 
                          (Machine_word.Size 'a) => 
                            numeral -> Machine_word.mword 'a
  val instance_Num_Numeral_Machine_word_mword_dict : forall 'a. 
                                                       (Machine_word.Size 'a) => 
                                                         Num.Numeral_class 
                                                         (Machine_word.mword 
                                                         'a)
  val fold : forall 'a 'b. ('a -> 'b -> 'b) -> (set 'a) -> 'b -> 'b
  val setEqualBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                             (set 'a) -> 
                                                             bool
  val setEqual : forall 'a. 
                   (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val instance_Basic_classes_Eq_set_dict : forall 'a. 
                                             (Basic_classes.SetType 'a) => 
                                               Basic_classes.Eq_class 
                                               (set 'a)
  val empty : forall 'a. (Basic_classes.SetType 'a) => set 'a
  val emptyBy : forall 'a. ('a -> 'a -> Basic_classes.ordering) -> set 'a
  val IN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val memberBy : forall 'a. 
                   ('a -> 'a -> Basic_classes.ordering) -> 'a -> (set 'a) -> 
                                                                 bool
  val NIN : forall 'a. (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val notMember : forall 'a. 
                    (Basic_classes.SetType 'a) => 'a -> (set 'a) -> bool
  val singletonBy : forall 'a. 
                      ('a -> 'a -> Basic_classes.ordering) -> 'a -> set 'a
  val singleton : forall 'a. (Basic_classes.SetType 'a) => 'a -> set 'a
  val set_case : forall 'a 'b. 
                   (Basic_classes.SetType 'a) => 
                     (set 'a) -> 'b -> ('a -> 'b) -> 'b -> 'b
  val unionBy : forall 'a. 
                  ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                          (set 'a) -> 
                                                          set 'a
  val union : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val insert : forall 'a. 
                 (Basic_classes.SetType 'a) => 'a -> (set 'a) -> set 'a
  val splitMember : forall 'a. 
                      (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                        'a -> (set 'a) -> ((set 'a) * bool * (set 'a))
  val isSubsetOfBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               bool
  val isProperSubsetOfBy : forall 'a. 
                             ('a -> 'a -> Basic_classes.ordering) -> 
                             (set 'a) -> (set 'a) -> bool
  val isSubsetOf : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> bool
  val isProperSubsetOf : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (set 'a) -> (set 'a) -> bool
  val subset : forall 'a. 
                 (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
  val bigunion : forall 'a. 
                   (Basic_classes.SetType 'a) => (set (set 'a)) -> set 'a
  val bigunionBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (set (set 'a)) -> 
                                                             set 'a
  val bigintersection : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            (set (set 'a)) -> set 'a
  val differenceBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               set 'a
  val difference : forall 'a. 
                     (Basic_classes.SetType 'a) => 
                       (set 'a) -> (set 'a) -> set 'a
  val \ : forall 'a. 
            (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val intersection : forall 'a. 
                       (Basic_classes.SetType 'a) => 
                         (set 'a) -> (set 'a) -> set 'a
  val intersectionBy : forall 'a. 
                         ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                                 (set 'a) -> 
                                                                 set 
                                                                 'a
  val inter : forall 'a. 
                (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> set 'a
  val mapBy : forall 'a 'b. 
                ('b -> 'b -> Basic_classes.ordering) -> ('a -> 'b) -> 
                                                        (set 'a) -> set 'b
  val bigunionMap : forall 'a 'b. 
                      (Basic_classes.SetType 'a)
                        (Basic_classes.SetType 'b) => 
                        ('a -> set 'b) -> (set 'a) -> set 'b
  val bigunionMapBy : forall 'a 'b. 
                        ('b -> 'b -> Basic_classes.ordering) -> ('a -> 
                                                                set 'b) -> 
                                                                (set 'a) -> 
                                                                set 'b
  val removeMaybe : forall 'a. 
                      (Basic_classes.SetType 'a) => 
                        (set (Maybe.maybe 'a)) -> set 'a
  val findMin : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val findMax : forall 'a. 
                  (Basic_classes.SetType 'a) (Basic_classes.Eq 'a) => 
                    (set 'a) -> Maybe.maybe 'a
  val fromList : forall 'a. (Basic_classes.SetType 'a) => (list 'a) -> set 'a
  val fromListBy : forall 'a. 
                     ('a -> 'a -> Basic_classes.ordering) -> (list 'a) -> 
                                                             set 'a
  val sigma : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val sigmaBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> ('a -> set 'b) -> set ('a * 'b)
  val cross : forall 'a 'b. 
                (Basic_classes.SetType 'a) (Basic_classes.SetType 'b) => 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val crossBy : forall 'a 'b. 
                  (('a * 'b) -> ('a * 'b) -> Basic_classes.ordering) -> 
                  (set 'a) -> (set 'b) -> set ('a * 'b)
  val finite : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> bool
  val leastFixedPoint : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            nat -> ((set 'a) -> set 'a) -> (set 'a) -> set 'a
  val mapEqual : forall 'k 'v. 
                   (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                     (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
  val mapEqualBy : forall 'k 'v. 
                     ('k -> 'k -> bool) -> ('v -> 'v -> bool) -> (Map.map 
                                                                 'k 'v) -> 
                                                                 (Map.map 
                                                                 'k 'v) -> 
                                                                 bool
  val instance_Basic_classes_Eq_Map_map_dict : forall 'k 'v. 
                                                 (Basic_classes.Eq 'k)
                                                   (Basic_classes.Eq 'v) => 
                                                   Basic_classes.Eq_class 
                                                   (Map.map 'k 'v)
  val mapKeyCompare : forall 'a. 
                        (Map.MapKeyType 'a) => 
                          'a -> 'a -> Basic_classes.ordering
  val instance_Map_MapKeyType_var_dict : forall 'a. 
                                           (Basic_classes.SetType 'a) => 
                                             Map.MapKeyType_class 'a
  val findWithDefault : forall 'k 'v. 
                          (Map.MapKeyType 'k) => 
                            'k -> 'v -> (Map.map 'k 'v) -> 'v
  val toSet : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'k)
                  (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val toSetBy : forall 'k 'v. 
                  (('k * 'v) -> ('k * 'v) -> Basic_classes.ordering) -> 
                  (Map.map 'k 'v) -> set ('k * 'v)
  val domainBy : forall 'k 'v. 
                   ('k -> 'k -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                           set 'k
  val domain : forall 'k 'v. 
                 (Map.MapKeyType 'k) (Basic_classes.SetType 'k) => 
                   (Map.map 'k 'v) -> set 'k
  val range : forall 'k 'v. 
                (Map.MapKeyType 'k) (Basic_classes.SetType 'v) => 
                  (Map.map 'k 'v) -> set 'v
  val rangeBy : forall 'k 'v. 
                  ('v -> 'v -> Basic_classes.ordering) -> (Map.map 'k 'v) -> 
                                                          set 'v
  val deleteSwap : forall 'k 'v. 
                     (Map.MapKeyType 'k) => 
                       (Map.map 'k 'v) -> 'k -> Map.map 'k 'v
  val unions : forall 'k 'v. 
                 (Map.MapKeyType 'k) => 
                   (list (Map.map 'k 'v)) -> Map.map 'k 'v
  val map_setElemCompare : forall 'a 'b 'c 'd 'e. 
                             (Basic_classes.SetType 'a)
                               (Basic_classes.SetType 'b)
                               (Basic_classes.SetType 'c)
                               (Basic_classes.SetType 'd) (Map.MapKeyType 'b)
                               (Map.MapKeyType 'd) => 
                               ((set ('d * 'c)) -> (set ('b * 'a)) -> 'e) -> 
                               (Map.map 'd 'c) -> (Map.map 'b 'a) -> 'e
  val instance_Basic_classes_SetType_Map_map_dict : forall 'a 'b. 
                                                      (Basic_classes.SetType
                                                       'a)
                                                        (Basic_classes.SetType
                                                         'b)
                                                        (Map.MapKeyType 'a) => 
                                                        Basic_classes.SetType_class 
                                                        (Map.map 'a 'b)
  val fromSet : forall 'k 'v. 
                  (Map.MapKeyType 'k) => 
                    ('k -> 'v) -> (set 'k) -> Map.map 'k 'v
  val toList : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> list 'a
  val fromJust : forall 'a. (Maybe.maybe 'a) -> 'a
  val naturalOfString : string -> Num.natural
  val integerOfString : string -> Num.integer
  val integerOfChar : char -> Num.integer
  val integerOfStringHelper : (list char) -> Num.integer
  val integerDiv_t : Num.integer -> Num.integer -> Num.integer
  val integerRem_t : Num.integer -> Num.integer -> Num.integer
  val integerRem_f : Num.integer -> Num.integer -> Num.integer
  val either : forall 'a 'b 'c. 
                 ('a -> 'c) -> ('b -> 'c) -> (Either.either 'a 'b) -> 'c
  val Left : forall 'a 'b. 'a -> Either.either 'a 'b
  val Right : forall 'a 'b. 'b -> Either.either 'a 'b
  val eitherEqual : forall 'a 'b. 
                      (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                        (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                 bool
  val eitherEqualBy : forall 'a 'b. 
                        ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    (Either.either 
                                                                    'a 
                                                                    'b) -> 
                                                                    bool
  val instance_Basic_classes_Eq_Either_either_dict : forall 'a 'b. 
                                                       (Basic_classes.Eq 'a)
                                                         (Basic_classes.Eq 'b) => 
                                                         Basic_classes.Eq_class 
                                                         (Either.either 
                                                         'a 'b)
  val either_setElemCompare : forall 'a 'b 'c 'd. 
                                ('d -> 'b -> Basic_classes.ordering) -> 
                                ('c -> 'a -> Basic_classes.ordering) -> 
                                (Either.either 'd 'c) -> (Either.either 
                                                         'b 'a) -> Basic_classes.ordering
  val instance_Basic_classes_SetType_Either_either_dict : forall 'a 'b. 
                                                            (Basic_classes.SetType
                                                             'a)
                                                              (Basic_classes.SetType
                                                               'b) => 
                                                              Basic_classes.SetType_class 
                                                              (Either.either 
                                                              'a 'b)
  val isLeft : forall 'a 'b. (Either.either 'a 'b) -> bool
  val isRight : forall 'a 'b. (Either.either 'a 'b) -> bool
  val partitionEither : forall 'a 'b. 
                          (list (Either.either 'a 'b)) -> ((list 'a) *
                                                           (list 'b))
  val lefts : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'a
  val rights : forall 'a 'b. (list (Either.either 'a 'b)) -> list 'b
  val BitSeq : (Maybe.maybe nat) -> bool -> (list bool) -> Word.bitSequence
  val bitSeqEq : Word.bitSequence -> Word.bitSequence -> bool
  val instance_Basic_classes_Eq_Word_bitSequence_dict : 
                                                          Basic_classes.Eq_class 
                                                          Word.bitSequence
  val boolListFrombitSeq : nat -> Word.bitSequence -> list bool
  val boolListFrombitSeqAux : forall 'a. nat -> 'a -> (list 'a) -> list 'a
  val bitSeqFromBoolList : (list bool) -> Maybe.maybe Word.bitSequence
  val cleanBitSeq : Word.bitSequence -> Word.bitSequence
  val bitSeqTestBit : Word.bitSequence -> nat -> Maybe.maybe bool
  val bitSeqSetBit : Word.bitSequence -> nat -> bool -> Word.bitSequence
  val resizeBitSeq : 
                       (Maybe.maybe nat) -> Word.bitSequence -> Word.bitSequence
  val bitSeqNot : Word.bitSequence -> Word.bitSequence
  val bitSeqBinop : 
                      (bool -> bool -> bool) -> Word.bitSequence -> Word.bitSequence -> 
                                                                    Word.bitSequence
  val bitSeqBinopAux : 
                         (bool -> bool -> bool) -> bool -> (list bool) -> 
                                                           bool -> (list 
                                                                   bool) -> 
                                                                   list 
                                                                   bool
  val bitSeqAnd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqOr : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqXor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqShiftLeft : Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqArithmeticShiftRight : 
                                     Word.bitSequence -> nat -> Word.bitSequence
  val bitSeqLogicalShiftRight : Word.bitSequence -> nat -> Word.bitSequence
  val integerFromBoolList : (bool * (list bool)) -> Num.integer
  val integerFromBoolListAux : Num.integer -> (list bool) -> Num.integer
  val boolListFromInteger : Num.integer -> (bool * (list bool))
  val boolListFromNatural : (list bool) -> Num.natural -> list bool
  val bitSeqFromInteger : 
                            (Maybe.maybe nat) -> Num.integer -> Word.bitSequence
  val integerFromBitSeq : Word.bitSequence -> Num.integer
  val bitSeqArithUnaryOp : 
                             (Num.integer -> Num.integer) -> Word.bitSequence -> 
                                                             Word.bitSequence
  val bitSeqArithBinOp : 
                           (Num.integer -> Num.integer -> Num.integer) -> 
                           Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqArithBinTest : forall 'a. 
                             (Num.integer -> Num.integer -> 'a) -> Word.bitSequence -> 
                                                                   Word.bitSequence -> 
                                                                   'a
  val bitSeqFromNumeral : numeral -> Word.bitSequence
  val instance_Num_Numeral_Word_bitSequence_dict : 
                                                     Num.Numeral_class 
                                                     Word.bitSequence
  val bitSeqLess : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqLessEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreater : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqGreaterEqual : Word.bitSequence -> Word.bitSequence -> bool
  val bitSeqCompare : 
                        Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
  val instance_Basic_classes_Ord_Word_bitSequence_dict : 
                                                           Basic_classes.Ord_class 
                                                           Word.bitSequence
  val instance_Basic_classes_SetType_Word_bitSequence_dict : 
                                                               Basic_classes.SetType_class 
                                                               Word.bitSequence
  val bitSeqNegate : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumNegate_Word_bitSequence_dict : 
                                                       Num.NumNegate_class 
                                                       Word.bitSequence
  val bitSeqAdd : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumAdd_Word_bitSequence_dict : 
                                                    Num.NumAdd_class 
                                                    Word.bitSequence
  val bitSeqMinus : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMinus_Word_bitSequence_dict : 
                                                      Num.NumMinus_class 
                                                      Word.bitSequence
  val bitSeqSucc : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumSucc_Word_bitSequence_dict : 
                                                     Num.NumSucc_class 
                                                     Word.bitSequence
  val bitSeqPred : Word.bitSequence -> Word.bitSequence
  val instance_Num_NumPred_Word_bitSequence_dict : 
                                                     Num.NumPred_class 
                                                     Word.bitSequence
  val bitSeqMult : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumMult_Word_bitSequence_dict : 
                                                     Num.NumMult_class 
                                                     Word.bitSequence
  val bitSeqPow : Word.bitSequence -> nat -> Word.bitSequence
  val instance_Num_NumPow_Word_bitSequence_dict : 
                                                    Num.NumPow_class 
                                                    Word.bitSequence
  val bitSeqDiv : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumIntegerDivision_Word_bitSequence_dict : 
                                                                Num.NumIntegerDivision_class 
                                                                Word.bitSequence
  val instance_Num_NumDivision_Word_bitSequence_dict : 
                                                         Num.NumDivision_class 
                                                         Word.bitSequence
  val bitSeqMod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Num_NumRemainder_Word_bitSequence_dict : 
                                                          Num.NumRemainder_class 
                                                          Word.bitSequence
  val bitSeqMin : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val bitSeqMax : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
  val instance_Basic_classes_OrdMaxMin_Word_bitSequence_dict : 
                                                                 Basic_classes.OrdMaxMin_class 
                                                                 Word.bitSequence
  val lnot : forall 'a. (Word.WordNot 'a) => 'a -> 'a
  val land : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val conjunction : forall 'a. (Word.WordAnd 'a) => 'a -> 'a -> 'a
  val lor : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val inclusive_or : forall 'a. (Word.WordOr 'a) => 'a -> 'a -> 'a
  val lxor : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val exclusive_or : forall 'a. (Word.WordXor 'a) => 'a -> 'a -> 'a
  val lsl : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val left_shift : forall 'a. (Word.WordLsl 'a) => 'a -> nat -> 'a
  val lsr : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val logicial_right_shift : forall 'a. (Word.WordLsr 'a) => 'a -> nat -> 'a
  val asr : forall 'a. (Word.WordAsr 'a) => 'a -> nat -> 'a
  val arithmetic_right_shift : forall 'a. 
                                 (Word.WordAsr 'a) => 'a -> nat -> 'a
  val instance_Word_WordNot_Word_bitSequence_dict : 
                                                      Word.WordNot_class 
                                                      Word.bitSequence
  val instance_Word_WordAnd_Word_bitSequence_dict : 
                                                      Word.WordAnd_class 
                                                      Word.bitSequence
  val instance_Word_WordOr_Word_bitSequence_dict : 
                                                     Word.WordOr_class 
                                                     Word.bitSequence
  val instance_Word_WordXor_Word_bitSequence_dict : 
                                                      Word.WordXor_class 
                                                      Word.bitSequence
  val instance_Word_WordLsl_Word_bitSequence_dict : 
                                                      Word.WordLsl_class 
                                                      Word.bitSequence
  val instance_Word_WordLsr_Word_bitSequence_dict : 
                                                      Word.WordLsr_class 
                                                      Word.bitSequence
  val instance_Word_WordAsr_Word_bitSequence_dict : 
                                                      Word.WordAsr_class 
                                                      Word.bitSequence
  val int32Lnot : Num.int32 -> Num.int32
  val instance_Word_WordNot_Num_int32_dict : Word.WordNot_class Num.int32
  val int32Lor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordOr_Num_int32_dict : Word.WordOr_class Num.int32
  val int32Lxor : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordXor_Num_int32_dict : Word.WordXor_class Num.int32
  val int32Land : Num.int32 -> Num.int32 -> Num.int32
  val instance_Word_WordAnd_Num_int32_dict : Word.WordAnd_class Num.int32
  val int32Lsl : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsl_Num_int32_dict : Word.WordLsl_class Num.int32
  val int32Lsr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordLsr_Num_int32_dict : Word.WordLsr_class Num.int32
  val int32Asr : Num.int32 -> nat -> Num.int32
  val instance_Word_WordAsr_Num_int32_dict : Word.WordAsr_class Num.int32
  val int64Lnot : Num.int64 -> Num.int64
  val instance_Word_WordNot_Num_int64_dict : Word.WordNot_class Num.int64
  val int64Lor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordOr_Num_int64_dict : Word.WordOr_class Num.int64
  val int64Lxor : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordXor_Num_int64_dict : Word.WordXor_class Num.int64
  val int64Land : Num.int64 -> Num.int64 -> Num.int64
  val instance_Word_WordAnd_Num_int64_dict : Word.WordAnd_class Num.int64
  val int64Lsl : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsl_Num_int64_dict : Word.WordLsl_class Num.int64
  val int64Lsr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordLsr_Num_int64_dict : Word.WordLsr_class Num.int64
  val int64Asr : Num.int64 -> nat -> Num.int64
  val instance_Word_WordAsr_Num_int64_dict : Word.WordAsr_class Num.int64
  val defaultLnot : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a
  val defaultLand : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLor : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> 'a -> 'a
  val defaultLxor : forall 'a. 
                      (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                  'a -> 'a -> 'a
  val defaultLsl : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultLsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val defaultAsr : forall 'a. 
                     (Word.bitSequence -> 'a) -> ('a -> Word.bitSequence) -> 
                                                 'a -> nat -> 'a
  val integerLnot : Num.integer -> Num.integer
  val instance_Word_WordNot_Num_integer_dict : Word.WordNot_class Num.integer
  val integerLor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordOr_Num_integer_dict : Word.WordOr_class Num.integer
  val integerLxor : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordXor_Num_integer_dict : Word.WordXor_class Num.integer
  val integerLand : Num.integer -> Num.integer -> Num.integer
  val instance_Word_WordAnd_Num_integer_dict : Word.WordAnd_class Num.integer
  val integerLsl : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsl_Num_integer_dict : Word.WordLsl_class Num.integer
  val integerAsr : Num.integer -> nat -> Num.integer
  val instance_Word_WordLsr_Num_integer_dict : Word.WordLsr_class Num.integer
  val instance_Word_WordAsr_Num_integer_dict : Word.WordAsr_class Num.integer
  val intFromBitSeq : Word.bitSequence -> Num.int
  val bitSeqFromInt : Num.int -> Word.bitSequence
  val intLnot : Num.int -> Num.int
  val instance_Word_WordNot_Num_int_dict : Word.WordNot_class Num.int
  val intLor : Num.int -> Num.int -> Num.int
  val instance_Word_WordOr_Num_int_dict : Word.WordOr_class Num.int
  val intLxor : Num.int -> Num.int -> Num.int
  val instance_Word_WordXor_Num_int_dict : Word.WordXor_class Num.int
  val intLand : Num.int -> Num.int -> Num.int
  val instance_Word_WordAnd_Num_int_dict : Word.WordAnd_class Num.int
  val intLsl : Num.int -> nat -> Num.int
  val instance_Word_WordLsl_Num_int_dict : Word.WordLsl_class Num.int
  val intAsr : Num.int -> nat -> Num.int
  val instance_Word_WordAsr_Num_int_dict : Word.WordAsr_class Num.int
  val naturalFromBitSeq : Word.bitSequence -> Num.natural
  val bitSeqFromNatural : 
                            (Maybe.maybe nat) -> Num.natural -> Word.bitSequence
  val naturalLor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordOr_Num_natural_dict : Word.WordOr_class Num.natural
  val naturalLxor : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordXor_Num_natural_dict : Word.WordXor_class Num.natural
  val naturalLand : Num.natural -> Num.natural -> Num.natural
  val instance_Word_WordAnd_Num_natural_dict : Word.WordAnd_class Num.natural
  val naturalLsl : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsl_Num_natural_dict : Word.WordLsl_class Num.natural
  val naturalAsr : Num.natural -> nat -> Num.natural
  val instance_Word_WordLsr_Num_natural_dict : Word.WordLsr_class Num.natural
  val instance_Word_WordAsr_Num_natural_dict : Word.WordAsr_class Num.natural
  val natFromBitSeq : Word.bitSequence -> nat
  val bitSeqFromNat : nat -> Word.bitSequence
  val natLor : nat -> nat -> nat
  val instance_Word_WordOr_nat_dict : Word.WordOr_class nat
  val natLxor : nat -> nat -> nat
  val instance_Word_WordXor_nat_dict : Word.WordXor_class nat
  val natLand : nat -> nat -> nat
  val instance_Word_WordAnd_nat_dict : Word.WordAnd_class nat
  val natLsl : nat -> nat -> nat
  val instance_Word_WordLsl_nat_dict : Word.WordLsl_class nat
  val natAsr : nat -> nat -> nat
  val instance_Word_WordAsr_nat_dict : Word.WordAsr_class nat
  val choose : forall 'a. (Basic_classes.SetType 'a) => (set 'a) -> 'a
  val chooseAndSplit : forall 'a. 
                         (Basic_classes.SetType 'a)
                           (Basic_classes.Ord 'a) => 
                           (set 'a) -> Maybe.maybe ((set 'a) * 'a * (set 'a))
  val universal : forall 'a. (Basic_classes.SetType 'a) => set 'a
  val toOrderedListBy : forall 'a. ('a -> 'a -> bool) -> (set 'a) -> list 'a
  val toOrderedList : forall 'a. 
                        (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                          (set 'a) -> list 'a
  val setCompareBy : forall 'a. 
                       ('a -> 'a -> Basic_classes.ordering) -> (set 'a) -> 
                                                               (set 'a) -> 
                                                               Basic_classes.ordering
  val setCompare : forall 'a. 
                     (Basic_classes.SetType 'a) (Basic_classes.Ord 'a) => 
                       (set 'a) -> (set 'a) -> Basic_classes.ordering
  val instance_Basic_classes_SetType_set_dict : forall 'a. 
                                                  (Basic_classes.SetType 'a) => 
                                                    Basic_classes.SetType_class 
                                                    (set 'a)
  val leastFixedPointUnbounded : forall 'a. 
                                   (Basic_classes.SetType 'a) => 
                                     ((set 'a) -> set 'a) -> (set 'a) -> 
                                                             set 'a
  val ord : char -> nat
  val chr : nat -> char
  val stringFromNatHelper : nat -> (list char) -> list char
  val stringFromNat : nat -> string
  val stringFromNaturalHelper : Num.natural -> (list char) -> list char
  val stringFromNatural : Num.natural -> string
  val stringFromInt : Num.int -> string
  val stringFromInteger : Num.integer -> string
  val stringConcat : (list string) -> string
  val stringCompare : string -> string -> Basic_classes.ordering
  val stringLess : string -> string -> bool
  val stringLessEq : string -> string -> bool
  val stringGreater : string -> string -> bool
  val stringGreaterEq : string -> string -> bool
  val instance_Basic_classes_Ord_string_dict : Basic_classes.Ord_class string
  val instance_Show_Show_nat_dict : Show.Show_class nat
  val instance_Show_Show_Num_natural_dict : Show.Show_class Num.natural
  val instance_Show_Show_Num_int_dict : Show.Show_class Num.int
  val instance_Show_Show_Num_integer_dict : Show.Show_class Num.integer
  val stringFromSet : forall 'a. 
                        (Basic_classes.SetType 'a) => 
                          ('a -> string) -> (set 'a) -> string
  val stringFromRelation : forall 'a. 
                             (Basic_classes.Eq 'a)
                               (Basic_classes.SetType 'a) => 
                               (('a * 'a) -> string) -> (set ('a * 'a)) -> 
                                                        string
  val instance_Show_Show_set_dict : forall 'a. 
                                      (Show.Show 'a)
                                        (Basic_classes.SetType 'a) => 
                                        Show.Show_class (set 'a)

  module Instance_Basic_classes_Eq_var = struct

    val = : forall 'a. 'a -> 'a -> bool
    val <> : forall 'a. 'a -> 'a -> bool

  end

  module Instance_Basic_classes_Eq_Basic_classes_ordering = struct

    val = : Basic_classes.ordering -> Basic_classes.ordering -> bool
    val <> : Basic_classes.ordering -> Basic_classes.ordering -> bool

  end

  module Instance_Basic_classes_OrdMaxMin_var = struct

    val max : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a
    val min : forall 'a. (Basic_classes.Ord 'a) => 'a -> 'a -> 'a

  end

  module Instance_Basic_classes_SetType_var = struct

    val setElemCompare : forall 'a. 'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_bool = struct

    val = : bool -> bool -> bool
    val <> : bool -> bool -> bool

  end

  module Instance_Basic_classes_SetType_bool = struct

    val setElemCompare : bool -> bool -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_char = struct

    val = : char -> char -> bool
    val <> : char -> char -> bool

  end

  module Instance_Basic_classes_Eq_string = struct

    val = : string -> string -> bool
    val <> : string -> string -> bool

  end

  module Instance_Basic_classes_Eq_tup2 = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_Ord_tup2 = struct

    val compare : forall 'a 'b. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                      ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering
    val < : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val <= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool
    val > : forall 'a 'b. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                ('a * 'b) -> ('a * 'b) -> bool
    val >= : forall 'a 'b. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b) => 
                 ('a * 'b) -> ('a * 'b) -> bool

  end

  module Instance_Basic_classes_SetType_tup2 = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             ('a * 'b) -> ('a * 'b) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup3 = struct

    val = : forall 'a 'b 'c. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <> : forall 'a 'b 'c. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_Ord_tup3 = struct

    val compare : forall 'a 'b 'c. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) => 
                      ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering
    val < : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val <= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val > : forall 'a 'b 'c. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) => 
                ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool
    val >= : forall 'a 'b 'c. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) => 
                 ('a * 'b * 'c) -> ('a * 'b * 'c) -> bool

  end

  module Instance_Basic_classes_SetType_tup3 = struct

    val setElemCompare : forall 'a 'b 'c. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c) => 
                             ('a * 'b * 'c) -> ('a * 'b * 'c) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup4 = struct

    val = : forall 'a 'b 'c 'd. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <> : forall 'a 'b 'c 'd. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_Ord_tup4 = struct

    val compare : forall 'a 'b 'c 'd. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                      ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> Basic_classes.ordering
    val < : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val <= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val > : forall 'a 'b 'c 'd. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool
    val >= : forall 'a 'b 'c 'd. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd) => 
                 ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> bool

  end

  module Instance_Basic_classes_SetType_tup4 = struct

    val setElemCompare : forall 'a 'b 'c 'd. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd) => 
                             ('a * 'b * 'c * 'd) -> ('a * 'b * 'c * 'd) -> 
                                                    Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup5 = struct

    val = : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <> : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_Ord_tup5 = struct

    val compare : forall 'a 'b 'c 'd 'e. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) => 
                      ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> 
                                                  Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val <= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val > : forall 'a 'b 'c 'd 'e. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) => 
                ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool
    val >= : forall 'a 'b 'c 'd 'e. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) => 
                 ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 'd * 'e) -> bool

  end

  module Instance_Basic_classes_SetType_tup5 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e) => 
                             ('a * 'b * 'c * 'd * 'e) -> ('a * 'b * 'c * 
                                                          'd * 'e) -> 
                                                         Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_tup6 = struct

    val = : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <> : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b)
                 (Basic_classes.Eq 'c) (Basic_classes.Eq 'd)
                 (Basic_classes.Eq 'e) (Basic_classes.Eq 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_Ord_tup6 = struct

    val compare : forall 'a 'b 'c 'd 'e 'f. 
                    (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                      (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                      (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                      ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 
                                                        'd * 'e * 'f) -> 
                                                       Basic_classes.ordering
    val < : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val <= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool
    val > : forall 'a 'b 'c 'd 'e 'f. 
              (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 'e * 'f) -> 
                                                 bool
    val >= : forall 'a 'b 'c 'd 'e 'f. 
               (Basic_classes.Ord 'a) (Basic_classes.Ord 'b)
                 (Basic_classes.Ord 'c) (Basic_classes.Ord 'd)
                 (Basic_classes.Ord 'e) (Basic_classes.Ord 'f) => 
                 ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 'c * 'd * 
                                                   'e * 'f) -> bool

  end

  module Instance_Basic_classes_SetType_tup6 = struct

    val setElemCompare : forall 'a 'b 'c 'd 'e 'f. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Basic_classes.SetType 'c)
                             (Basic_classes.SetType 'd)
                             (Basic_classes.SetType 'e)
                             (Basic_classes.SetType 'f) => 
                             ('a * 'b * 'c * 'd * 'e * 'f) -> ('a * 'b * 
                                                               'c * 'd * 
                                                               'e * 'f) -> 
                                                              Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Maybe_maybe = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

  module Instance_Basic_classes_SetType_Maybe_maybe = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> 
                                                 Basic_classes.ordering

  end

  module Instance_Basic_classes_Ord_Maybe_maybe = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => 
                (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => 
                 (Maybe.maybe 'a) -> (Maybe.maybe 'a) -> bool

  end

  module Instance_Num_Numeral_nat = struct

    val fromNumeral : numeral -> nat

  end

  module Instance_Basic_classes_Eq_nat = struct

    val = : nat -> nat -> bool
    val <> : nat -> nat -> bool

  end

  module Instance_Basic_classes_Ord_nat = struct

    val compare : nat -> nat -> Basic_classes.ordering
    val < : nat -> nat -> bool
    val <= : nat -> nat -> bool
    val > : nat -> nat -> bool
    val >= : nat -> nat -> bool

  end

  module Instance_Basic_classes_SetType_nat = struct

    val setElemCompare : nat -> nat -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_nat = struct

    val + : nat -> nat -> nat

  end

  module Instance_Num_NumMinus_nat = struct

    val - : nat -> nat -> nat

  end

  module Instance_Num_NumSucc_nat = struct

    val succ : nat -> nat

  end

  module Instance_Num_NumPred_nat = struct

    val pred : nat -> nat

  end

  module Instance_Num_NumMult_nat = struct

    val * : nat -> nat -> nat

  end

  module Instance_Num_NumIntegerDivision_nat = struct

    val div : nat -> nat -> nat

  end

  module Instance_Num_NumDivision_nat = struct

    val / : nat -> nat -> nat

  end

  module Instance_Num_NumRemainder_nat = struct

    val mod : nat -> nat -> nat

  end

  module Instance_Num_NumPow_nat = struct

    val ** : nat -> nat -> nat

  end

  module Instance_Basic_classes_OrdMaxMin_nat = struct

    val max : nat -> nat -> nat
    val min : nat -> nat -> nat

  end

  module Instance_Num_Numeral_Num_natural = struct

    val fromNumeral : numeral -> Num.natural

  end

  module Instance_Basic_classes_Eq_Num_natural = struct

    val = : Num.natural -> Num.natural -> bool
    val <> : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_Ord_Num_natural = struct

    val compare : Num.natural -> Num.natural -> Basic_classes.ordering
    val < : Num.natural -> Num.natural -> bool
    val <= : Num.natural -> Num.natural -> bool
    val > : Num.natural -> Num.natural -> bool
    val >= : Num.natural -> Num.natural -> bool

  end

  module Instance_Basic_classes_SetType_Num_natural = struct

    val setElemCompare : Num.natural -> Num.natural -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_natural = struct

    val + : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumMinus_Num_natural = struct

    val - : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumSucc_Num_natural = struct

    val succ : Num.natural -> Num.natural

  end

  module Instance_Num_NumPred_Num_natural = struct

    val pred : Num.natural -> Num.natural

  end

  module Instance_Num_NumMult_Num_natural = struct

    val * : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumPow_Num_natural = struct

    val ** : Num.natural -> nat -> Num.natural

  end

  module Instance_Num_NumIntegerDivision_Num_natural = struct

    val div : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumDivision_Num_natural = struct

    val / : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_NumRemainder_Num_natural = struct

    val mod : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Basic_classes_OrdMaxMin_Num_natural = struct

    val max : Num.natural -> Num.natural -> Num.natural
    val min : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Num_Numeral_Num_int = struct

    val fromNumeral : numeral -> Num.int

  end

  module Instance_Basic_classes_Eq_Num_int = struct

    val = : Num.int -> Num.int -> bool
    val <> : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_Ord_Num_int = struct

    val compare : Num.int -> Num.int -> Basic_classes.ordering
    val < : Num.int -> Num.int -> bool
    val <= : Num.int -> Num.int -> bool
    val > : Num.int -> Num.int -> bool
    val >= : Num.int -> Num.int -> bool

  end

  module Instance_Basic_classes_SetType_Num_int = struct

    val setElemCompare : Num.int -> Num.int -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int = struct

    val ~ : Num.int -> Num.int

  end

  module Instance_Num_NumAbs_Num_int = struct

    val abs : Num.int -> Num.int

  end

  module Instance_Num_NumAdd_Num_int = struct

    val + : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumMinus_Num_int = struct

    val - : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumSucc_Num_int = struct

    val succ : Num.int -> Num.int

  end

  module Instance_Num_NumPred_Num_int = struct

    val pred : Num.int -> Num.int

  end

  module Instance_Num_NumMult_Num_int = struct

    val * : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumPow_Num_int = struct

    val ** : Num.int -> nat -> Num.int

  end

  module Instance_Num_NumIntegerDivision_Num_int = struct

    val div : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumDivision_Num_int = struct

    val / : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_NumRemainder_Num_int = struct

    val mod : Num.int -> Num.int -> Num.int

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int = struct

    val max : Num.int -> Num.int -> Num.int
    val min : Num.int -> Num.int -> Num.int

  end

  module Instance_Num_Numeral_Num_int32 = struct

    val fromNumeral : numeral -> Num.int32

  end

  module Instance_Basic_classes_Eq_Num_int32 = struct

    val = : Num.int32 -> Num.int32 -> bool
    val <> : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int32 = struct

    val compare : Num.int32 -> Num.int32 -> Basic_classes.ordering
    val < : Num.int32 -> Num.int32 -> bool
    val <= : Num.int32 -> Num.int32 -> bool
    val > : Num.int32 -> Num.int32 -> bool
    val >= : Num.int32 -> Num.int32 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int32 = struct

    val setElemCompare : Num.int32 -> Num.int32 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int32 = struct

    val ~ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAbs_Num_int32 = struct

    val abs : Num.int32 -> Num.int32

  end

  module Instance_Num_NumAdd_Num_int32 = struct

    val + : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumMinus_Num_int32 = struct

    val - : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumSucc_Num_int32 = struct

    val succ : Num.int32 -> Num.int32

  end

  module Instance_Num_NumPred_Num_int32 = struct

    val pred : Num.int32 -> Num.int32

  end

  module Instance_Num_NumMult_Num_int32 = struct

    val * : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumPow_Num_int32 = struct

    val ** : Num.int32 -> nat -> Num.int32

  end

  module Instance_Num_NumIntegerDivision_Num_int32 = struct

    val div : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumDivision_Num_int32 = struct

    val / : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_NumRemainder_Num_int32 = struct

    val mod : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int32 = struct

    val max : Num.int32 -> Num.int32 -> Num.int32
    val min : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Num_Numeral_Num_int64 = struct

    val fromNumeral : numeral -> Num.int64

  end

  module Instance_Basic_classes_Eq_Num_int64 = struct

    val = : Num.int64 -> Num.int64 -> bool
    val <> : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_Ord_Num_int64 = struct

    val compare : Num.int64 -> Num.int64 -> Basic_classes.ordering
    val < : Num.int64 -> Num.int64 -> bool
    val <= : Num.int64 -> Num.int64 -> bool
    val > : Num.int64 -> Num.int64 -> bool
    val >= : Num.int64 -> Num.int64 -> bool

  end

  module Instance_Basic_classes_SetType_Num_int64 = struct

    val setElemCompare : Num.int64 -> Num.int64 -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_int64 = struct

    val ~ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAbs_Num_int64 = struct

    val abs : Num.int64 -> Num.int64

  end

  module Instance_Num_NumAdd_Num_int64 = struct

    val + : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumMinus_Num_int64 = struct

    val - : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumSucc_Num_int64 = struct

    val succ : Num.int64 -> Num.int64

  end

  module Instance_Num_NumPred_Num_int64 = struct

    val pred : Num.int64 -> Num.int64

  end

  module Instance_Num_NumMult_Num_int64 = struct

    val * : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumPow_Num_int64 = struct

    val ** : Num.int64 -> nat -> Num.int64

  end

  module Instance_Num_NumIntegerDivision_Num_int64 = struct

    val div : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumDivision_Num_int64 = struct

    val / : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_NumRemainder_Num_int64 = struct

    val mod : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Basic_classes_OrdMaxMin_Num_int64 = struct

    val max : Num.int64 -> Num.int64 -> Num.int64
    val min : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Num_Numeral_Num_integer = struct

    val fromNumeral : numeral -> Num.integer

  end

  module Instance_Basic_classes_Eq_Num_integer = struct

    val = : Num.integer -> Num.integer -> bool
    val <> : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_Ord_Num_integer = struct

    val compare : Num.integer -> Num.integer -> Basic_classes.ordering
    val < : Num.integer -> Num.integer -> bool
    val <= : Num.integer -> Num.integer -> bool
    val > : Num.integer -> Num.integer -> bool
    val >= : Num.integer -> Num.integer -> bool

  end

  module Instance_Basic_classes_SetType_Num_integer = struct

    val setElemCompare : Num.integer -> Num.integer -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Num_integer = struct

    val ~ : Num.integer -> Num.integer

  end

  module Instance_Num_NumAbs_Num_integer = struct

    val abs : Num.integer -> Num.integer

  end

  module Instance_Num_NumAdd_Num_integer = struct

    val + : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumMinus_Num_integer = struct

    val - : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumSucc_Num_integer = struct

    val succ : Num.integer -> Num.integer

  end

  module Instance_Num_NumPred_Num_integer = struct

    val pred : Num.integer -> Num.integer

  end

  module Instance_Num_NumMult_Num_integer = struct

    val * : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumPow_Num_integer = struct

    val ** : Num.integer -> nat -> Num.integer

  end

  module Instance_Num_NumIntegerDivision_Num_integer = struct

    val div : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumDivision_Num_integer = struct

    val / : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_NumRemainder_Num_integer = struct

    val mod : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Basic_classes_OrdMaxMin_Num_integer = struct

    val max : Num.integer -> Num.integer -> Num.integer
    val min : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Num_Numeral_Num_rational = struct

    val fromNumeral : numeral -> Num.rational

  end

  module Instance_Basic_classes_Eq_Num_rational = struct

    val = : Num.rational -> Num.rational -> bool
    val <> : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_Ord_Num_rational = struct

    val compare : Num.rational -> Num.rational -> Basic_classes.ordering
    val < : Num.rational -> Num.rational -> bool
    val <= : Num.rational -> Num.rational -> bool
    val > : Num.rational -> Num.rational -> bool
    val >= : Num.rational -> Num.rational -> bool

  end

  module Instance_Basic_classes_SetType_Num_rational = struct

    val setElemCompare : 
                           Num.rational -> Num.rational -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_rational = struct

    val + : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumMinus_Num_rational = struct

    val - : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumNegate_Num_rational = struct

    val ~ : Num.rational -> Num.rational

  end

  module Instance_Num_NumAbs_Num_rational = struct

    val abs : Num.rational -> Num.rational

  end

  module Instance_Num_NumSucc_Num_rational = struct

    val succ : Num.rational -> Num.rational

  end

  module Instance_Num_NumPred_Num_rational = struct

    val pred : Num.rational -> Num.rational

  end

  module Instance_Num_NumMult_Num_rational = struct

    val * : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumDivision_Num_rational = struct

    val / : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_NumPow_Num_rational = struct

    val ** : Num.rational -> nat -> Num.rational

  end

  module Instance_Basic_classes_OrdMaxMin_Num_rational = struct

    val max : Num.rational -> Num.rational -> Num.rational
    val min : Num.rational -> Num.rational -> Num.rational

  end

  module Instance_Num_Numeral_Num_real = struct

    val fromNumeral : numeral -> Num.real

  end

  module Instance_Basic_classes_Eq_Num_real = struct

    val = : Num.real -> Num.real -> bool
    val <> : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_Ord_Num_real = struct

    val compare : Num.real -> Num.real -> Basic_classes.ordering
    val < : Num.real -> Num.real -> bool
    val <= : Num.real -> Num.real -> bool
    val > : Num.real -> Num.real -> bool
    val >= : Num.real -> Num.real -> bool

  end

  module Instance_Basic_classes_SetType_Num_real = struct

    val setElemCompare : Num.real -> Num.real -> Basic_classes.ordering

  end

  module Instance_Num_NumAdd_Num_real = struct

    val + : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumMinus_Num_real = struct

    val - : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumNegate_Num_real = struct

    val ~ : Num.real -> Num.real

  end

  module Instance_Num_NumAbs_Num_real = struct

    val abs : Num.real -> Num.real

  end

  module Instance_Num_NumSucc_Num_real = struct

    val succ : Num.real -> Num.real

  end

  module Instance_Num_NumPred_Num_real = struct

    val pred : Num.real -> Num.real

  end

  module Instance_Num_NumMult_Num_real = struct

    val * : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumDivision_Num_real = struct

    val / : Num.real -> Num.real -> Num.real

  end

  module Instance_Num_NumPow_Num_real = struct

    val ** : Num.real -> nat -> Num.real

  end

  module Instance_Basic_classes_OrdMaxMin_Num_real = struct

    val max : Num.real -> Num.real -> Num.real
    val min : Num.real -> Num.real -> Num.real

  end

  module Instance_Basic_classes_Eq_list = struct

    val = : forall 'a. 
              (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.Eq 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_Ord_list = struct

    val compare : forall 'a. 
                    (Basic_classes.Ord 'a) => 
                      (list 'a) -> (list 'a) -> Basic_classes.ordering
    val < : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val <= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val > : forall 'a. 
              (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool
    val >= : forall 'a. 
               (Basic_classes.Ord 'a) => (list 'a) -> (list 'a) -> bool

  end

  module Instance_Basic_classes_SetType_list = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (list 'a) -> (list 'a) -> Basic_classes.ordering

  end

  module Instance_Show_Show_string = struct

    val show : string -> string

  end

  module Instance_Show_Show_Maybe_maybe = struct

    val show : forall 'a. (Show.Show 'a) => (Maybe.maybe 'a) -> string

  end

  module Instance_Show_Show_list = struct

    val show : forall 'a. (Show.Show 'a) => (list 'a) -> string

  end

  module Instance_Show_Show_tup2 = struct

    val show : forall 'a 'b. 
                 (Show.Show 'a) (Show.Show 'b) => ('a * 'b) -> string

  end

  module Instance_Show_Show_bool = struct

    val show : bool -> string

  end

  module Instance_Machine_word_Size_Machine_word_ty1 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty2 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty3 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty4 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty5 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty6 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty7 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty8 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty9 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty10 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty11 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty12 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty13 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty14 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty15 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty16 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty17 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty18 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty19 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty20 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty21 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty22 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty23 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty24 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty25 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty26 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty27 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty28 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty29 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty30 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty31 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty32 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty33 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty34 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty35 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty36 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty37 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty38 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty39 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty40 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty41 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty42 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty43 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty44 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty45 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty46 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty47 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty48 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty49 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty50 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty51 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty52 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty53 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty54 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty55 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty56 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty57 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty58 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty59 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty60 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty61 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty62 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty63 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty64 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty65 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty66 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty67 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty68 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty69 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty70 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty71 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty72 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty73 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty74 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty75 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty76 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty77 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty78 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty79 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty80 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty81 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty82 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty83 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty84 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty85 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty86 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty87 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty88 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty89 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty90 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty91 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty92 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty93 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty94 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty95 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty96 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty97 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty98 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty99 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty100 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty101 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty102 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty103 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty104 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty105 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty106 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty107 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty108 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty109 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty110 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty111 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty112 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty113 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty114 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty115 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty116 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty117 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty118 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty119 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty120 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty121 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty122 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty123 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty124 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty125 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty126 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty127 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty128 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty129 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty130 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty131 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty132 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty133 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty134 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty135 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty136 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty137 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty138 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty139 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty140 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty141 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty142 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty143 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty144 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty145 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty146 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty147 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty148 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty149 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty150 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty151 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty152 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty153 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty154 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty155 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty156 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty157 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty158 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty159 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty160 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty161 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty162 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty163 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty164 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty165 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty166 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty167 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty168 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty169 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty170 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty171 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty172 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty173 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty174 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty175 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty176 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty177 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty178 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty179 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty180 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty181 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty182 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty183 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty184 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty185 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty186 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty187 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty188 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty189 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty190 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty191 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty192 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty193 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty194 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty195 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty196 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty197 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty198 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty199 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty200 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty201 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty202 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty203 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty204 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty205 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty206 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty207 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty208 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty209 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty210 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty211 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty212 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty213 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty214 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty215 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty216 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty217 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty218 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty219 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty220 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty221 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty222 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty223 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty224 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty225 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty226 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty227 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty228 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty229 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty230 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty231 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty232 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty233 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty234 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty235 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty236 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty237 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty238 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty239 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty240 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty241 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty242 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty243 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty244 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty245 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty246 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty247 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty248 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty249 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty250 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty251 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty252 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty253 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty254 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty255 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty256 = struct

    val size : nat

  end

  module Instance_Machine_word_Size_Machine_word_ty257 = struct

    val size : nat

  end

  module Instance_Show_Show_Machine_word_mword = struct

    val show : forall 'a. (Machine_word.mword 'a) -> string

  end

  module Instance_Basic_classes_Eq_Machine_word_mword = struct

    val = : forall 'a. 
              (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool
    val <> : forall 'a. 
               (Machine_word.mword 'a) -> (Machine_word.mword 'a) -> bool

  end

  module Instance_Num_Numeral_Machine_word_mword = struct

    val fromNumeral : forall 'a. 
                        (Machine_word.Size 'a) => 
                          numeral -> Machine_word.mword 'a

  end

  module Instance_Basic_classes_Eq_set = struct

    val = : forall 'a. 
              (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool
    val <> : forall 'a. 
               (Basic_classes.SetType 'a) => (set 'a) -> (set 'a) -> bool

  end

  module Instance_Basic_classes_Eq_Map_map = struct

    val = : forall 'k 'v. 
              (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool
    val <> : forall 'k 'v. 
               (Basic_classes.Eq 'k) (Basic_classes.Eq 'v) => 
                 (Map.map 'k 'v) -> (Map.map 'k 'v) -> bool

  end

  module Instance_Map_MapKeyType_var = struct

    val mapKeyCompare : forall 'a. 
                          (Basic_classes.SetType 'a) => 
                            'a -> 'a -> Basic_classes.ordering

  end

  module Instance_Basic_classes_SetType_Map_map = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b)
                             (Map.MapKeyType 'a) => 
                             (Map.map 'a 'b) -> (Map.map 'a 'b) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Either_either = struct

    val = : forall 'a 'b. 
              (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool
    val <> : forall 'a 'b. 
               (Basic_classes.Eq 'a) (Basic_classes.Eq 'b) => 
                 (Either.either 'a 'b) -> (Either.either 'a 'b) -> bool

  end

  module Instance_Basic_classes_SetType_Either_either = struct

    val setElemCompare : forall 'a 'b. 
                           (Basic_classes.SetType 'a)
                             (Basic_classes.SetType 'b) => 
                             (Either.either 'a 'b) -> (Either.either 'a 'b) -> 
                                                      Basic_classes.ordering

  end

  module Instance_Basic_classes_Eq_Word_bitSequence = struct

    val = : Word.bitSequence -> Word.bitSequence -> bool
    val <> : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Num_Numeral_Word_bitSequence = struct

    val fromNumeral : numeral -> Word.bitSequence

  end

  module Instance_Basic_classes_Ord_Word_bitSequence = struct

    val compare : 
                    Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering
    val < : Word.bitSequence -> Word.bitSequence -> bool
    val <= : Word.bitSequence -> Word.bitSequence -> bool
    val > : Word.bitSequence -> Word.bitSequence -> bool
    val >= : Word.bitSequence -> Word.bitSequence -> bool

  end

  module Instance_Basic_classes_SetType_Word_bitSequence = struct

    val setElemCompare : 
                           Word.bitSequence -> Word.bitSequence -> Basic_classes.ordering

  end

  module Instance_Num_NumNegate_Word_bitSequence = struct

    val ~ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumAdd_Word_bitSequence = struct

    val + : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMinus_Word_bitSequence = struct

    val - : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumSucc_Word_bitSequence = struct

    val succ : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPred_Word_bitSequence = struct

    val pred : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumMult_Word_bitSequence = struct

    val * : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumPow_Word_bitSequence = struct

    val ** : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Num_NumIntegerDivision_Word_bitSequence = struct

    val div : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumDivision_Word_bitSequence = struct

    val / : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Num_NumRemainder_Word_bitSequence = struct

    val mod : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Basic_classes_OrdMaxMin_Word_bitSequence = struct

    val max : Word.bitSequence -> Word.bitSequence -> Word.bitSequence
    val min : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordNot_Word_bitSequence = struct

    val lnot : Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordAnd_Word_bitSequence = struct

    val land : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordOr_Word_bitSequence = struct

    val lor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordXor_Word_bitSequence = struct

    val lxor : Word.bitSequence -> Word.bitSequence -> Word.bitSequence

  end

  module Instance_Word_WordLsl_Word_bitSequence = struct

    val lsl : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordLsr_Word_bitSequence = struct

    val lsr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordAsr_Word_bitSequence = struct

    val asr : Word.bitSequence -> nat -> Word.bitSequence

  end

  module Instance_Word_WordNot_Num_int32 = struct

    val lnot : Num.int32 -> Num.int32

  end

  module Instance_Word_WordOr_Num_int32 = struct

    val lor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordXor_Num_int32 = struct

    val lxor : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordAnd_Num_int32 = struct

    val land : Num.int32 -> Num.int32 -> Num.int32

  end

  module Instance_Word_WordLsl_Num_int32 = struct

    val lsl : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordLsr_Num_int32 = struct

    val lsr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordAsr_Num_int32 = struct

    val asr : Num.int32 -> nat -> Num.int32

  end

  module Instance_Word_WordNot_Num_int64 = struct

    val lnot : Num.int64 -> Num.int64

  end

  module Instance_Word_WordOr_Num_int64 = struct

    val lor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordXor_Num_int64 = struct

    val lxor : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordAnd_Num_int64 = struct

    val land : Num.int64 -> Num.int64 -> Num.int64

  end

  module Instance_Word_WordLsl_Num_int64 = struct

    val lsl : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordLsr_Num_int64 = struct

    val lsr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordAsr_Num_int64 = struct

    val asr : Num.int64 -> nat -> Num.int64

  end

  module Instance_Word_WordNot_Num_integer = struct

    val lnot : Num.integer -> Num.integer

  end

  module Instance_Word_WordOr_Num_integer = struct

    val lor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordXor_Num_integer = struct

    val lxor : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordAnd_Num_integer = struct

    val land : Num.integer -> Num.integer -> Num.integer

  end

  module Instance_Word_WordLsl_Num_integer = struct

    val lsl : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordLsr_Num_integer = struct

    val lsr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordAsr_Num_integer = struct

    val asr : Num.integer -> nat -> Num.integer

  end

  module Instance_Word_WordNot_Num_int = struct

    val lnot : Num.int -> Num.int

  end

  module Instance_Word_WordOr_Num_int = struct

    val lor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordXor_Num_int = struct

    val lxor : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordAnd_Num_int = struct

    val land : Num.int -> Num.int -> Num.int

  end

  module Instance_Word_WordLsl_Num_int = struct

    val lsl : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordAsr_Num_int = struct

    val asr : Num.int -> nat -> Num.int

  end

  module Instance_Word_WordOr_Num_natural = struct

    val lor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordXor_Num_natural = struct

    val lxor : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordAnd_Num_natural = struct

    val land : Num.natural -> Num.natural -> Num.natural

  end

  module Instance_Word_WordLsl_Num_natural = struct

    val lsl : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordLsr_Num_natural = struct

    val lsr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordAsr_Num_natural = struct

    val asr : Num.natural -> nat -> Num.natural

  end

  module Instance_Word_WordOr_nat = struct

    val lor : nat -> nat -> nat

  end

  module Instance_Word_WordXor_nat = struct

    val lxor : nat -> nat -> nat

  end

  module Instance_Word_WordAnd_nat = struct

    val land : nat -> nat -> nat

  end

  module Instance_Word_WordLsl_nat = struct

    val lsl : nat -> nat -> nat

  end

  module Instance_Word_WordAsr_nat = struct

    val asr : nat -> nat -> nat

  end

  module Instance_Basic_classes_SetType_set = struct

    val setElemCompare : forall 'a. 
                           (Basic_classes.SetType 'a) => 
                             (set 'a) -> (set 'a) -> Basic_classes.ordering

  end

  module Instance_Basic_classes_Ord_string = struct

    val compare : string -> string -> Basic_classes.ordering
    val < : string -> string -> bool
    val <= : string -> string -> bool
    val > : string -> string -> bool
    val >= : string -> string -> bool

  end

  module Instance_Show_Show_nat = struct

    val show : nat -> string

  end

  module Instance_Show_Show_Num_natural = struct

    val show : Num.natural -> string

  end

  module Instance_Show_Show_Num_int = struct

    val show : Num.int -> string

  end

  module Instance_Show_Show_Num_integer = struct

    val show : Num.integer -> string

  end

  module Instance_Show_Show_set = struct

    val show : forall 'a. 
                 (Show.Show 'a) (Basic_classes.SetType 'a) => 
                   (set 'a) -> string

  end

end

