data-basic-0.2.0.2: A database library with a focus on ease of use, type safety and useful error messages

Safe HaskellNone
LanguageHaskell2010

Internal.Data.Basic.Lens

Documentation

type PolyOptic fun inType outType inVal outVal = (inVal -> fun outVal) -> inType -> fun outType Source #

type Getter' s a = PolyOptic (Const a) s s a a Source #

fieldOpticVarExp :: forall name t anyCtx proxy. TableField t name => proxy name -> PolyOptic (Const (DbExp FieldExp (TableFieldType t name))) (Var anyCtx t) (Var anyCtx t) (DbExp FieldExp (TableFieldType t name)) (DbExp FieldExp (TableFieldType t name)) Source #

fieldOpticEntityGet :: forall name t entKind proxy. (TableField t name, FieldIsGettable name (MissingFields entKind)) => proxy name -> PolyOptic (Const (TableFieldType t name)) (Entity entKind t) (Entity entKind t) (TableFieldType t name) (TableFieldType t name) Source #

class SupportedModifyAccess isSet existingValue outVal | isSet outVal -> existingValue where Source #

Minimal complete definition

transformModifyFunction

Methods

transformModifyFunction :: (existingValue -> f outVal) -> outVal -> f outVal Source #

Instances

SupportedModifyAccess Bool False () outVal Source # 

Methods

transformModifyFunction :: (outVal -> f outVal) -> outVal -> f outVal Source #

SupportedModifyAccess Bool True outVal outVal Source # 

Methods

transformModifyFunction :: (outVal -> f outVal) -> outVal -> f outVal Source #

fieldOpticEntityModify :: forall name t entKind existingValue proxy. (TableField t name, SupportedModifyAccess (FieldIsGettableBool name (MissingFields entKind)) existingValue (TableFieldType t name)) => proxy name -> PolyOptic Identity (Entity entKind t) (Entity (WithFieldSet name entKind) t) existingValue (TableFieldType t name) Source #

fieldOpticUpdateVarSet :: forall name t val proxy. (ValueAsDbExp val (TableFieldType t name), TableField t name) => proxy name -> PolyOptic Identity (Var Updating t) (UpdateExp '[name] t) (DbExp FieldExp (TableFieldType t name)) val Source #

fieldOpticUpdatedSet :: forall name t fields val proxy. (TableField t name, FieldIsNotSet name fields, ValueAsDbExp val (TableFieldType t name)) => proxy name -> PolyOptic Identity (UpdateExp fields t) (UpdateExp (name ': fields) t) (DbExp FieldExp (TableFieldType t name)) val Source #

class FieldOpticProxy t where Source #

Minimal complete definition

fieldOpticProxy

Instances

(TableField t0 name0, EqualOrError Bool (Not (Elem Symbol name0 fields0)) True ((:<>:) ((:<>:) (Text "Cannot update the field ") (ShowType Symbol name0)) (Text " because it's already updated in this expression")), ValueAsDbExp val0 (TableFieldType t0 name0), (~) * t5 (Identity (UpdateExp ((:) Symbol name0 fields0) t0)), (~) * t4 t0, (~) [Symbol] t3 fields0, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (DbExp FieldExp (TableFieldType t0 name0) -> Identity val0)), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (UpdateExp t3 t4) t5))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (UpdateExp t3 t4) t5)) Source #

(ValueAsDbExp val0 (TableFieldType t0 name0), TableField t0 name0, (~) * t7 (Identity (UpdateExp ((:) Symbol name0 ([] Symbol)) t0)), (~) * t6 t0, (~) VarContext t5 Updating, (~) (* -> * -> *) t4 (->), (~) * t3 val0, (~) (* -> *) t2 ((->) (DbExp FieldExp (TableFieldType t0 name0))), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Identity t3)) (t4 (Var t5 t6) t7))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Identity t3)) (t4 (Var t5 t6) t7)) Source #

(ValueAsDbExp val0 (TableFieldType t0 name0), TableField t0 name0, (~) * t5 (UpdateExp ((:) Symbol name0 ([] Symbol)) t0), (~) * t4 t0, (~) VarContext t3 Updating, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (DbExp FieldExp (TableFieldType t0 name0) -> Identity val0)), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (Var t3 t4) (Identity t5)))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (Var t3 t4) (Identity t5))) Source #

