SuperRecord

Basics

data label := value

data Rec lts

rnil

rcons

(&)

type Has l lts idx s v

get

(&.)

set

class SetPath k x

data SPath t

(&:)

snil

Reflection

reflectRec

class RecApply rts lts c

Machinery

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

type family RecIdxTyH (i :: Nat) (r :: Nat) (lts :: [*]) :: * where ...

showRec

class RecKeys lts

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 (ls :: [Symbol]) (lts :: k) :: * where ...