# LibTmux.Id

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

Distinct session, physical-window and physical-pane IDs.

Parsing and rendering are pure. An ID carries no endpoint, server lifetime
 or liveness evidence. Render an ID for external text; use its numeric
 accessor when an application needs the mathematical value.

Start with [`parseSessionId`](/en/haskell/latest/reference/libtmux-id-v-parsesessionid/), [`parseWindowId`](/en/haskell/latest/reference/libtmux-id-v-parsewindowid/) or [`parsePaneId`](/en/haskell/latest/reference/libtmux-id-v-parsepaneid/). Each type's
 documentation links its parser and renderer. Contextual numeric indices
 belong to [`LibTmux.Value`](/en/haskell/latest/reference/libtmux-value/).



```haskell
>>> :set -XOverloadedStrings
>>> fmap renderWindowId (parseWindowId "@17")
Right "@17"
>>> either (const "rejected") renderPaneId (parsePaneId "@17")
"rejected"
```

## Members

### Common operations

- [`IdError`](/en/haskell/latest/reference/libtmux-id-t-iderror/) (data type): Invalid canonical syntax, entity prefix or native unsigned range.
 Diagnostics retain at most 64 characters of input.

### Other members

- [`PaneId`](/en/haskell/latest/reference/libtmux-id-t-paneid/) (data type): A physical pane's identifier, written with a `%` prefix.
 Parse with :obj:`parsePaneId <LibTmux.Id#v:parsePaneId>`; render with :obj:`renderPaneId <LibTmux.Id#v:renderPaneId>`.
- [`paneIdValue`](/en/haskell/latest/reference/libtmux-id-v-paneidvalue/) (function): Read the numeric physical pane ID.
- [`parsePaneId`](/en/haskell/latest/reference/libtmux-id-v-parsepaneid/) (function): Parse a canonical `%number` identifying a physical pane.
- [`parseSessionId`](/en/haskell/latest/reference/libtmux-id-v-parsesessionid/) (function): Parse `$0` through `$4294967295`. No whitespace or leading zeroes.
- [`parseWindowId`](/en/haskell/latest/reference/libtmux-id-v-parsewindowid/) (function): Parse a canonical `@number` identifying a physical window.
- [`renderPaneId`](/en/haskell/latest/reference/libtmux-id-v-renderpaneid/) (function): Render the physical pane prefix and decimal ID.
- [`renderSessionId`](/en/haskell/latest/reference/libtmux-id-v-rendersessionid/) (function): Render the session prefix and decimal ID.
- [`renderWindowId`](/en/haskell/latest/reference/libtmux-id-v-renderwindowid/) (function): Render the physical window prefix and decimal ID.
- [`SessionId`](/en/haskell/latest/reference/libtmux-id-t-sessionid/) (data type): A session's unsigned 32-bit tmux identifier, written with a `$` prefix.
 Parse with :obj:`parseSessionId <LibTmux.Id#v:parseSessionId>`; render with :obj:`renderSessionId <LibTmux.Id#v:renderSessionId>`.
- [`sessionIdValue`](/en/haskell/latest/reference/libtmux-id-v-sessionidvalue/) (function): Read the numeric session ID without narrowing conversion.
- [`WindowId`](/en/haskell/latest/reference/libtmux-id-t-windowid/) (data type): A physical window's identifier, independent of its session links.
 Parse with :obj:`parseWindowId <LibTmux.Id#v:parseWindowId>`; render with :obj:`renderWindowId <LibTmux.Id#v:renderWindowId>`.
- [`windowIdValue`](/en/haskell/latest/reference/libtmux-id-v-windowidvalue/) (function): Read the numeric physical window ID.

## Guides

Pages that discuss `LibTmux.Id`.

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