| CARVIEW |
HList: Heterogeneous lists
HList provides many operations to create and manipulate heterogenous lists (HLists) whose length and element types are known at compile-time. HLists are used to implement
records
variants
type-indexed products (TIP)
type-indexed co-products (TIC)
keyword arguments
User code should import Data.HList or Data.HList.CommonMain for a slightly more limited scope
The original design is described in https://okmij.org/ftp/Haskell/HList-ext.pdf,
though since that paper came out, the -XTypeFamiles extension has been used to
replace TypeCast with ~.
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Data
- Data.HList
- Data.HList.CommonMain
- Data.HList.Data
- Data.HList.Dredge
- Data.HList.FakePrelude
- Data.HList.HArray
- Data.HList.HCurry
- Data.HList.HList
- Data.HList.HListPrelude
- Data.HList.HOccurs
- Data.HList.HSort
- Data.HList.HTypeIndexed
- Data.HList.HZip
- Data.HList.Keyword
- Data.HList.Label3
- Data.HList.Label5
- Data.HList.Label6
- Data.HList.Labelable
- Data.HList.MakeLabels
- Data.HList.Record
- Data.HList.RecordPuns
- Data.HList.RecordU
- Data.HList.TIC
- Data.HList.TIP
- Data.HList.TIPtuple
- Data.HList.TypeEqO
- Data.HList.Variant
- Data.HList
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| new_type_eq | use Data.Type.Equality.== to define the instance of HEq instead of overlapping instances (in Data.HList.TypeEqO) (needs ghc >= 7.8) This version does not allow `HEq x [x] f` to lead to f ~ False, unlike the version with overlapping instances. See https://ghc.haskell.org/trac/ghc/ticket/9918 | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- HList-0.5.4.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1, 0.1.1, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.3.0.1, 0.3.1.0, 0.3.2.0, 0.3.4.0, 0.3.4.1, 0.4.0.0, 0.4.1.0, 0.4.2.0, 0.5.0.0, 0.5.1.0, 0.5.2.0, 0.5.3.0, 0.5.4.0 |
|---|---|
| Change log | ChangeLog |
| Dependencies | array, base (>=4.6 && <4.21), base-orphans, ghc-prim, mtl, profunctors, semigroups, tagged, template-haskell [details] |
| Tested with | ghc ==9.4.8, ghc ==9.6.6, ghc ==9.8.2, ghc ==9.10.1 |
| License | MIT |
| Author | 2004 Oleg Kiselyov (FNMOC, Monterey), Ralf Laemmel (CWI/VU, Amsterdam), Keean Schupke (London) |
| Maintainer | oleg@pobox.com |
| Uploaded | by AdamVogt at 2025-02-20T22:47:59Z |
| Category | Data |
| Source repo | head: git clone https://bitbucket.org/HList/hlist |
| Distributions | NixOS:0.5.4.0 |
| Reverse Dependencies | 26 direct, 31 indirect [details] |
| Downloads | 21142 total (86 in the last 30 days) |
| Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2025-02-21 [all 1 reports] |
Readme for HList-0.5.4.0
[back to package description](C) 2004--2010, Oleg Kiselyov, Ralf Laemmel, Keean Schupke Contributors: Justin Bailey, Brian Bloniarz, Gwern Branwen, Einar Karttunen, Daniil Iaitskov and Adam Vogt The HList library and samples ---------------------------------------------------------------------- Getting the code > git clone https://bitbucket.org/HList/hlist HList ---------------------------------------------------------------------- Pushing changes You need an account at bitbucket.org > cd HList > git clone git@bitbucket.org:HList/hlist.git > git pull > git commit --interactive > git push ---------------------------------------------------------------------- This distribution covers all essential issues discussed in the HList paper, though the implementation has been adapted to ghc features implemented after the paper's writing. Additional examples and HList operations are provided. The code from the database section of the HList paper is not included since doing so would have implied inclusion of substantial packages, namely the underlying infrastructure for database access library. You can get HList from Hackage or from bitbucket: $ cabal update && cabal install HList Or: $ git clone https://bitbucket.org/HList/hlist HList $ cd HList; cabal install The code was tested --- within the limits exercised in the source files --- with GHC 9.4.8 through 9.10.1 and it may still work older versions possibly back to GHC-7.6 Older compilers are not supported. One may run "cabal test" to check the distribution. ---------------------------------------------------------------------- The library can be built and tested in the checked environment (with compatible GHC, cabal and dependencies) provided by nix: $ nix-build # builds and runs tests $ nix-shell --pure # drops into an isolated shell nix usually can be installed with a single line: $ sh <(curl -L https://nixos.org/nix/install) --no-daemon ---------------------------------------------------------------------- See ChangeLog for updates.