homepage: https://github.com/sjsch/named-sop
changelog-type: markdown
hash: 5dc74546b285f27fd5b779efd640b623f17ac4e95ed6d1a30bee4472b1f25fe6
test-bench-deps: {}
maintainer: Sam Schweigel <s.schweigel@gmail.com>
synopsis: Dependently-typed sums and products, tagged by field name
changelog: |
  # 0.1.0.0

  Initial release.  Expect the public-facing API to change as the
  library is reworked.
basic-deps:
  base: ^>=4.12.0.0
  text: ^>=1.2.3.1
  singletons: ^>=2.5.1
all-versions:
- 0.1.0.0
author: Sam Schweigel
latest: 0.1.0.0
description-type: markdown
description: "# named-sop: Dependently-typed sums and products, tagged by field name\n\n[![Hackage](https://img.shields.io/hackage/v/named-sop.svg)](https://hackage.haskell.org/package/named-sop)\n[![Build
  Status](https://secure.travis-ci.org/sjsch/named-sop.svg)](http://travis-ci.org/sjsch/named-sop)\n\nSums
  and Maps (products) indexed by a typelevel map of their field\n(or constructor)
  names and types.  They can be combined and split\nagain; their typelevel map is
  sorted to ensure that the end result\nis independent of the order you combine it
  in.\n\n\"Data.NamedSOP.Generic\" contains functions for automatically\nconverting
  between types with a Generic instance and named sums of\nproducts:\n\n```haskell\n>>>
  data A = C { a :: Int, b :: Bool } \n>>>          | D Int Bool deriving (Generic)\n>>>
  :t genSum (C 3 True)\nNSum\n '[ \"_C\" ':-> NMap '[ \"a\" ':-> Int, \"b\" ':-> Bool],\n
  \   \"_D\" ':-> NMap '[ \"_1\" ':-> Int, \"_2\" ':-> Bool]]\n```\n"
license-name: MIT

Update from Hackage at 2019-07-12T06:21:06Z
Update from Hackage at 2019-07-12T06:21:06Z