(ValueAsDbExp val0 (TableFieldType t0 name0), TableField t0 name0, (~) * t7 t0, (~) [Symbol] t6 ((:) Symbol name0 ([] Symbol)), (~) (* -> *) t5 Identity, (~) * t4 t0, (~) VarContext t3 Updating, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (DbExp FieldExp (TableFieldType t0 name0) -> Identity val0)), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Var t3 t4) (t5 (UpdateExp t6 t7))))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Var t3 t4) (t5 (UpdateExp t6 t7)))) Source #

(TableField t0 name0, SupportedModifyAccess Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) existingValue0 (TableFieldType t0 name0), (~) * t7 (Identity (Entity (WithFieldSet name0 entKind0) t0)), (~) * t6 t0, (~) EntityKind t5 entKind0, (~) (* -> * -> *) t4 (->), (~) * t3 (TableFieldType t0 name0), (~) (* -> *) t2 ((->) existingValue0), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Identity t3)) (t4 (Entity t5 t6) t7))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Identity t3)) (t4 (Entity t5 t6) t7)) Source #

(TableField t0 name0, SupportedModifyAccess Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) existingValue0 (TableFieldType t0 name0), (~) * t7 t0, (~) EntityKind t6 (WithFieldSet name0 entKind0), (~) (* -> *) t5 Identity, (~) (* -> *) t4 ((->) (Entity entKind0 t0)), (~) * t3 (TableFieldType t0 name0), (~) (* -> *) t2 ((->) existingValue0), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Identity t3)) (t4 (t5 (Entity t6 t7))))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Identity t3)) (t4 (t5 (Entity t6 t7)))) Source #

(TableField t0 name0, SupportedModifyAccess Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) existingValue0 (TableFieldType t0 name0), (~) * t5 (Entity (WithFieldSet name0 entKind0) t0), (~) * t4 t0, (~) EntityKind t3 entKind0, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (existingValue0 -> Identity (TableFieldType t0 name0))), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (Entity t3 t4) (Identity t5)))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (Entity t3 t4) (Identity t5))) Source #

(TableField t0 name0, SupportedModifyAccess Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) existingValue0 (TableFieldType t0 name0), (~) * t4 t0, (~) EntityKind t3 (WithFieldSet name0 entKind0), (~) (* -> *) t2 ((->) (Entity entKind0 t0)), (~) (* -> *) t1 ((->) (existingValue0 -> Identity (TableFieldType t0 name0))), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (Identity (Entity t3 t4))))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (Identity (Entity t3 t4)))) Source #

(TableField t0 name0, EqualOrError Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) True ((:<>:) ((:<>:) (Text "Field ") (ShowType Symbol name0)) (Text " is not set")), (~) * t9 (Const * (TableFieldType t0 name0) (Entity entKind0 t0)), (~) * t8 t0, (~) EntityKind t7 entKind0, (~) (* -> * -> *) t6 (->), (~) * t5 (TableFieldType t0 name0), (~) * t4 (TableFieldType t0 name0), (~) (* -> * -> *) t3 (Const *), (~) (* -> *) t2 ((->) (TableFieldType t0 name0)), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (t3 t4 t5)) (t6 (Entity t7 t8) t9))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (t3 t4 t5)) (t6 (Entity t7 t8) t9)) Source #

(TableField t0 name0, EqualOrError Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) True ((:<>:) ((:<>:) (Text "Field ") (ShowType Symbol name0)) (Text " is not set")), (~) * t7 (Entity entKind0 t0), (~) * t6 (TableFieldType t0 name0), (~) (* -> * -> *) t5 (Const *), (~) * t4 t0, (~) EntityKind t3 entKind0, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (TableFieldType t0 name0 -> Const * (TableFieldType t0 name0) (TableFieldType t0 name0))), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Entity t3 t4) (t5 t6 t7)))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Entity t3 t4) (t5 t6 t7))) Source #

