Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/monadfix/named
Named parameters (keyword arguments) for Haskell
https://github.com/monadfix/named
haskell
Last synced: 5 days ago
JSON representation
Named parameters (keyword arguments) for Haskell
- Host: GitHub
- URL: https://github.com/monadfix/named
- Owner: monadfix
- License: other
- Created: 2018-02-01T12:13:49.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-27T00:11:23.000Z (3 months ago)
- Last Synced: 2025-01-10T16:12:03.874Z (12 days ago)
- Topics: haskell
- Language: Haskell
- Size: 43.9 KB
- Stars: 91
- Watchers: 7
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
# `named` – keyword arguments for Haskell
[![Hackage](https://img.shields.io/hackage/v/named.svg)](https://hackage.haskell.org/package/named)
`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 upUnlike 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:
```haskell
import NamedcreateSymLink :: "from" :! FilePath -> "to" :! FilePath -> IO ()
createSymLink (Arg from) (Arg to) = ...main = createSymLink ! #from "/path/to/source"
! #to "/target/path"
```