cabal-version:       2.4
name:                named
version:             0.3.0.2
synopsis:            Named parameters (keyword arguments) for Haskell
description:
    `named` is a lightweight library for named function parameters (keyword
    arguments) based on overloaded labels. Keyword arguments have several
    advantages over positional arguments:
    .
    * they can be supplied in arbitrary order
    * their names serve as documentation at call site
    * it is impossible to accidentally mix them up
    .
    Unlike @newtype@ wrappers, keyword arguments don't pollute the global
    namespace, don't require top-level definitions, and don't need to be
    exported.
    .
    This implementation of named parameters is typesafe, provides good type
    inference, descriptive type errors, and has no runtime overhead.
    .
    Example usage:
    .
    > import Named
    >
    > createSymLink :: "from" :! FilePath -> "to" :! FilePath -> IO ()
    > createSymLink (Arg from) (Arg to) = ...
    >
    > main = createSymLink ! #from "/path/to/source"
    >                      ! #to "/target/path"


license:             BSD-3-Clause
license-file:        LICENSE
author:              Vladislav Zavialov
maintainer:          Monadfix <hi@monadfix.com>
homepage:            https://github.com/monadfix/named
bug-reports:         https://github.com/monadfix/named/issues
category:            Control
build-type:          Simple
extra-source-files:  ChangeLog.md
tested-with:         GHC ==9.4.8, GHC ==9.6.6, GHC ==9.10.1

source-repository head
  type: git
  location: git@github.com:monadfix/named.git

library
  exposed-modules:     Named, Named.Internal
  build-depends:       base >=4.16 && <4.21
  hs-source-dirs:      src
  default-language:    GHC2021
  ghc-options:         -Wall
                       -fno-warn-unticked-promoted-constructors

test-suite regression
  type:                exitcode-stdio-1.0
  main-is:             Test.hs
  other-modules:       TestImport
  build-depends:       base >=4.16 && <4.21,
                       named
  hs-source-dirs:      test
  default-language:    GHC2021
  ghc-options:         -Wall
                       -fno-warn-missing-signatures