sig
module type Ordered_field =
sig
type t
val zero : Flang.Ordered_field.t
val ( + ) :
Flang.Ordered_field.t ->
Flang.Ordered_field.t -> Flang.Ordered_field.t
val ( - ) :
Flang.Ordered_field.t ->
Flang.Ordered_field.t -> Flang.Ordered_field.t
val ( * ) :
Flang.Ordered_field.t ->
Flang.Ordered_field.t -> Flang.Ordered_field.t
val ( / ) :
Flang.Ordered_field.t ->
Flang.Ordered_field.t -> Flang.Ordered_field.t
val t_of_sexp : Sexplib.Sexp.t -> Flang.Ordered_field.t
val sexp_of_t : Flang.Ordered_field.t -> Sexplib.Sexp.t
val compare : Flang.Ordered_field.t -> Flang.Ordered_field.t -> int
end
type 'a t =
[ `Abs of 'a Flang.t
| `Add of 'a Flang.t * 'a Flang.t
| `Base of 'a
| `Div of 'a Flang.t * 'a Flang.t
| `Max of 'a Flang.t * 'a Flang.t
| `Min of 'a Flang.t * 'a Flang.t
| `Mult of 'a Flang.t * 'a Flang.t
| `Sub of 'a Flang.t * 'a Flang.t ]
val base : 'a -> 'a Flang.t
val add : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val sub : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val mult : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val div : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val add_list : 'a Flang.t list -> 'a Flang.t
val mult_list : 'a Flang.t list -> 'a Flang.t
val abs : 'a Flang.t -> 'a Flang.t
val min : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val max : 'a Flang.t -> 'a Flang.t -> 'a Flang.t
val atoms : 'a Flang.t -> 'a list
module Eval :
functor (F : Ordered_field) ->
sig val eval : 'a Flang.t -> f:('a -> F.t) -> F.t end
val compare : ('a -> 'a -> int) -> 'a Flang.t -> 'a Flang.t -> int
val bin_t : 'a Bin_prot.Type_class.t -> 'a Flang.t Bin_prot.Type_class.t
val bin_read_t : 'a Bin_prot.Read.reader -> 'a Flang.t Bin_prot.Read.reader
val __bin_read_t__ :
'a Bin_prot.Read.reader -> (int -> 'a Flang.t) Bin_prot.Read.reader
val bin_reader_t :
'a Bin_prot.Type_class.reader -> 'a Flang.t Bin_prot.Type_class.reader
val bin_size_t : 'a Bin_prot.Size.sizer -> 'a Flang.t Bin_prot.Size.sizer
val bin_write_t :
'a Bin_prot.Write.writer -> 'a Flang.t Bin_prot.Write.writer
val bin_writer_t :
'a Bin_prot.Type_class.writer -> 'a Flang.t Bin_prot.Type_class.writer
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a Flang.t
val __t_of_sexp__ : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a Flang.t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a Flang.t -> Sexplib.Sexp.t
end