packages feed

derive-has-field-0.0.1.0: README.md

Derive HasField instances
===

The [`OverloadedRecordDot`][overloaded-record-dot] syntax is surprisingly nice.
I really enjoy writing code with this extension and I was originally hesistant.

[Persistent][persistent] has a really nice feature where it will automatically remove
prefixes from models. Given a model like,

```
BankAccount
  accountNumber String
```

You would normally reference this field as `bankAccountAccountNumber`. However,
with overloaded record dot you can write `bankAccount.accountNumber` which is
much nicer.

At work, I really wanted this for **every** record. With this library, I can
write,

```haskell
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TemplateHaskell #-}

import DeriveHasField

data BankAccount =
  BankAccount
    { bankAccountAccountNumber :: String
    }

deriveHasFieldWith (dropPrefix "bankAccount") ''BankAccount
```

[overloaded-record-dot]: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/overloaded_record_dot.html
[persistent]: https://github.com/yesodweb/persistent