packages feed

named-sop-0.2.0.0: named-sop.cabal

name:                named-sop
version:             0.2.0.0
category:            Data

homepage:            https://github.com/sjsch/named-sop
synopsis:            Dependently-typed sums and products, tagged by field name
description:
  Sums and Maps (products) indexed by a typelevel map of their field
  (or constructor) names and types.  They can be combined and split
  again; their typelevel map is sorted to ensure that the end result
  is independent of the order you combine it in.
  .
  "Data.NamedSOP.Generic" contains functions for automatically
  converting between types with a Generic instance and named sums of
  products:
  .
  > >>> data A = C { a :: Int, b :: Bool } 
  > >>>          | D Int Bool deriving (Generic)
  > >>> :t genSum (C 3 True)
  > NSum
  >  '[ "_C" ':-> NMap '[ "a" ':-> Int, "b" ':-> Bool],
  >     "_D" ':-> NMap '[ "_1" ':-> Int, "_2" ':-> Bool]]

license:             MIT
license-file:        LICENSE
author:              Sam Schweigel
maintainer:          Sam Schweigel <s.schweigel@gmail.com>

build-type:          Simple
cabal-version:       2.0
tested-with:         GHC ==8.6.4

extra-source-files:    CHANGELOG.md, README.md

source-repository head
  type:                git
  location:            https://github.com/sjsch/named-sop

library
  exposed-modules:     Data.NamedSOP.Type
                     , Data.NamedSOP.Map
                     , Data.NamedSOP.Sum
                     , Data.NamedSOP.Generic
  build-depends:       base       ^>= 4.12.0.0
                     , singletons ^>= 2.5.1
                     , text       ^>= 1.2.3.1
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall -Werror=incomplete-patterns

test-suite named-sop-spec
  type:                exitcode-stdio-1.0
  main-is:             Tests.hs
  hs-source-dirs:      test
  build-depends:       base
                     , named-sop
                     , tasty
                     , tasty-hunit
  default-language:    Haskell2010
  ghc-options:         -Wall -Werror=incomplete-patterns