The ControlUtil structure
Author: John Reppy
Keywords: Standard ML, SML, SML/NJ Library

The SML of NJ Library
The `ControlUtil` structure

The `ControlUtil` structure provides some utility functions for defining controls.

## Synopsis

    signature CONTROL_UTIL
    structure ControlUtil : CONTROL_UTIL

## Interface

    structure Cvt : sig
        val int : int Controls.value_cvt
        val bool : bool Controls.value_cvt
        val real : real Controls.value_cvt

        val stringList : string list Controls.value_cvt

        val string : string Controls.value_cvt
      end

    structure EnvName : sig
        val toUpper : string -> string -> string
      end

## Description

### `structure Cvt`

The `ControlUtil.Cvt` structure provides some common value-conversion functions.

`val int : int Controls.value_cvt`

  A value converter for the `int` type.

`val bool : bool Controls.value_cvt`

  A value converter for the `bool` type. This converter is case-insensitive, and accepts `"yes"` for `true` and `"no"` for `false`.

`val real : real Controls.value_cvt`

  A value converter for the `real` type.

`val stringList : string list Controls.value_cvt`

  A value converter for the comma-separated lists of strings.

`val string : string Controls.value_cvt`

  A value converter for the `string` type. This converter is just the identity.

### `structure EnvName`

`val toUpper : string -> string -> string`

  `toUpper prefix s` returns the string `prefix ^ s'`, where `s'` is the string `s` with lower-case letters converted to upper-case and any occurrences of the minus character converted to the underscore character.

## See Also

`Controls`, The Controls Library

SML/NJ Version 110.99.9 (November 4, 2025)
Last updated 2025-11-04 15:48:25 UTC