Îõ³h* w Û0.2.1 Safe-Inferred9W   Safe-Inferred(9å É matchable-thDerive multiple instances of , ,, or their superclasses, each written in StandaloneDeriving syntax.õPassing declarations other than standalone deriving instances is an error. Also, passing any instances other than , ö or their superclasses is an error. Explicitly, it accepts standalone deriving declarations of the following types: Passing an  or ” instance declarations does not cause a compilation error and generates the same standalone deriving declaration passed in, but also causes a warning6 telling you that you can use stock deriving for them.Example ´ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE StandaloneDeriving #-} [-# LANGUAGE TemplateHaskell #-} data Foo a b = Foo a b (Either a b) deriving (Show, Eq, Functor) To use  for Foo, write as below: á deriveInstances [d| deriving instance Eq a => Eq1 (Foo a) deriving instance Eq a => Matchable (Foo a) deriving instance Eq2 Foo deriving instance Bifunctor Foo deriving instance Bimatchable Foo |]  matchable-th+Generates an expression which behaves like  for the given data type. matchable-th+Generates an expression which behaves like  for the given data type. matchable-thBuild an instance of  for a data type. Note that  generates the  instance only. Because  requires  and  (and ð transitively) as its superclasses, to actually use the generated instance, it's necessary to provide them too.Use  to generate both  Matchable and Eq1 instances at once.Example "data Exp a = Plus a a | Times a a  ''Exp %will generate the following instance. ×instance Matchable Exp where zipMatchWith f (Plus l1 l2) (Plus r1 r2) = pure Plus  * f l1 r1  *Ã f l2 r2 zipMatchWith f (Times l1 l2) (Times r1 r2) = pure Times  * f l1 r1  *( f l2 r2 zipMatchWith _ _ _ = Nothing  matchable-th+Generates an expression which behaves like  for the given data type. matchable-thBuild an instance of  for a data type. Note that  generates the  instance only. Because  requires  and  (and , , ð transitively) as its superclasses, to actually use the generated instance, it's necessary to provide them too.Use , to generate all of these instances at once.Example data Sum a b = InL a | InR b  ''Sum  will create Ñinstance Bimatchable Sum where bizipMatchWith f _ (InL l1) (InL r1) = pure InL  $; f l1 r1 bizipMatchWith _ g (InR l1) (InR r1) = pure InR  $ g l1 r1  matchable-th+Generates an expression which behaves like  for the given data type.       !"#$%&'()*+)matchable-th-0.2.1-CqB5GmrbNcY1VlHltHha3oData.Matchable.TH matchable-thData.Matchable.TH.MatcherderiveInstances makeLiftEq makeLiftEq2deriveMatchablemakeZipMatchWithderiveBimatchablemakeBizipMatchWithMatcherleftPatrightPatbodyExpadditionalInfoaddInfo matcherToFun matcherExpr funMatcher liftMatcher liftMatcher2combineMatchers$matchable-0.2-2guFxNGXHgjCskIHzE0xslData.Matchable MatchableData.Bimatchable BimatchablebaseData.Functor.ClassesEq1Eq2Data.Bifunctor Bifunctorghc-prim GHC.ClassesEqGHC.BaseFunctorliftEqliftEq2 zipMatchWithbizipMatchWith