packages feed

ruin-0.1.0.1: ruin.cabal

name: ruin
version: 0.1.0.1
cabal-version: >=1.10
build-type: Simple
license: BSD3
license-file: LICENSE
copyright: 2016 Nicolas Frisby
maintainer: nicolas.frisby@gmail.com
synopsis: Pliable records
description:
    @ruin@ is a DSL for working with record types. It focuses on
    converting between conventionally-declared record types and
    supporting named function arguments.
    .
    * Uses @-XOverloadedLabels@, so that @#x@ is a first-class label for
    the field named @x@.
    * Provides @GHC.Generics@ defaults.
    * Named arguments: @\\[rna|x y z] -> (x,y,z)@ inhabits @("x" :\@ a,"y"
    :\@ b,"z" :\@ c) -> (a,b,c)@.
    * Relies on @-XDuplicateRecordFields@; the generic defaults only
    work if record selector names do not have distinguishing prefices.
    * Custom type errors, such as @ruin: Could not find the field \`x\'
    in the type ...@
    * "Data.Ruin.R" provides anonymous record types where the order of
    fields is irrelevant.
    .
    See the "Data.Ruin" module for an overview.
category: Data, Records
author: Nicolas Frisby

source-repository head
    type: git
    location: https://github.com/nfrisby/ruin.git

flag werror
    description:
        Enable -Werror
    default: False
    manual: True

library
    
    if flag(werror)
        ghc-options: -Werror
    exposed-modules:
        Data.Ruin
        Data.Ruin.Ancillaries
        Data.Ruin.ClosedHas
        Data.Ruin.Core
        Data.Ruin.Deep
        Data.Ruin.Eval
        Data.Ruin.R
    build-depends:
        base >=4.9 && <=5,
        binary >=0.8.3.0 && <0.9,
        cereal >=0.5.2.0 && <0.6,
        deepseq >=1.4.2.0 && <1.5,
        ghc-prim >=0.5.0.0 && <0.6,
        parsec >=3.1.11 && <3.2,
        template-haskell >=2.11.0.0 && <2.12,
        unordered-containers >=0.2.7.1 && <0.3
    default-language: Haskell2010
    other-modules:
        Data.Ruin.All
        Data.Ruin.Fieldwise
        Data.Ruin.Hide
        Data.Ruin.Hoid
        Data.Ruin.Internal
        Data.Ruin.QQ
        Data.Ruin.QQ.Parser
        Data.Ruin.TH
    ghc-options: -Wall

test-suite test
    
    if flag(werror)
        ghc-options: -Werror
    type: exitcode-stdio-1.0
    main-is: Test.hs
    build-depends:
        base >=4.9.0.0 && <4.10,
        ruin >=0.1.0.1 && <0.2,
        hspec >=2.2.3 && <2.3,
        lens ==4.14.*,
        mtl >=2.2.1 && <2.3,
        optparse-applicative >=0.12.1.0 && <0.13,
        should-not-typecheck >=2.1.0 && <2.2,
        smallcheck >=1.1.1 && <1.2,
        template-haskell >=2.11.0.0 && <2.12
    default-language: Haskell2010
    hs-source-dirs: test
    other-modules:
        MustCompile.ClosedHas
        MustCompile.HRDatabase
        MustCompile.Physics
        MustCompile.PrintAndTime
        MustCompile.RNA
        MustCompile.RSplat
        MustCompile.RSplit
        MustCompile.TH
        MustNotCompile
        StrictCheck
        Strictness
        StrictnessTypes
        Test.R
        Test.RNA
        XY
    ghc-options: -Wall