extensible-0.4.2: Extensible, efficient, optics-friendly data types and effects

Copyright(c) Fumiaki Kinoshita 2017
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Data.Extensible.Record

Description

Bidirectional conversion from/to records

Synopsis

Documentation

class IsRecord a where #

The class of types that can be converted to/from a Record.

Minimal complete definition

recordFromList, recordToList

Associated Types

type RecFields a :: [Assoc Symbol *] #

Instances

IsRecord () # 

Associated Types

type RecFields () :: [Assoc Symbol *] #

toRecord :: IsRecord a => a -> Record (RecFields a) #

Convert a value into a Record.

fromRecord :: IsRecord a => Record (RecFields a) -> a #

Convert a Record to a value.

record :: (IsRecord a, Functor f, Profunctor p) => Optic' p f a (Record (RecFields a)) #

record :: IsRecord a => Iso' a (Record (RecFields a))

deriveIsRecord :: Name -> DecsQ #

Create an IsRecord instance for a normal record declaration.