# *      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&' ( ) * + , - . / 0 1 2 3 4 56789:;<=>?@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 composition extensible&The extensible data types should take  k -> TypeT as a parameter. This class allows us to take a shortcut for direct representation. extensible h v& is the user-facing representation of h v. extensibleThis is an isomorphism between h v and  h v. !_Wrapper :: Iso' (h v) (Repr h v) extensibleRestricted version of .. It is useful for eliminating ambiguousness. extensibleWrap a result of    (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVXk/W Z extensible Last element[ 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.a extensible-Access a specified element through a wrapper.b extensible$Access an element through a wrapper.c extensible>Access an element specified by the key type through a wrapper.d extensible>Access an element specified by the key type through a wrapper.">?@ABCDEGFHNOPQRSWTUVXYZ[\]^_`abcd"\]^_`abcdT@U>?SWXVEGFHABCDOPNQRY[Z(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.127=>?@AHMSUVXg7f extensibleThe extensible sum type "(:/) :: [k] -> (k -> Type) -> Typeh extensibleChange the wrapper.i extensibleO(1) lift a value.j extensible"Try to extract something you want.k extensible"Try to extract something you want.l extensibleO(1) Naive pattern matchm extensibleThere is no empty union.n extensible&Embed a value, but focuses on its key. efghijklmn fgehijklmnl1(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None%&',-.27=>?@AFHMSUVXMhr extensibleConcatenate type level listst extensible The type of extensible products. (:&) :: [k] -> (k -> *) -> *u extensibleA pointer to an element in a w.w extensibleMutable type-indexed struct.x extensibleWrite a value in a w.y extensibleRead a value from a w.z extensible"Atomically modify an element in a w.{ extensibleStrict version of z.| extensible*Apply a function to an element atomically.} extensibleStrict version of |.~ extensibleGet a u from a name. extensible Create a new w using the supplied initializer. extensible Create a w full of the specified value. extensible Create a new w/ using the supplied initializer with a context. extensible Create a new w from an HList. extensibleTurn w) into an immutable product. The original w may not be used. extensible Create a new w 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 w! using the contents of a product. extensibleGet an element in a product. extensibleCreate a product from an  action which returns a w. extensibleTurn a product into a w temporarily.rstuvwxyz{|}~wxyuv~z{|}tsrr55(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 Ts. extensible*A product filled with the specified value. extensible3Construct a product using a function which takes a T.  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.8ABCEGFHrst8tsrEGFHABC000 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&',-.27=>?HMSUVX_wT 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 Y 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 -> *) -> [Assoc k v] -> * extensible1The type of records which contain several fields. (RecordOf :: (v -> *) -> [Assoc k v] -> * extensibleA  h (k ':> v) is h v annotated with the field name k.  :: (v -> *) -> Assoc k v -> * 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 . extensible'Kind-monomorphic, unwrapped version of   extensible Shows in field @= value" style instead of the derived one.$;<=IJKLM$J;=M<ILK1111 (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_5 extensibleGenerate fields using c. 5 "foo Bar" defines: Rfoo :: FieldOptic "foo" foo = itemAssoc (Proxy :: Proxy "foo") _Bar :: FieldOptic Bar" _Bar = itemAssoc (Proxy :: Proxy Bar) 6 extensible6 (mkName "foo") "bar" defines a field for "bar" as foo.5656(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.278=>?@AHMSUVX_0 extensible3The class of types that can be converted to/from a .7 extensible3The class of types that can be converted to/from a .; extensibleConvert a value into a .< extensible Convert a  to a value.= extensible 5record :: IsRecord a => Iso' a (Record (RecFields a))789:;<=789:;<=(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVXC extensibleSpecialised version of c.D extensibleSpecialised version of c. Stands for "eXtensible LaBel"CDCD(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.1247=>?HMSUVX_ H extensibleSimple option descriptorI extensible with a defaultK extensibleIOption without an argument; the result is the total count of this option.L extensibleTrue when specifiedM extensibleWrapper-generic version of KN extensibleOption with an argumentO extensible8Takes the last argument when more than one is specified.P extensibleWrapper-generic version of NQ extensible-Construct an option with an optional argumentR extensibleParse option arguments.S extensibleyAn all-in-one utility function. When there's an error, print it along with the usage info to stderr and terminate with .K extensible short option extensible long option extensible explanationL extensible short option extensible long option extensible explanationN extensible short option extensible long option extensible placeholder extensible explanationO extensible short option extensible long option extensible placeholder extensible explanationR extensiblea record of option descriptors extensible arguments extensible2(result, remaining non-options, errors, usageInfo)S extensibleNon-option usage extensibleoption desciptors extensible#the result and non-option arguments HIJKLMNOPQRS IJHRSLOKNMPQ(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-./27=>?@AHMSUVX_V extensible%Composition for a class and a wrapperW extensibleForall upon a wrapperY extensible0Reify a collection of dictionaries, as you wish._ extensible parseJSON  is called for missing fields.VWXYYWVX(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?@AHMSUVX z extensibleBit-packed record{ extensibleBit-packed record| extensibleFields are instances of } and fit in the representation.} extensible4Conversion between a value and a bit representation. Instances of }! must satisfy the following laws: HfromBits (x `shiftL` W .|. toBits a) "a a toBits a `shiftR` W == zeroBitswhere W is the ~. extensibleTotal ~ 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  extensibleUpdate a field of a .z{|}~}~|{z(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&',-.27=>?HMSUVX ;<=>?@ABCDEGFHIJKLMNOPQRSWTUVXYZ[\]^]_`abcdefghijklmnrst'()*+,-.56789:8;<=CDVWXY !""##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPNOQNORNSTNSUNSVNOWNOXNOYNOZNO[NO\NO]NO^NO_NO`NOaNObNOcNSdNSeNSfNSgNShNSiNSjNSkNSlNSmNSnopqrstuvwxyz{|}~                   !"#$%&'()*+,-./012345678 9 9 : ; < = > ? @ A B C D EFGHIJKLMNOPQRSTUVWXYZZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NSextensible-0.7.1-inplaceData.ExtensibleData.Extensible.Internal.RigData.Extensible.WrapperData.Extensible.FieldData.Extensible.ClassData.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.ProxyProxyExchangeOptic'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 $fFunctorCompmmbrshp-0-238ad2e3Type.Membership proxyKeyOf proxyTargetOf stringKeyOfType.Membership.InternalcompareMembership leadership mkMembershipForall henumerateForhgenerateListForForallFGeneratehcount henumerate hgenerateListKeyIsKeyOf KeyTargetAreTargetIsTargetOf>:Assoc:>Lookup associationMember Membership getMemberIdFindType membership∈ AssociateLastHead ExtensibleExtensibleConstrpieceAtpiece pieceAssocitemAtitem itemAssocitemKey:|:/EmbedAthoistembedstrikestrikeAt<:|exhaust embedAssoc$fExtensiblekfp:/ $fBounded:/$fEnum:/++:*:&WrappedPointerStructsetget atomicModify atomicModify' atomicModify_atomicModify'_-$>new newRepeatnewFor newFromHList unsafeFreezethawhlengthhappendhfoldrWithIndextoHListnewFromhlookuphfrozenhmodify$fHasUpdateWrappedPointeraa$fHasSetterWrappedPointera$fHasGetterWrappedPointera$fExtensiblekfp:&<:=<:@:>@== proxyAssocKeyproxyAssocValuestringAssocKey $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 exitFailuresn-1.4.6.0-967ed926Data.Aeson.Types.InternalNull