extensible
Extensible, efficient, optics-friendly data types and effects
https://github.com/fumieval/extensible
| LTS Haskell 23.28: | 0.9.2 | 
| Stackage Nightly 2024-12-09: | 0.9.2 | 
| Latest on Hackage: | 0.9.2 | 
BSD-3-Clause licensed by Fumiaki Kinoshita
Maintained by Fumiaki Kinoshita
This version can be pinned in stack with:
extensible-0.9.2@sha256:9a79f5f82b16b053231ed9045b4810728423525b0a3efeaa2427afd83ddf42d9,3225Module documentation for 0.9.2
- Data- Data.Extensible
- Data.Extensible.Bits
- Data.Extensible.Class
- Data.Extensible.Dictionary
- Data.Extensible.Field
- Data.Extensible.GetOpt
- Data.Extensible.Inclusion
- Data.Extensible.Internal
- Data.Extensible.Label
- Data.Extensible.Match
- Data.Extensible.Nullable
- Data.Extensible.Plain
- Data.Extensible.Product
- Data.Extensible.Record
- Data.Extensible.Struct
- Data.Extensible.Sum
- Data.Extensible.TH
- Data.Extensible.Tangle
- Data.Extensible.Wrapper
 
 
- Data.Extensible
Depends on 23 packages(full list with versions):

