The Bool structure is a very small collection of simple functions to manipulate boolean values. It includes the boolean negation function, Bool.not, and the string conversion functions Bool.toString and Bool.fromString. The latter function is not quite as simple as might be expected because it must signal that an invalid string does not represent a boolean. This is achieved though the use of the option datatype and the results from the Bool.fromString function are either NONE or SOME b, where b is a boolean value. This use of the optional variant of the result is common to most of the library functions which convert values from strings.