{"schema":1,"title":"API glossary","description":"Kinds, modifiers and package labels in the Haskell API reference.","url":"https://libtmux.org/en/haskell/latest/reference/glossary/","groups":[{"id":"symbol-kinds","title":"Symbol kinds","description":"Kinds identify declarations in the Haskell API reference.","terms":[{"id":"module","definition":"A named Haskell module that imports and exports declarations.","detail":"A module qualifies names such as LibTmux.Id.parsePaneId. Documentation ownership by a data type does not add that type to the source name.","references":[{"title":"Haskell modules","url":"https://www.haskell.org/onlinereport/haskell2010/haskellch5.html"}],"url":"https://libtmux.org/en/haskell/latest/reference/glossary/#module"},{"id":"data-type","definition":"A distinct Haskell type introduced by a data or newtype declaration.","detail":"An opaque Haddock data header exposes the type name without revealing whether its implementation uses data or newtype.","references":[{"title":"Haskell datatype declarations","url":"https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-680004.2"}],"label":"data type","url":"https://libtmux.org/en/haskell/latest/reference/glossary/#data-type"},{"id":"data-constructor","definition":"A Haskell value constructor that builds one form of a data type.","detail":"Constructors can carry fields and appear in patterns. A qualified constructor takes its module name, not its data type name.","references":[{"title":"Haskell algebraic datatypes","url":"https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-690004.2.1"}],"label":"data constructor","url":"https://libtmux.org/en/haskell/latest/reference/glossary/#data-constructor"},{"id":"record-field","definition":"A Haskell record label used in construction, update and pattern matching.","detail":"The qualified modules use NoFieldSelectors. Their exported record labels do not generate top-level selector functions.","references":[{"title":"GHC field selectors","url":"https://downloads.haskell.org/ghc/9.14.1/docs/users_guide/exts/field_selectors.html"}],"label":"record field","url":"https://libtmux.org/en/haskell/latest/reference/glossary/#record-field"},{"id":"function","definition":"A Haskell binding with a function type, applied to arguments by juxtaposition.","detail":"Arguments are curried. Acquisition and mutation require an explicit effect such as IO in the signature.","references":[{"title":"Haskell function bindings","url":"https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-830004.4.3"}],"url":"https://libtmux.org/en/haskell/latest/reference/glossary/#function"}]},{"id":"modifiers","title":"Modifiers","description":"Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature.","terms":[{"id":"opaque","definition":"A Haskell type exported without its data constructors.","detail":"Callers use exported operations rather than hidden constructors or representation. This does not establish whether the implementation uses data or newtype.","references":[{"title":"Haskell abstract datatypes","url":"https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-1150005.8"}],"url":"https://libtmux.org/en/haskell/latest/reference/glossary/#opaque"}]},{"id":"package-context","title":"Package context","description":"Package labels identify where an API is supplied.","terms":[{"id":"package","definition":"The Cabal package supplying these exposed Haskell modules.","detail":"A package name and a module name are different identities. Availability from source does not imply publication on Hackage.","references":[{"title":"Cabal package descriptions","url":"https://cabal.readthedocs.io/en/3.18/cabal-package-description-file.html"}],"url":"https://libtmux.org/en/haskell/latest/reference/glossary/#package"}]}]}