This package provides extensible poly-kinded records, variants and effects.
Several tutorials can be found at School of Haskell.
Bug reports and contributions are welcome!
Changes
0.9.2
- Supported GHC 9.10 (#40 by @miguel-negrao)
0.9.1
- Supported GHCs up to 9.8 (#38 by @kgtkr)
- Exported Assoc,(>:), andLookupfromData.Extensible.Effect
- Added coinclusionAssoc,wrenchAssoc, andretrenchAssoc(#36 by @At-sushi)
0.9
- Removed FieldName, the relic of the old ages- (@=),- @==,- @!?and- lassonow take- Proxyinstead of- FieldName. Those who are using- mkFieldneed to replace the operands with proxies (OverloadedLabels is recommended).
 
- Supported aeson 1.x
- Introduced IsLabelflag which toggles the presence of opticsOverloadedLabels. By disabling it, this package can now coexist with other users of theIsLabelclass, such asgeneric-lensandrelational-query.
0.8.3
- Compis now a pattern synonym for- Compose
- Added missing liftTypedimplementations
- Supported aeson-2.0
0.8.1
- Added DefaultOrderedandIncrementalinstances to:&
- Added an Incrementalinstance toField
0.8
- Removed Associate,AssocKey,AssocValue,ValueIs,KeyIs,KeyValue,proxyAssocKey,proxyAssocValue,stringAssokKey,xlb,:*,:|
- Reverted deprecation of Data.Extensible.Tangle
0.7.1
- Removed vectorandprettyprinterorphans
- Deprecated Data.Extensible.Tangle; use tangle
- parseJSONgives more informative failure messages on failure
- Supported barbies ^>= 2
0.7
- Moved Data.Extensible.Effectinto newextensible-skeletonpackage
- Instances for barbies and cassava are now optional
- Deprecated 訊
0.6.1
- Added fromNullable
- Added xlb
- Added a HasFieldinstance forRecordOf
- Removed deriveIsRecord
- Supported GHC 8.8
0.6
- Added a MonadCont instance for Eff
- (:*)and- (:|)are deprecated in favour of- (:&)and- (:*)where their type parameters are flipped
- Flipped the type parameters of BitProdandTangleT
- Added itemKey,hmapWithIndexWith,hfoldMapWith,hfoldMapWithIndexWith,hfoldrWithIndexWith,hfoldlWithIndexWith,hrepeatWith,htabulateWith, andhgenerateWith
0.5.1
- Split Data.Extensible.HListandData.Extensible.Internalto themembershippackage
- AssocKey,- AssocValue,- ValueIs,- KeyValueand their related combinators are deprecated. Use ones from- membership
- IsRecordnow has a generic default implementation
- Deprecated deriveIsRecord
0.5
- GHC older than 8.4 is no longer supported
- Removed Const'
- Data.Extensible.Plainis no longer exported from- Data.Extensible
- Added wrapandunwraptoWrapper
- Added (=<:)
0.4.10.1
- Fixed build on GHC 8.6
0.4.10
- Added a MonadResource,MonadThrow, andMonadCatchinstances forEff
- Proxyand- KnownSymbolare now reexported from- Data.Extensible
0.4.9
- Generalised the MonadIOinstance forEffto(MonadIO m, Associate "IO" m xs) => MonadIO (Eff xs)
- Added And :: (k -> Constraint) -> (k -> Constraint) -> k -> Constraint
- Added SemigroupandMonoidinstances forConst'
- Added stringAssocKey :: (IsString a, KnownSymbol (AssocKey kv)) => proxy kv -> a
- Added a Wrapperinstance forEither e
- Added instances of PrettyandLift
- Added hmapWithIndexFor
0.4.8
- Changed the FromJSONinstance forRecordto callparseJSON Nullfor missing fields
- Added FromJSONandToJSONinstances forNullable (Field h) :* xs
0.4.7.2
- Added cassava’s ToNamedRecord,ToRecord,FromNamedRecordandFromRecordinstances
- Added KeyIsandValueIs
- Added FromJSONandToJSONinstances for(:*)
0.4.7.1
- Fixed weird CPP errors on macOS 10.13.2 (#18)
- Added optFlag,optLastArg, andoptionOptArg
0.4.7
- Made various optimisations to improve the compilation time
- Added trivial instances for FromBits
- Generalised the API of Data.Extensible.GetOpt
0.4.6
- New module Data.Extensible.GetOpt
- Added fromBitProd
- Added Hashableinstances for:*,:|,BitProd,Membership, and various wrappers
- Added an Unboxinstance for:*
- Added hfoldlWithIndexandhfoldlWithIndexFor
0.4.5
- Added nothingEff
- Added happend
- Added Arbitraryinstances for:*,:|, and wrappers
- Added Data.Extensible.Bits
0.4.4
- Added contEffandrunContEff
- Added castEff
- Added evalStateEff
- Added SemigroupandMonoidinstances forMatch,Comp,Prod
- Added evalStateDef,execStateDef, andexecWriterDef
- Added mkFieldAs
- Added a Boundedinstance for:*
0.4.3
- Added WrappedPointer
- Added NFDataandGenericinstances forComp
- Added a Semigroupinstance forh :* xsandMembership xs x
- Added Prod
- Added peelEff0
- Changed the IsLabelinstance so that a function is always inferred as an optic
- Data.Extensible.Classnow exports- compareMembership
- Renamed runMembershiptoleadership
0.4.2
- Made newFromstrict
- pieceAtfor- (:*)is now strict
- Added (<!)
- Added peelEff1,peelAction0,execStateEff,execWriterEff
- Added atomic operations for Struct
- Added constrained variants of folds
0.4.1
- Added hforce
- Added an NFDatainstance for(:*)and:|
- Added a rule to fuse a chain of product updates
- Added a Monoidinstance forTangleT
- Added (@==)
- #foocan now be overloaded as- FieldOptic "foo"
0.4
- Added Data.Extensible.Struct
- Changed the representation of (:*)to useSmallArray
- Removed (<:*).hhead,htail,huncons,(*++*),htrans
- New functions: hfoldrWithIndex,hrepeat,hrepeatFor,haccumMap,haccum,hpartition,henumerate,hlength,hcount
- Added various derived instances for Field
- Added liftField,liftField2
- Added Wrapperinstances forMaybeand[]
- Added >:as a synonym for:>
- Data.Extensible.Effect- Refined the API
- Added Data.Extensible.Effect.Default
 
- Added Data.Extensible.Tangle
- Added record
- Type inference aids
0.3.7.1
- pieceAtfor- (:*)is now index-preserving
- Removed sector,sectorAt,picked
0.3.7
- Support GHC 8.0
- Added a Monoidinstance forField
- Added Data.Extensible.Record
- Added EnumandBoundedinstances forProxy :| xs
- Removed Data.Extensible.Union
0.3.6
- Added (@:>)
- Added (!-!!),nihility,squash
0.3.5
- Added Data.Extensible.Effect
- Added decEffects
0.3.4
- Added Data.Extensible.Wrapper
- Added itemAt,item,itemAssoc
- Safe Haskell
- Generalized Field
0.3.3
- Renamed sectorAt,sector,sectorAssoctopieceAt,piece,pieceAssoc, respectively
- pickedis now subsumed by- piece- mkFieldyields more generalized optics
 
- Renamed UnionAttoEmbedAt
- Removed clause; Usepiece . _Match
- Removed record; Usepiece . _K0
- Added htraverseWithIndex
- Renamed ordtomkMembership
- Fixed the Showinstance of:|
- Added Variant
0.3.2
- Added Associateclass and combinators around it
- Data.Extensible.Recordnow lets values be independent from keys- mkFieldrequires 1 argument
 
- Added Data.Extensible.Union, partially takingelevator’s functionality
- Removed old Data.Extensible.UnionandData.Extensible.League
- Removed (<?!)
0.3.1
- Removed Reifiable
- Now libraryyields desired dictionaries
- Added remember
- Added strikeandstrikeAt
0.3
- Renamed generatetohtabulate
- Renamed generateAtohgenerate
- Renamed generateFortohtabulateFor
- Renamed generateForAtohgenerateFor
- Renamed htabulatetohmapWithIndex
- Added (<@=>)
- Added Comp
- Fixed badly-specialized htraverse
- Added hsequence,hdistribute,hcollect
- Added hindex
0.2.10
- Optimized sector(~2x)
0.2.9
- Renamed (<?~)to(<?!$)
- Renamed (<$?~)to(<?!~)
- Refactored Data.Extensible.Dictionary
- Supported serialization/deserialization of products using binary
0.2.8
- Improved performance considerably
0.2.7
- Added accessing
- Added decFieldsanddecFieldsDeriving
- Renamed PositiontoMembership
0.2.6
- Right-associated (++)
- Added htrans
- Added recordType
- Made Eq, Ord, Show instances for Position more reasonable
0.2.5
- Added (<:)
- Re-exported Data.Extensible.Record,Data.Extensible.Union,Data.Extensible.League
- Brushed instances up
- Added subset
- Added Data.Extensible.Internal.HListand combinators
0.2.4
- Corrected the definition of Half
- Added coinclusion,wrench,retrenchalong withNullable
- Added htabulate
0.2.3
- Corrected the behavior of GenerateandForall
- Made type errors more readable
- Added (*++*)
- Fixed the accidental miscall of getUnion
0.2.2
- Added recordAt
- Added ord
- Re-added K1
- Toggled INLINE pragmas
0.2.1
- Added hheadandhtail
- Changed the definition of Unionto use coyoneda style
0.2
- Split modules up
- Flipped Position
- Added several combinators
