exu      !"#$%&'()*+,-./012345678 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t Graph indexed functors(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>7unstable | experimental | provisional | stable | frozen"portable | non-portable (<reason>)Safe+,6DRQThis should only be implemented when the replace operation has a more efficient  than  . const.Graph indexed functor.The fmap operation (u) on the graph index.Default instance:  Fmap f i = iThe Replace operation (v) on the graph index.Default instance: Replace f i =  f i&Map a function over over the functor (u).$Replace all values with a constant (v).8Default implementation requires the default instance of .(Base type class for graph indexed types.(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe*+DR6Base class that all Graph-indexed types may implement. The unit of our kind p. "An invariant on combining indexes. %An elementary composition of indexes.wN.B.: This may be nonsensical if and only if type classes override the default definitions of their own type families.This exists for convenience.    "Graph indexed applicative functors(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe*+6DOPRTf Graph indexed pointed functor. $The pure element of the graph index.OA constraint on generating a pure index from a free variable. Default is empty.(Return a pointed functor indexed by the   type instance (w).,:t gpure @_ @(GWrapped Maybe) "Hello, World":: GWrapped Maybe () [Char]+Return a pointed functor indexed by a type t in the domain of p.(Accessible with type applications, e.g.:#:t gpure' @_ @(GWrapped Maybe) @Int=gpure' @_ @(GWrapped Maybe) @Int :: a -> GWrapped Maybe Int a8Return a pointed functor with a given type in the index.(Accessible with type applications, e.g.::t gpureAt @Int;gpureAt @Int :: (GPointed f, PureCxt f Int) => a -> f Int a     "Graph indexed applicative functors(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe+,69:;<=DRTf"Graph indexed applicative functor.The apply operation (x) on the graph index.Default instance: Apply f i j =   f i jAn invariant on the indexes of .Default instance: ApplyInv m i j =   m i jThe liftA2 operation on the graph index.Default instance:  Lift f i j =  f ( f (  f) i) jAn invariant on the indexes of .Default instance: ButInv m i j =  m i jWhether to use , or  and  in the definition of .If an efficient b exists, we should probably use that to reduce allocations. But liftA2 might also be appropriate.The then operation (y) on the graph index.Default instance depends on  f:z:  f i j =  f ( f i) j{:  f i j =  f i jAn invariant on the indexes of .Default instance: ThenInv m i j =  m i jThe but operation (|) on the graph index.Default instance:  But f i j =  f i jAn invariant on the indexes of .Default instance: ButInv m i j =  m i jSequential application (x)."Lift a binary function to actions..Default implementation is defined in terms of  and .>Sequence actions, discarding the value of the first argument (y).8Default implementation requires the default instance of .<Sequence actions, discarding values of the second argument (|).8Default implementation requires the default instance of . !"#$%& !"#$$# !"&% !"#$%&Graph indexed monads(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe +6:<=DR'Graph indexed monad.(The apply operation (}) on the graph index.Default instance:  Bind m i j =   m i j )An invariant on the indexes of (.Default instance: BindInv m i j =   m i j*The join operation ( ) on the graph index.Default instance:  Join m i j = ( m i j +An invariant on the indexes of *.Default instance: JoinInv m i j = ) m i j,ISequentially compose two actions, with the second dependent on the first.-&Remove one level of nested structure. 8Default implementation requires the default instance of *.'()*+,-'()*+,-'()*+,--'()*+,--!Graph indexed monads with failure(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe +6:<=DR.)Graph indexed monad with a monoidal zero.See the typeclassopedia  (https://wiki.haskell.org/Typeclassopedia./The zero element (mzero, ~) of the graph index.0Identity element../0./0./0./0"Graph indexed monads with failure.(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe +6:<=DR1!Graph indexed monad with failure.2&The unit failure element of the index.Default instance:  Fail m =   m3Fail with a message.8Default implementation requires the default instance of 2.12312312331233,Graph indexed monads with choice and failure(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe *+6:<=DR4LGraph indexed monad with a monoidal operation satisfying the left catch law.See the typeclassopedia  (https://wiki.haskell.org/Typeclassopedia.5The or operation (<|>) on the graph index.Default instance:  Or m i j =   m i j6An invariant on the indexes of 5.Default instance: OrInv m i j =   m i j7!An associative binary operation (<|>).4567456745674567 ,Graph indexed monads with choice and failure(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe *+6:<=DR8SGraph indexed monad with a monoidal operation satisfying the left distribution law.See the typeclassopedia  (https://wiki.haskell.org/Typeclassopedia.9The or operation (mplus) on the graph index.Default instance:  Plus m i j =   m i j:An invariant on the indexes of 9.Default instance: PlusInv m i j =   m i j;!An associative binary operation (mplus).89:;89:;89:;89:;Graph indexed types(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>7unstable | experimental | provisional | stable | frozen"portable | non-portable (<reason>)Safe:  !"#$'()*+,-./0123456789:; 6Wrapped type constructors (typically Monad), graphted.(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableSafe %&+DQR>$Wrap a non-indexed type constructor:ALift an object to >.<=>?@ABCDEFGHIJ<=>?@A>?@<=AJIHGFEDCB <=>?@ABCDEFGHIJ 6Wrapped type constructors (typically Monad), graphted.(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com>unstableportableNone%&*+,-DQRTM.Wrap a two-parameter-indexed type constructor:PLift an object to M.KLMNOPQRSTUVWXKLMNOPMNOLKXPWVUTSRQ KLMNOPQRSTUVWX BPrelude with operators overridden by graph-indexed implementations(c) Aaron FrielBSD-3%Aaron Friel <mayreply@aaronfriel.com> experimentalportableSafe %&)+.:DcYZ[\]^_`abcdefghijklmnopqrst ~{z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijYZ[\]^_`abcdefghijklmnopqrstYZ[\]^_`abgdcefijklhmnopqrstYZ[\]^_`abcdefghijklmnopqrstZ4]4^4_4a1b1g1i4k !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI J K L M N N O O P Q R S T U V W X Y Z [ \ ] ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v  w x y z { | } ~  hiklmnp          !"#$%&'(')'*+,-./01234567879:;<=>?@ABCD:E:F'GHIHJHKHLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'graphted-0.3.1.0-1g5errsuy1L5kkDMoDQmpbControl.Graphted.ClassData.Functor.GraphData.Pointed.GraphControl.Applicative.GraphControl.Monad.GraphControl.MonadZero.GraphControl.MonadFail.GraphControl.MonadOr.GraphControl.MonadPlus.Graph Data.GWrappedData.GWrappedIxPrelude.Graphted Control.MonadjoinControl.Graphtedghc-prim GHC.Types ConstraintGFunctorReplaceGFunctorFmapReplaceEfficientReplacegmapgreplaceGraphtedUnitInvCombineGPointedPurePureCxtgpuregpure'gpureAt GApplicativeApplyApplyInvLiftA2 LiftA2InvThenUseReplaceThenThenInvButButInvgapgliftA2gthengbutGApplicativeThengdefaultThenProxy gdefaultThenDefaultThenCxt DefaultThen$fGApplicativeThenpFalsef$fGApplicativeThenpTruefGMonadBindBindInvJoinJoinInvgbindgjoin GMonadZeroZerogzero GMonadFailFailgfailGMonadOrOrOrInvgorelse GMonadPlusPlusPlusInvgplus SingletonGWrappedunGliftG$fGMonadOrTYPEGWrapped$fGMonadPlusTYPEGWrapped$fGMonadZeroTYPEGWrapped$fGMonadFailTYPEGWrapped$fGMonadTYPEGWrapped$fGApplicativeTYPEGWrapped$fGFunctorTYPEGWrapped$fGPointedTYPEGWrapped$fGraphtedTYPEGWrappedSndIxFstIx WrappedIxunIxliftIx$fGMonadPlus(,)WrappedIx$fGMonadZero(,)WrappedIx$fGMonadFail(,)WrappedIx$fGMonad(,)WrappedIx$fGApplicative(,)WrappedIx$fGFunctor(,)WrappedIx$fGPointed(,)WrappedIx$fGraphted(,)WrappedIxfmap<$<$>pure<*>*><*return>>==<<zerofail<+><|>>><**>liftAliftA2liftA3liftMliftM2liftM3liftM4liftM5apmapM_ sequence_baseGHC.BaseTrueFalsemempty++GHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$GHC.Real fromIntegral realToFracGHC.EnumBoundedminBoundmaxBoundEnumfromEnumtoEnumenumFrom enumFromThen enumFromToenumFromThenTosuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonadFunctorGHC.NumNum fromInteger-negate*+abssignumOrd>=minmax><<=compareGHC.ReadRead readsPrecreadListReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowshowList Applicative Data.FoldableFoldablefoldMapfoldrnulllengthfoldlfoldl1sumproductfoldr1maximumminimumelemData.Traversable TraversabletraversemapM sequenceAsequenceMonoidmappendmconcatBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRightreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar Text.ReadreadreadsGHC.IO.ExceptionioErrornotElemallanyorand concatMapconcatGHC.IOFilePath userErrorIOErroreither Data.OldListunwordswordsunlineslineslex readParenText.ParserCombinators.ReadPReadSlcmgcd^^^oddeven showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemaybeuncurrycurrysubtractasTypeOfuntil$!flip.constidStringGHC.Err undefinederrorWithoutStackTraceerror&&||not