!}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~         ! " # $ % & ' ( ) * + ,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&',-.27=>?HMSUVX ! extensibleReifies the structure of Isos% extensible % :: Getter s a -> s -> a& extensible && :: Getter s a -> (a -> r) -> (s -> r)' extensible '* :: Setter s t a b -> (a -> b) -> (s -> t)( extensible"Recover tho functions from an Iso/) extensible ) :: AReview s a -> a -> s !"#$%&'() $#%&'(!")(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.124567=>?HMSUVX$+ extensiblePoly-kinded product- extensiblePoly-kinded composition0 extensible&The extensible data types should take  k -> TypeT as a parameter. This class allows us to take a shortcut for direct representation.1 extensible1 h v& is the user-facing representation of h v.2 extensibleThis is an isomorphism between h v and 1 h v. !_Wrapper :: Iso' (h v) (Repr h v)5 extensibleRestricted version of 2.. It is useful for eliminating ambiguousness.6 extensibleWrap a result of  +,-./0124356 012435-./6+,(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVXk. Y extensible Last elementZ extensible First element[ extensibleThis class allows us to use ] for both sums and products.^ extensibleAccessor for an element._ extensibleLike ^%, but reckon membership from its key.` extensible-Access a specified element through a wrapper.a extensible$Access an element through a wrapper.b extensible>Access an element specified by the key type through a wrapper.c extensible>Access an element specified by the key type through a wrapper.!   YZ[\]^_`abc![\]^_`abc   ZY(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.127=>?@AHMSUVXg7\d extensibleThe extensible sum type "(:/) :: [k] -> (k -> Type) -> Typef extensibleChange the wrapper.g extensibleO(1) lift a value.h extensible"Try to extract something you want.i extensible"Try to extract something you want.j extensibleO(1) Naive pattern matchk extensibleThere is no empty union.l extensible&Embed a value, but focuses on its key. defghijkl defghijklj1(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None%&',-.27=>?@AFHMSUVXLp extensibleConcatenate type level listsr extensible The type of extensible products. "(:&) :: [k] -> (k -> Type) -> Types extensibleA pointer to an element in a u.u extensibleMutable type-indexed struct.v extensibleWrite a value in a u.w extensibleRead a value from a u.x extensible"Atomically modify an element in a u.y extensibleStrict version of x.z extensible*Apply a function to an element atomically.{ extensibleStrict version of z.| extensibleGet a s from a name.} extensible Create a new u using the supplied initializer.~ extensible Create a u full of the specified value. extensible Create a new u/ using the supplied initializer with a context. extensible Create a new u from an HList. extensibleTurn u) into an immutable product. The original u may not be used. extensible Create a new u from a product. extensibleThe size of a product. extensibleCombine products. extensible$Right-associative fold of a product. extensibleConvert a product into an HList. extensible Create a new u! using the contents of a product. extensibleGet an element in a product. extensibleCreate a product from an  action which returns a u. extensibleTurn a product into a u temporarily.pqrstuvwxyz{|}~uvw}~st|xyz{rqpp55(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy%&',-.127=>?@AHMSUVXkn,& extensible:O(n) Prepend an element onto a product. Expressions like a <: b <: c <: nil are transformed to a single . extensibleStrict version of (). extensibleAn empty product. extensibleConvert  into a product. extensibleFlipped  extensible-Map a function to every element of a product. extensible-Map a function to every element of a product. extensible;Transform every element in a product, preserving the order.   "a   (f . g) "a  f .  g  extensible for heterogeneous product extensible for heterogeneous product extensible1Map elements to a monoid and combine the results.  f .  g "a  (f . g) extensible! with the membership of elements. extensible-Perform a strict left fold over the elements. extensible$ with a constraint for each element. extensible Constrained  extensible Constrained  extensible$ with a constraint for each element. extensible$ with a constraint for each element. extensible Constrained  extensible Constrained  extensible<Traverse all elements and combine the result sequentially.  htraverse (fmap f . g) "a fmap (hmap f) . htraverse g htraverse pure "a pure htraverse (Comp . fmap g . f) "a Comp . fmap (htraverse g) . htraverse f  extensible analog for extensible products extensible The dual of  extensible The dual of  extensible with s. extensible*A product filled with the specified value. extensible3Construct a product using a function which takes a .  f ( g) "a  (f . g)  ( m) "a m  ( k) "a k  extensible version of . extensiblePure version of . extensiblePure version of . extensible*A product filled with the specified value. extensible*A product filled with the specified value. extensible version of . extensible version of . extensibleAccumulate sums on a product. extensible  haccum =   extensibleGroup sums by type. extensible$Evaluate every element in a product.7  pr7rp  000 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&',-.27=>?HMSUVX_v extensibleAlias for plain sums extensibleAlias for plain products extensibleAdd a plain value to a product. extensibleExtract a plain value. extensibleEmbed a plain value. extensible)Naive pattern matching for a plain value. extensible%An accessor for newtype constructors.51 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?HMSUVX| extensible)Turn a wrapper type into a clause for it. extensibleORetrieve the contents so that they matches and pass both to the given function. extensible$Applies a function to the result of . extensibleO(1) Perform pattern matching. extensibleFlipped 0 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVX-  extensible Similar to , but this focuses on keys. extensible xs (k ':> v) is equivalent to  Associate k v xs extensibleys contains xs extensibleUnicode alias for  extensible'Reify the inclusion of type level sets. extensibleO(n) Select some elements. extensibleO(1) Embed to a larger union. extensible'Reify the inclusion of type level sets. extensibleO(n) Select some elements. extensibleO(1) Embed to a larger union. (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?HMSUVX_ extensible Wrapped Maybe extensible Apply a function to its content. extensibleThe inverse of . extensibleA product filled with   extensible,Extend a product and fill missing fields by Null. extensible)Narrow the range of the sum, if possible. extensible for . (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.127=>?@AHMSUVX? extensible*A ghostly type which spells the field name extensible!Signifies a field name internally extensible4When you see this type as an argument, it expects a  FieldLensA. This type is used to resolve the name of the field internally. extensible"The trivial inextensible data type extensible FieldOptic s; is a type of optics that points a field/constructor named s.The yielding fields can be  Jhttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:LensLenses for s and  Khttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:PrismPrisms for s. % "foo" = Lookup xs "foo" a => Lens' ( xs) a & "foo" = Lookup xs "foo" a => Prism' ( xs) a s can be generated using mkField defined in the Data.Extensible.TH module. extensibleSimple variant extensible Simple record extensible The dual of  /VariantOf :: (v -> Type) -> [Assoc k v] -> Type extensible1The type of records which contain several fields. .RecordOf :: (v -> Type) -> [Assoc k v] -> Type extensibleA  h (k ':> v) is h v annotated with the field name k. $ :: (v -> Type) -> Assoc k v -> Type extensible Lift a function for the content. extensible Lift a function for the content. extensible An empty . extensible*Select a corresponding field of a variant. extensiblePattern matching on a  extensible#Annotate a value by the field name. foo :: O '["num" >: Int, "str" >: String] foo = #num @= 42 <: #str @= "foo" <: nil  extensibleLifted ()  foo :: IO (h '["num" >: Int, "str" >: String]) foo = hsequence $ #num <@=> readLn <: #str <@=> getLine <: nil  extensible+Annotate a value by the field name without 0. extensible'Kind-monomorphic, unwrapped version of  extensible Shows in field @= value" style instead of the derived one.1111 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?HMSUVX} extensible h xs mA is the monad of computations that may depend on the elements in xs.! extensible#Hitch an element associated to the  through a wrapper." extensible6Take a value from the tangles. The result is memoized.# extensibleRun a 8 action and return the result and the calculated values.$ extensibleRun a  action.% extensible-Run tangles and collect all the results as a . !"#$% !"#$%(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy%&',-.27=>?HMSUVX_, extensibleGenerate fields using b. , "foo Bar" defines: Rfoo :: FieldOptic "foo" foo = itemAssoc (Proxy :: Proxy "foo") _Bar :: FieldOptic Bar" _Bar = itemAssoc (Proxy :: Proxy Bar) - extensible- (mkName "foo") "bar" defines a field for "bar" as foo.,-,-(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.278=>?@AHMSUVX_l extensible3The class of types that can be converted to/from a .. extensible3The class of types that can be converted to/from a .2 extensibleConvert a value into a .3 extensible Convert a  to a value.4 extensible 5record :: IsRecord a => Iso' a (Record (RecFields a))./01234./01234(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVXļ: extensibleSpecialised version of b. Stands for "eXtensible LaBel"::(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.1247=>?HMSUVX_\ > extensibleSimple option descriptor? extensible with a defaultA extensibleIOption without an argument; the result is the total count of this option.B extensibleTrue when specifiedC extensibleWrapper-generic version of AD extensibleOption with an argumentE extensible8Takes the last argument when more than one is specified.F extensibleWrapper-generic version of DG extensible-Construct an option with an optional argumentH extensibleParse option arguments.I extensibleyAn all-in-one utility function. When there's an error, print it along with the usage info to stderr and terminate with .A extensible short option extensible long option extensible explanationB extensible short option extensible long option extensible explanationD extensible short option extensible long option extensible placeholder extensible explanationE extensible short option extensible long option extensible placeholder extensible explanationH extensiblea record of option descriptors extensible arguments extensible2(result, remaining non-options, errors, usageInfo)I extensibleNon-option usage extensibleoption desciptors extensible#the result and non-option arguments >?@ABCDEFGHI ?@>HIBEADCFG(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-./27=>?@AHMSUVX_L extensible%Composition for a class and a wrapperM extensibleForall upon a wrapperO extensible0Reify a collection of dictionaries, as you wish.U extensible parseJSON  is called for missing fields.LMNOOMLN(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVX< p extensibleBit-packed recordq extensibleBit-packed recordr extensibleFields are instances of s and fit in the representation.s extensible4Conversion between a value and a bit representation. Instances of s! must satisfy the following laws: HfromBits (x `shiftL` W .|. toBits a) "a a toBits a `shiftR` W == zeroBitswhere W is the t.w extensibleTotal tx extensible0Bit-vector product. It has similar interface as (:*) but fields are packed into r.{ extensible5Convert a normal extensible record into a bit record.| extensible5Convert a normal extensible record into a bit record.} extensible for x~ extensibleUpdate a field of a x.pqrstuvwxyz{|}~xyzstuvwr}~{|qp(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?HMSUVX   +,-./0124356YZ[\]^_`abcdefghijklpr !"#$%,-./01234:LMNO !"#$%&'()*+,+-+.+/+0+1+2+3+4+5+6+7+8+9::;<=>?@ABCCDDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  !"#$%&'()*+,-./ 0 0 1 2 3 4 5 6 7 8 9 : ; <=>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+%extensible-0.8-BFx4iY1XFYP1mvaDMl3GrpData.ExtensibleData.Extensible.FieldData.Extensible.ClassData.Extensible.Internal.RigData.Extensible.WrapperData.Extensible.SumData.Extensible.StructData.Extensible.ProductData.Extensible.PlainData.Extensible.MatchData.Extensible.InclusionData.Extensible.NullableData.Extensible.TangleData.Extensible.THData.Extensible.RecordData.Extensible.LabelData.Extensible.GetOptData.Extensible.DictionaryData.Extensible.Bitsbase GHC.TypeLits KnownSymbol Data.ProxyProxy#membership-0-DcJLC6R1nYz1T3a3XqIESdType.Membership proxyTargetOf stringKeyOf proxyKeyOf hgenerateListhcount henumerateGeneratehgenerateListFor henumerateForForallForallFKeyOfKeyIsTargetOfTargetIs KeyTargetAreType.Membership.Internal leadershipcompareMembership mkMembership getMemberId Membership membershipMember∈FindType:>Assoc>: associationLookupExchangeOptic'OpticviewviewsoverwithIsoreview$fProfunctorExchangeProdCompgetCompWrapperRepr_Wrapperwrapunwrap _WrapperAscomp$fWrapperkProxy$fWrapperkConst$fWrapperTYPE[]$fWrapperTYPEEither$fWrapperTYPEMaybe$fWrapperTYPEIdentity$fWrapperkComp $fLiftComp$fArbitraryProd $fMonoidProd$fSemigroupProd$fWrapperkProd$fHashableProd $fNFDataProd $fShowComp$fEqComp $fOrdComp $fNFDataComp $fGenericComp$fSemigroupComp $fMonoidComp$fArbitraryComp$fHashableComp $fPrettyComp $fShowProd$fEqProd $fOrdProd $fGenericProd $fFunctorProd$fFoldableProd$fTraversableProd$fTraversableComp$fFoldableComp $fFunctorCompLastHead ExtensibleExtensibleConstrpieceAtpiece pieceAssocitemAtitem itemAssocitemKey:/EmbedAthoistembedstrikestrikeAt<:|exhaust embedAssoc$fExtensiblekfp:/ $fBounded:/$fEnum:/++:*:&WrappedPointerStructsetget atomicModify atomicModify' atomicModify_atomicModify'_-$>new newRepeatnewFor newFromHList unsafeFreezethawhlengthhappendhfoldrWithIndextoHListnewFromhlookuphfrozenhmodify$fHasUpdateWrappedPointeraa$fHasSetterWrappedPointera$fHasGetterWrappedPointera$fExtensiblekfp:&<:=<:@:>@== $fPrettyField $fShowField$fWrapperAssocField $fLiftField $fUnboxField$fVectorVectorField$fMVectorMVectorField$fExtensiblekfpInextensible$fProfunctorLabelPhantom$fGenericField$fToFieldField$fFromFieldField $fToJSONField$fFromJSONField$fHashableField$fArbitraryField $fNFDataField$fBoundedField $fEnumField $fMonoidField$fStorableField$fSemigroupField$fRealFracField$fRealFloatField $fRealField$fFloatingField$fFractionalField$fIntegralField $fNumField $fOrdField $fEqFieldTangleT unTangleTlassohitchAt runTangleT evalTangleT runTangles$fMonoidTangleT$fSemigroupTangleT$fMonadTransTangleT$fFunctorTangleT$fApplicativeTangleT$fMonadTangleTmkField mkFieldAsIsRecord RecFieldsrecordFromList recordToListtoRecord fromRecordrecord$fGIsRecordkM1r$fGIsRecordkM1r0$fGIsRecordkM1r1$fGIsRecordk:*:r $fIsRecord()xlb$fHasFieldkk:&a $fIsLabelk->$fIsLabelkProxy OptDescr' OptionDescroptNoArgoptFlag optionNoArg optReqArg optLastArg optionReqArg optionOptArg getOptRecord withGetOpt$fWrapperkOptionDescr$fFunctorOptionDescr Instance1 WrapForallAndlibrary $fAndkfgx$fInstance1kkchx $fToJSON:& $fFromJSON:& $fToJSON:&0 $fFromJSON:&0$fToNamedRecord:&$fFromNamedRecord:& $fPretty:/ $fArbitrary:/$fLift:/ $fHashable:/ $fNFData:/$fOrd:/$fEq:/$fShow:/ $fToRecord:&$fFromRecord:& $fNFData:& $fArbitrary:& $fUnbox:&$fMVectorMVector:&$fVectorVector:&$fLift:& $fBounded:& $fHashable:& $fMonoid:& $fSemigroup:&$fOrd:&$fEq:& $fPretty:&$fShow:& BitRecord BitRecordOf BitFieldsFromBitsBitWidthfromBitstoBits TotalBitsBitProd unBitProd toBitProd fromBitProdblookupbupdate$fFromBitsrField$fFromBitsrConst$fFromBitsr(,)$fFromBitsrIdentity$fFromBitsWord64Int32$fFromBitsWord64Int16$fFromBitsWord64Int8$fFromBitsWord64Word32$fFromBitsWord64Word16$fFromBitsWord64Word8$fFromBitsWord64Bool$fFromBitsWord64Word64$fFromBitsrProxy $fFromBitsr()$fFromBitsrBitProd$fExtensiblekfpBitProd $fShowBitProd $fEqBitProd $fOrdBitProd $fEnumBitProd$fBoundedBitProd $fIxBitProd$fGenericBitProd$fHashableBitProd$fStorableBitProdGHC.BasefmapGHC.STSTHListidGHC.ListzipWithzipWith3Data.Traversablesequence Applicative GHC.MaybeNothing Data.Maybe fromMaybe GIsRecordSystem.Console.GetOptOptDescr System.Exit exitFailure$aeson-1.4.6.0-G0a9DwEzVie2OqfFXTBNpWData.Aeson.Types.InternalNull