Bool(3) OCaml library Bool(3)

# [NAME](#NAME)

Bool - Boolean values.

# [Module](#Module)

Module Bool

# [Documentation](#Documentation)

Module **Bool**  
: **sig end**

Boolean values.

**Since** 4.08

## [Booleans](#Booleans)

*type t* = **bool** =  
| false  
| true

The type of booleans (truth values).

The constructors **false** and **true** are included here so that they have paths, but they are not intended to be used in user-defined data types.

*val not* : **bool -&gt; bool**

**not b** is the boolean negation of **b** .

*val (&&)* : **bool -&gt; bool -&gt; bool**

**e0 && e1** is the lazy boolean conjunction of expressions **e0** and **e1** . If **e0** evaluates to **false** , **e1** is not evaluated. Right-associative operator at precedence level 3/11.

*val (||)* : **bool -&gt; bool -&gt; bool**

**e0 || e1** is the lazy boolean disjunction of expressions **e0** and **e1** . If **e0** evaluates to **true** , **e1** is not evaluated. Right-associative operator at precedence level 2/11.

## [Predicates and comparisons](#Predicates_and_comparisons)

*val equal* : **bool -&gt; bool -&gt; bool**

**equal b0 b1** is **true** if and only if **b0** and **b1** are both **true** or both **false** .

*val compare* : **bool -&gt; bool -&gt; int**

**compare b0 b1** is a total order on boolean values. **false** is smaller than **true** .

## [Converting](#Converting)

*val to\_int* : **bool -&gt; int**

**to\_int b** is **0** if **b** is **false** and **1** if **b** is **true** .

*val to\_float* : **bool -&gt; float**

**to\_float b** is **0.** if **b** is **false** and **1.** if **b** is **true** .

*val to\_string* : **bool -&gt; string**

**to\_string b** is **"true"** if **b** is **true** and **"false"** if **b** is **false** .

2026-10-27 OCamldoc

---

Document: Bool(3o) from ocaml-4 4.14.4-r4 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