(TableField t0 name0, EqualOrError Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) True ((:<>:) ((:<>:) (Text "Field ") (ShowType Symbol name0)) (Text " is not set")), (~) * t9 t0, (~) EntityKind t8 entKind0, (~) (* -> *) t7 (Const * (TableFieldType t0 name0)), (~) (* -> *) t6 ((->) (Entity entKind0 t0)), (~) * t5 (TableFieldType t0 name0), (~) * t4 (TableFieldType t0 name0), (~) (* -> * -> *) t3 (Const *), (~) (* -> *) t2 ((->) (TableFieldType t0 name0)), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (t3 t4 t5)) (t6 (t7 (Entity t8 t9))))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (t3 t4 t5)) (t6 (t7 (Entity t8 t9)))) Source #

(TableField t0 name0, EqualOrError Bool (Not (Elem Symbol name0 (MissingFieldsNames (MissingFields entKind0)))) True ((:<>:) ((:<>:) (Text "Field ") (ShowType Symbol name0)) (Text " is not set")), (~) * t6 t0, (~) EntityKind t5 entKind0, (~) * t4 (TableFieldType t0 name0), (~) (* -> * -> *) t3 (Const *), (~) (* -> *) t2 ((->) (Entity entKind0 t0)), (~) (* -> *) t1 ((->) (TableFieldType t0 name0 -> Const * (TableFieldType t0 name0) (TableFieldType t0 name0))), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (t3 t4 (Entity t5 t6))))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (t3 t4 (Entity t5 t6)))) Source #

(TableField t0 name0, (~) * t9 (Const * (DbExp FieldExp (TableFieldType t0 name0)) (Var anyCtx0 t0)), (~) * t8 t0, (~) VarContext t7 anyCtx0, (~) (* -> * -> *) t6 (->), (~) * t5 (DbExp FieldExp (TableFieldType t0 name0)), (~) * t4 (DbExp FieldExp (TableFieldType t0 name0)), (~) (* -> * -> *) t3 (Const *), (~) (* -> *) t2 ((->) (DbExp FieldExp (TableFieldType t0 name0))), (~) (* -> * -> *) t1 (->), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (t3 t4 t5)) (t6 (Var t7 t8) t9))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (t3 t4 t5)) (t6 (Var t7 t8) t9)) Source #

(TableField t0 name0, (~) * t7 (Var anyCtx0 t0), (~) * t6 (DbExp FieldExp (TableFieldType t0 name0)), (~) (* -> * -> *) t5 (Const *), (~) * t4 t0, (~) VarContext t3 anyCtx0, (~) (* -> * -> *) t2 (->), (~) (* -> *) t1 ((->) (DbExp FieldExp (TableFieldType t0 name0) -> Const * (DbExp FieldExp (TableFieldType t0 name0)) (DbExp FieldExp (TableFieldType t0 name0)))), (~) (* -> *) t11 ((->) (proxy0 name0))) => FieldOpticProxy (t11 (t1 (t2 (Var t3 t4) (t5 t6 t7)))) Source # 

Methods

fieldOpticProxy :: t11 (t1 (t2 (Var t3 t4) (t5 t6 t7))) Source #

(TableField t0 name0, (~) * t5 t0, (~) VarContext t4 anyCtx0, (~) (* -> *) t3 (Const * (DbExp FieldExp (TableFieldType t0 name0))), (~) (* -> *) t2 ((->) (Var anyCtx0 t0)), (~) (* -> *) t1 ((->) (DbExp FieldExp (TableFieldType t0 name0) -> Const * (DbExp FieldExp (TableFieldType t0 name0)) (DbExp FieldExp (TableFieldType t0 name0)))), (~) (* -> *) t7 ((->) (proxy0 name0))) => FieldOpticProxy (t7 (t1 (t2 (t3 (Var t4 t5))))) Source # 

Methods

fieldOpticProxy :: t7 (t1 (t2 (t3 (Var t4 t5)))) Source #

fieldOptic :: forall name o. FieldOpticProxy (Proxy name -> o) => o Source #

fieldOpticEntitySet :: forall name t missing. TableField t name => PolyOptic Identity (Entity missing t) (Entity (WithFieldSet name missing) t) () (TableFieldType t name) Source #