Module Cst.Line

type 'a not_blank = {
trailing_blanks : Base.string;

regexp: " \t*"

orig : Base.string;

Original contents of the line without the trailing blanks or indentation. regexp: "^\n*^ \t\n"

data : 'a;

Data associated to the line.

}
val sexp_of_not_blank : ('a -> Base.Sexp.t) -> 'a not_blank -> Base.Sexp.t
val compare_not_blank : ('a -> 'a -> Base.int) -> 'a not_blank -> 'a not_blank -> Base.int
val equal_not_blank : ('a -> 'a -> Base.bool) -> 'a not_blank -> 'a not_blank -> Base.bool
type 'a t =
| Blank of Base.string

regexp: " \t*"

| Not_blank of 'a not_blank
val sexp_of_t : ('a -> Base.Sexp.t) -> 'a t -> Base.Sexp.t
val compare : ('a -> 'a -> Base.int) -> 'a t -> 'a t -> Base.int
val equal : ('a -> 'a -> Base.bool) -> 'a t -> 'a t -> Base.bool
val invariant : ('a -> Base.unit) -> 'a t -> Base.unit
val map : 'a t -> f:(Base.string -> 'a -> 'b) -> 'b t

The callback receive the orig and data fields

val strip : 'a t -> 'a t

Delete trailing blanks (everything for blank lines)

val data : 'a t -> blank:'a -> 'a