# LibTmux.Value

- **Package:** libtmux-haskell
- **Language:** Haskell
- **Kind:** module
- **Source:** https://github.com/libtmux/libtmux-haskell/blob/581f0ee45016ffb2283366bb1edc1658df26c5ed/src/LibTmux/Value.hs
- **Page:** https://libtmux.org/en/haskell/latest/reference/libtmux-value/

Positive dimensions and nonnegative contextual indices.

Construction and access are pure. Window-link indices and pane indices
 have distinct types; neither substitutes for an entity ID. A constructor
 checks the mathematical domain, while command-specific limits belong at
 the operation boundary. Use [`mkDimension`](/en/haskell/latest/reference/libtmux-value-v-mkdimension/), [`mkWindowIndex`](/en/haskell/latest/reference/libtmux-value-v-mkwindowindex/) and [`mkPaneIndex`](/en/haskell/latest/reference/libtmux-value-v-mkpaneindex/)
 to validate input; their accessors return mathematical integers. Entity
 identifiers belong to [`LibTmux.Id`](/en/haskell/latest/reference/libtmux-id/).



```haskell
>>> fmap dimensionValue (mkDimension 120)
Right 120
>>> mkDimension 0
Left (NonPositiveDimension 0)
```

## Members

### Common operations

- [`ValueError`](/en/haskell/latest/reference/libtmux-value-t-valueerror/) (data type): A scalar outside its mathematical domain.

### Other members

- [`Dimension`](/en/haskell/latest/reference/libtmux-value-t-dimension/) (data type): Positive cells, constructed with :obj:`mkDimension <LibTmux.Value#v:mkDimension>`. Command and field limits
 are checked separately. Compare dimensions directly or use :obj:`dimensionValue <LibTmux.Value#v:dimensionValue>`
 with an integer literal.
- [`dimensionValue`](/en/haskell/latest/reference/libtmux-value-v-dimensionvalue/) (function): Read a dimension as a mathematical integer, without narrowing conversion.
- [`mkDimension`](/en/haskell/latest/reference/libtmux-value-v-mkdimension/) (function): Construct a positive dimension without applying a command-specific maximum.
- [`mkPaneIndex`](/en/haskell/latest/reference/libtmux-value-v-mkpaneindex/) (function): Construct a nonnegative pane index.
- [`mkWindowIndex`](/en/haskell/latest/reference/libtmux-value-v-mkwindowindex/) (function): Construct a nonnegative window-link index.
- [`PaneIndex`](/en/haskell/latest/reference/libtmux-value-t-paneindex/) (data type): Nonnegative pane index within a window, not a pane ID.
 Construct with :obj:`mkPaneIndex <LibTmux.Value#v:mkPaneIndex>`; read with :obj:`paneIndexValue <LibTmux.Value#v:paneIndexValue>`.
- [`paneIndexValue`](/en/haskell/latest/reference/libtmux-value-v-paneindexvalue/) (function): Read a pane index as a mathematical integer.
- [`WindowIndex`](/en/haskell/latest/reference/libtmux-value-t-windowindex/) (data type): Nonnegative index of a window link within a session, not a physical window ID.
 Construct with :obj:`mkWindowIndex <LibTmux.Value#v:mkWindowIndex>`; read with :obj:`windowIndexValue <LibTmux.Value#v:windowIndexValue>`.
- [`windowIndexValue`](/en/haskell/latest/reference/libtmux-value-v-windowindexvalue/) (function): Read a window-link index as a mathematical integer.

## Guides

Pages that discuss `LibTmux.Value`.

- [Implementation status](/en/haskell/latest/guides/status/)
- [Typed values](/en/haskell/latest/guides/typed-values/)
