package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

AST node annotations (used for position, type, etc.)

type ('a, 'm) t = 'a * 'm

Everything related to the source code should keep at least its position stored, to improve error messages

type 'a pos = ('a, Pos.t) t

The type of marks containing only position information

val mark : 'm -> 'a -> ('a, 'm) t
val unmark : ('a, 'm) t -> 'a
val get_mark : ('a, 'm) t -> 'm
val map_under_mark : ('a -> 'b) -> ('a, 'm) t -> ('b, 'm) t
val same_mark_as : 'a -> ('b, 'm) t -> ('a, 'm) t
val unmark_option : ('a, 'm) t option -> 'a option
val compare : ('a -> 'a -> int) -> ('a, 'm) t -> ('a, 'm) t -> int

Compares two marked values ignoring positions

Visitors

class 'self marked_map : object ... end
class 'self marked_iter : object ... end
class 'self pos_map : object ... end
class 'self pos_iter : object ... end