type t = | Basic of ScTypes.types (** A direct type *) | Formula of formula (** A formula *) | Undefined (** The content is not defined *) and formula = | Expression of ScTypes.expression (** A valid expression *) | Error of int * UTF8.t (** When the expression cannot be parsed *) (** Load an expression *) val load: UTF8.t -> t val load_expr: t -> t val is_defined: t -> bool (** Evaluate the expression *) val eval: t -> (ScTypes.refs -> ScTypes.types option ScTypes.Refs.range) -> ScTypes.result (** Collect all the cell referenced in the expression *) val collect_sources: t -> Cell.Set.t (** Represent an expression *) val show: t -> UTF8.t val shift: (int * int) -> t -> t val (=): t -> t -> bool