SuperRecord

Basics

data label := value

type Record lts

rnil

rcons

(&)

fld

type Has l lts v

type family HasOf (req :: [*]) (lts :: [*]) :: Constraint where ...

get

(&.)

set

modify

getPath

setPath

modifyPath

class RecApplyPath p x

data lbl :& more

(&:)

(&:-)

combine

(++:)

type RecAppend lhs rhs

Reflection

reflectRec

reflectRecFold

class RecApply rts lts c

Native type interop

class FromNative a lts

fromNative

class ToNative a lts

toNative

MTL interop

asksR

asksRP

getsR

setsR

modifiesR

getsRP

setsRP

modifiesRP

Lens interop

lens

Machinery

data Rec lts

class RecCopy pts lts rts

type family RecTyIdxH (i :: Nat) (l :: Symbol) (lts :: [*]) :: Nat where ...

showRec

class RecKeys lts

recKeys

class RecEq rts lts

recToValue

recToEncoding

recJsonParser

class RecJsonParse lts

class RecNfData lts rts

type family RecSize (lts :: [*]) :: Nat where ...

type family RemoveAccessTo (l :: Symbol) (lts :: [*]) :: [*] where ...

data FldProxy t

type family RecDeepTy (ps :: r) (lts :: [*]) :: * where ...

type family KeyDoesNotExist (l :: Symbol) (lts :: [*]) :: Constraint where ...