Module Fleche.Info

module type Point = sig ... end
module LineCol : Point with type t = int * int
module Offset : Point with type t = int
type approx =
  1. | Exact
    (*

    Exact on point

    *)
  2. | PrevIfEmpty
    (*

    If no match, return prev

    *)
  3. | Prev
    (*

    If no match, return prev, if match, too

    *)
module type S = sig ... end

Located queries

module LC : S with module P := LineCol
module O : S with module P := Offset
val in_state : st:Coq.State.t -> f:('a -> 'b option) -> 'a -> 'b option

Helper to absorb errors in state change to None, needed due to the lack of proper monad in Coq.Protect, to fix soon

module Goals : sig ... end

We move towards a more modular design here, for preprocessing

module Completion : sig ... end