úΰº&      !"#$% Safe-Inferred/Check wraps both uncovered and redundant cases.-Data-type for redundant cases representation.rA case alternative consists of a collection of binders which match a collection of values, and an optional guard. Guards and alternatives¸Guard are abstract, and it is up to the language implementor to interpret guards abstractly. Guards can catch all cases, or represent some opaque expression which cannot be analysed.  Environment†The language implementor should provide an environment to let the checker lookup for constructors' names (just for one type for now).Binders|A collection of binders, as used to match products, in product binders or collections of binders in top-level declarations.A type synonym for names. WildcardCApplies a function over two lists of tuples that may lack elements.cReturns the uncovered set after one binder is applied to the set of values represented by another.$Generates a list of initial binders.  * returns the whole set of uncovered cases.!! applies   to an alternative."" is ! with guard handling.##Applicative instance for Redundant.$.Functor instance for Redundant (TODO: proofs).%  !"#$#  !"%  $# !"    !"#$ Safe-Inferred%Given a list of alternatives, %- generates the proper set of uncovered cases.% %% %&       !"#$%&coverage-0.1.0.1Coverage.InternalCoverageCheck getUncovered getRedundant Redundant NotRedundantDontKnow AlternativeGuardOpaqueCatchAll EnvironmentenvInfoBinderRecordProductTaggedLitVarBindersNamemakeEnv defaultEnv makeCheckapplyUncoveredapplyRedundantwildcard genericMerge missingSingle initializemissingMultiple missingCasesmissingAlternative$fApplicativeRedundant$fFunctorRedundantcheck