package catala

  1. Overview
  2. Docs

Types

type money
type integer
type decimal
type date
type duration

Exceptions

exception EmptyError
exception AssertionFailed
exception ConflictError
exception UncomparableDurations
exception ImpossibleDate
exception NoValueProvided

Constructors and conversions

Money

val money_of_cents_string : string -> money
val money_of_units_int : int -> money
val money_of_cents_integer : integer -> money
val money_to_float : money -> float
val money_to_string : money -> string
val money_to_cents : money -> integer

Decimals

val decimal_of_string : string -> decimal
val decimal_to_string : max_prec_digits:int -> decimal -> string
val decimal_of_integer : integer -> decimal
val decimal_of_float : float -> decimal
val decimal_to_float : decimal -> float

Integers

val integer_of_string : string -> integer
val integer_to_string : integer -> string
val integer_to_int : integer -> int
val integer_of_int : int -> integer
val integer_log2 : integer -> int
val integer_exponentiation : integer -> int -> integer

Dates

val day_of_month_of_date : date -> integer
val month_number_of_date : date -> integer
val year_of_date : date -> integer
val date_to_string : date -> string
val date_of_numbers : int -> int -> int -> date

Usage: date_of_numbers year month day

Durations

val duration_of_numbers : int -> int -> int -> duration
val duration_to_days_months_years : duration -> int * int * int
val duration_to_string : duration -> string

Defaults

val handle_default : (unit -> 'a) array -> (unit -> bool) -> (unit -> 'a) -> 'a
val no_input : unit -> 'a

Operators

Money

val (*$) : money -> decimal -> money
val (/$) : money -> money -> decimal
  • raises Division_by_zero
val (+$) : money -> money -> money
val (-$) : money -> money -> money
val (~-$) : money -> money
val (=$) : money -> money -> bool
val (<=$) : money -> money -> bool
val (>=$) : money -> money -> bool
val (<$) : money -> money -> bool
val (>$) : money -> money -> bool

Integers

val (+!) : integer -> integer -> integer
val (-!) : integer -> integer -> integer
val (~-!) : integer -> integer
val (*!) : integer -> integer -> integer
val (/!) : integer -> integer -> integer
  • raises Division_by_zero
val (=!) : integer -> integer -> bool
val (>=!) : integer -> integer -> bool
val (<=!) : integer -> integer -> bool
val (>!) : integer -> integer -> bool
val (<!) : integer -> integer -> bool

Decimals

val (+&) : decimal -> decimal -> decimal
val (-&) : decimal -> decimal -> decimal
val (~-&) : decimal -> decimal
val (*&) : decimal -> decimal -> decimal
val (/&) : decimal -> decimal -> decimal
  • raises Division_by_zero
val (=&) : decimal -> decimal -> bool
val (>=&) : decimal -> decimal -> bool
val (<=&) : decimal -> decimal -> bool
val (>&) : decimal -> decimal -> bool
val (<&) : decimal -> decimal -> bool

Dates

val (+@) : date -> duration -> date
val (-@) : date -> date -> duration
val (=@) : date -> date -> bool
val (>=@) : date -> date -> bool
val (<=@) : date -> date -> bool
val (>@) : date -> date -> bool
val (<@) : date -> date -> bool

Durations

val (+^) : duration -> duration -> duration
val (-^) : duration -> duration -> duration
val (~-^) : duration -> duration
val (=^) : duration -> duration -> bool
val (>=^) : duration -> duration -> bool
val (<=^) : duration -> duration -> bool
val (>^) : duration -> duration -> bool
val (<^) : duration -> duration -> bool

Arrays

val array_filter : ('a -> bool) -> 'a array -> 'a array
val array_length : 'a array -> integer
OCaml

Innovation. Community. Security.