úÎ! ÿ¹"      !Safe1345/ spdxTest for equivalence.Fequivalent (LMeet (LVar 'a') (LVar 'b')) (LMeet (LVar 'b') (LVar 'a'))True3equivalent (LVar 'a') (LMeet (LVar 'a') (LVar 'a'))TrueFequivalent (LMeet (LVar 'a') (LVar 'b')) (LMeet (LVar 'b') (LVar 'b'))False spdxTest for preorder.  a "d b !Ô a "( b "a b !Ô a "a a "' b/preorder (LVar 'a' `LMeet` LVar 'b') (LVar 'a')True/preorder (LVar 'a') (LVar 'a' `LMeet` LVar 'b')FalsespdxReturn "8 if for some variable assigment expression evaluates to ".#spdxLike if$, but where the test can be monadic.$spdx The lazy %C operator lifted to a monad. If the first argument evaluates to ". the second argument will not be evaluated. uJust True ||^ undefined == Just True Just False ||^ Just True == Just True Just False ||^ Just False == Just False&spdx The lazy 'C operator lifted to a monad. If the first argument evaluates to (. the second argument will not be evaluated. vJust False &&^ undefined == Just False Just True &&^ Just True == Just True Just True &&^ Just False == Just False    None}spdx %'æ satisfies a b 'ç "a a "e b "a a "' b = bHunsafeParseExpr "GPL-3.0-only" `satisfies` unsafeParseExpr "ISC AND MIT"FalseIunsafeParseExpr "Zlib" `satisfies` unsafeParseExpr "ISC AND MIT AND Zlib"TrueSunsafeParseExpr "(MIT OR GPL-2.0-only)" `satisfies` unsafeParseExpr "(ISC AND MIT)"True]unsafeParseExpr "(MIT AND GPL-2.0-only)" `satisfies` unsafeParseExpr "(MIT AND GPL-2.0-only)"True]unsafeParseExpr "(MIT AND GPL-2.0-only)" `satisfies` unsafeParseExpr "(ISC AND GPL-2.0-only)"FalsespdxCheck wheather two  are equivalent.^unsafeParseExpr "(MIT AND GPL-2.0-only)" `equivalent` unsafeParseExpr "(GPL-2.0-only AND MIT)"TrueHunsafeParseExpr "MIT" `equivalent` unsafeParseExpr "MIT OR BSD-3-Clause"Falsespdxpackage licensespdxlicense policy)      !"#$%&'()*+,-)./0).1)*23spdx-1-K6j8AjdRc8m4cltTG0j1nCDistribution.SPDX.Extra Distribution.SPDX.Extra.Internal$Cabal-2.4.0.1-6VMdF6KlH8vJ0qvAHqwzorDistribution.SPDX.LicenseLicense#Distribution.SPDX.LicenseExpressionLicenseExpressionSimpleLicenseExpression$Distribution.SPDX.LicenseExceptionIdLicenseExceptionIdDistribution.SPDX.LicenseId LicenseId LatticeSyntaxLVarLBoundLJoinLMeetfreeVarsdual equivalentpreorder satisfiable$fMonadLatticeSyntax$fApplicativeLatticeSyntax$fMonadPlusEval $fMonadEval$fAlternativeEval$fApplicativeEval $fFunctorEval$fEqLatticeSyntax$fOrdLatticeSyntax$fReadLatticeSyntax$fShowLatticeSyntax$fFunctorLatticeSyntax$fFoldableLatticeSyntax$fTraversableLatticeSyntax$fDataLatticeSyntax satisfies$fEqLic$fOrdLicghc-prim GHC.TypesTrueifM||^ GHC.Classes||&&^&&False