# Overloaded Records
[][Hackage: overloaded-records]
[](http://packdeps.haskellers.com/reverse/overloaded-records)
[][Haskell.org]
[][tl;dr Legal: BSD3]
[](https://travis-ci.org/trskop/overloaded-records)
## Description
Implementation of /Overloaded Records/ based on current GHC proposal.
This implementation is highly experimental and may change rapidly.
More about the current status of OverloadedRecordFields language extension can
be found on [GHC Wiki: OverloadedRecordFields][].
## Usage Example
```Haskell
{-# LANGUAGE DataKinds #-} -- overloadedRecords, labels
{-# LANGUAGE FlexibleContexts #-} -- labels
{-# LANGUAGE FlexibleInstances #-} -- overloadedRecords
{-# LANGUAGE MultiParamTypeClasses #-} -- overloadedRecords
{-# LANGUAGE TemplateHaskell #-} -- overloadedRecords, labels
{-# LANGUAGE TypeFamilies #-} -- overloadedRecords
module FooBar
where
import Data.Default.Class (Default(def))
import Data.OverloadedRecords.TH (overloadedRecords)
import Data.OverloadedLabels.TH (label, labels)
data Foo a = Foo
{ _x :: Int
, _y :: a
}
overloadedRecords def ''Foo
labels ["x", "y"]
newtype Bar a = Bar {_bar :: a}
overloadedRecords def ''Bar
label "bar"
```
## License
The BSD 3-Clause License, see [LICENSE][] file for details. This implementation
is based on original prototype, which is under MIT License.
## Contributions
Contributions, pull requests and bug reports are welcome! Please don't be
afraid to contact author using GitHub or by e-mail.
[GHC Wiki: OverloadedRecordFields]:
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields
"OverloadedRecordFields language extension on GHC Wiki"
[Hackage: overloaded-records]:
http://hackage.haskell.org/package/overloaded-records
"overloaded-records package on Hackage"
[Haskell.org]:
http://www.haskell.org
"The Haskell Programming Language"
[LICENSE]:
https://github.com/trskop/overloaded-records/blob/master/LICENSE
"License of overloaded-records package."
[tl;dr Legal: BSD3]:
https://tldrlegal.com/license/bsd-3-clause-license-%28revised%29
"BSD 3-Clause License (Revised)"