HList: Heterogeneous lists
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- These packages miss upper bounds: - QuickCheck - array - base-orphans - cmdargs - directory - filepath - ghc-prim - hspec - hspec-expectations - lens - mtl - process - profunctors - semigroups - syb - tagged - template-haskell Please add them, using `cabal gen-bounds` for suggestions. For more information see: https://pvp.haskell.org/
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 http://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]
Properties
Versions | 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.3.0 |
---|---|
Change log | ChangeLog |
Dependencies | array, base (>=4.6 && <5), base-orphans, ghc-prim, mtl, profunctors, semigroups, tagged, template-haskell [details] |
License | MIT |
Author | 2004 Oleg Kiselyov (FNMOC, Monterey), Ralf Laemmel (CWI/VU, Amsterdam), Keean Schupke (London) |
Maintainer | oleg@pobox.com |
Category | Data |
Source repo | head: git clone https://bitbucket.org/HList/hlist |
Uploaded | by AdamVogt at 2023-09-23T21:29:23Z |
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.3.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees