5b(      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred!"&'(123468=HJKM3The full definition for a (locally-small) category.(Side-conditions moved to # to work around GHC bug #9200. You should produce instances of ( and consume instances of .All of our categories are "locally small", and we curry the Hom-functor as a functor to the category of copresheaves rather than present it as a bifunctor directly. The benefit of this encoding is that a bifunctor is just a functor to a functor category! C :: C^op -> [ C, Set ] 0The  -http://ncatlab.org/nlab/show/Yoneda+embeddingYoneda embedding.Yoneda_C :: C -> [ C^op, Set ]8ME-Enriched profunctors f : C -/-> D are represented by a functor of the form:C^op -> [ D, E ]dThe variance here matches Haskell's order, which means that the contravariant argument comes first!G !"#$%&'()*+,-./0123456789:;<;  !"#$%&'()*+,-./0123456789:;<;()*+,-.#$%&"3475<68 9 012/ !':;8 !"#$%&'()*+,-./0123456789:;<; Safe-Inferred &'(3=HKM=>?@ABCDE =>?@ABCDE ?>@A=BCDE=>?@ABCDE Safe-Inferred&'=FGHIJFGFGJIHFGHIJ Safe-Inferred!"&'(246=HKMKLMNOPQRSTUVWXKLMNOPQRSTUVWXWXTVUQSRNOPLMKKLMNOPQSRTUVWX Safe-Inferred!"&'(123468=HJKM YZ[\YZ[\\[YZYZ[\ Safe-Inferred!"&'(123468=HJKMTW/]^_`abcdefghijklmn]^_`abcdefghijklmnlmkhijgnefcdb`a^_](]^_`abcdefghijklmnNone!"&'(123468=HJKMTW&opqrstuvwxyz{|}~opqrstuvwxyz{|}~%xywuvstrpqz{|o}~"opqrstuvwxyz{|}~ Safe-Inferred!"&'(123468=HJKMTW  Safe-Inferred'68=JK    !"#$%&'()*+,-./01123456789:;<=>?@A@BCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdeffgghijklmnopqrstuvwxyz{|}~   MN  hask-0 Hask.CategoryHask.Category.PolynomialHask.IsoHask.Functor.Faithful Hask.Prof Hask.TensorHask.Tensor.ComposeHask.Tensor.DayHask.AdjunctionbaseGHC.Base$ Data.EitherEitherghc-primGHC.Prim ConstraintLeftRightconstraints-0.4Data.Constraint\\DictSub:-clsClassins:=> void-0.6.1 Data.VoidabsurdVoidFixInoutVacuousCategory Category''Opd BifunctorCod2Dom2NatCodNatDom Presheaves CopresheavesNatIdNatrunNat FunctorOfFunctorDomCodfmapEndo Category'Obidobserve.unopopOpYonedagetOpobobOffmap1bimap contramapdimapsubnat!firstBegetGetIso_Getget_Begetbeget#yoneda FullyFaithfulunfmap$fFullyFaithfulConstraint(->):-$fFullyFaithful*(->)(->)$fFullyFaithfulConstraint*DictEmptyUnit CoproductObside coproductId CoproductInrInl ProductObSndFstProduct Procompose ProfunctorOfProfComonoid Comonoid'epsilon CosemigroupdeltaMonoidMonoid'eta SemigroupmuTensorTensor'lambdarhoI Semitensor associatesemitensorClosedMonad Identified_IdIdIDComposed_ComposeComposeCOMPOSEassociateCompose lambdaCompose rhoComposereturnbind $fMonadkm$fTensor'(->)Any$fComonoid'(->)AnyAny$fCosemigroup(->)AnyAny$fMonoid'(->)AnyAny$fSemigroup(->)AnyAny$fFunctorkkAny $f:=>aAny $fClassaAny$fIdentified(->)Nat$fIdentifiedConstraint:-$fIdentified*(->)$fSemitensor(->)Any$fFunctorkkAny0$fFunctor(->)(->)Any$fFunctor(->)(->)Any0 $f:=>fAny $fClassfAny$fComposed(->)Nat$fComposedConstraint:-$fComposed*(->)Day CopresheafOf$fSemitensor(->)Day$fFunctor(->)(->)Day$fFunctor(->)(->)Day0$fFunctork*Day$fCopresheafOfkcfCurriedcurried-|adjswap$fFunctor**Fix$fFunctor(->)(->)Fix$fFunctor**Either$fFunctor*(->)Either$fFunctor**(,)$fFunctor*(->)(,)$fCategory'(->)Nat$fFunctor(->)*Nat$fFunctor(->)(->)Nat$fCategory'kYoneda$fFunctork*Yoneda$fFunctork(->)Yoneda$fCategory'*(->)$fFunctor**(->)$fFunctor*(->)(->)$fCategory'Constraint:-$fFunctorConstraint*:-$fFunctorConstraint(->):-$fFunctorkConstraintVacuous$fFunctorConstraint*Dict $fVacuouskca $fCategorykp$fCategory''kp$fBifunctorijkp $fFunctor(->)ConstraintFunctorOf$fFunctorOfkkpqfrunBegetrunGet$fFunctork*Beget$fFunctork(->)Beget$fFunctork(->)Beget0$fFunctork*Get$fFunctork(->)Get$fFunctork(->)Get0$fFullyFaithfulk*Unit$fFullyFaithfulk(->)Unit$fCategory'kUnit$fFunctork*Unit$fFunctork(->)Unit$fCategory'EitherCoproduct$fFunctorEither*Coproduct$fFunctorEither(->)Coproduct$fCoproductObijpqRight$fCoproductObijpqLeft$fCategory'(,)Product$fFunctor(,)*Product$fFunctor(,)(->)Product$fProductObijpqaTFCo:R:Sndk1k(,)TFCo:R:Fstk1k(,)$fFunctork*Procompose$fFunctork(->)Procompose$fFunctor(->)(->)Procompose$fFunctor(->)(->)Procompose0$fProfunctorOfkkpqf&$fComonoid'*EitherVoid$fCosemigroup*EitherVoid$fMonoid'*EitherVoid$fSemigroup*EitherVoid$fSemigroup*(,)Void$fTensor'*EitherTFCo:R:I*Either$fSemitensor*Either$fComonoid'*(,)a$fCosemigroup*(,)a$fMonoid'*(,)()$fSemigroup*(,)() $fTensor'*(,) TFCo:R:I*(,)$fSemitensor*(,)$fComonoid'Constraint&a$fCosemigroupConstraint&a$fMonoid'Constraint&()$fSemigroupConstraint&a$fTensor'Constraint&TFCo:R:IConstraint&$fSemitensorConstraint&$fFunctorConstraintConstraint&$fFunctorConstraint(->)&$f&pq $fComonoidkpw $fMonoidkpm $fTensorkpTFCo:R:I(->)Any$fCurried*(,)(->) $f-|**(,)(->)