Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Distribution.SPDX.Extra
Description
Synopsis
- data License
- data LicenseExpression
- data SimpleLicenseExpression
- data LicenseId
- data LicenseExceptionId
- satisfies :: License -> License -> Bool
- equivalent :: License -> License -> Bool
Types
We don't export the constructors, as they change with Cabal version.
Instances
Parsec License | |
Defined in Distribution.SPDX.License | |
Pretty License | |
Defined in Distribution.SPDX.License | |
Structured License | |
Defined in Distribution.SPDX.License | |
Data License | |
Defined in Distribution.SPDX.License Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> License -> c License gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c License dataTypeOf :: License -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c License) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c License) gmapT :: (forall b. Data b => b -> b) -> License -> License gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> License -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> License -> r gmapQ :: (forall d. Data d => d -> u) -> License -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> License -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> License -> m License gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> License -> m License gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> License -> m License | |
Generic License | |
Read License | |
Defined in Distribution.SPDX.License | |
Show License | |
Binary License | |
NFData License | |
Defined in Distribution.SPDX.License | |
Eq License | |
Ord License | |
type Rep License | |
Defined in Distribution.SPDX.License type Rep License = D1 ('MetaData "License" "Distribution.SPDX.License" "Cabal-3.6.3.0" 'False) (C1 ('MetaCons "NONE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "License" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LicenseExpression))) |
data LicenseExpression #
Instances
Parsec LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods parsec :: CabalParsing m => m LicenseExpression | |
Pretty LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods pretty :: LicenseExpression -> Doc prettyVersioned :: CabalSpecVersion -> LicenseExpression -> Doc | |
Structured LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods structure :: Proxy LicenseExpression -> Structure structureHash' :: Tagged LicenseExpression MD5 | |
Data LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LicenseExpression -> c LicenseExpression gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LicenseExpression toConstr :: LicenseExpression -> Constr dataTypeOf :: LicenseExpression -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LicenseExpression) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LicenseExpression) gmapT :: (forall b. Data b => b -> b) -> LicenseExpression -> LicenseExpression gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExpression -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExpression -> r gmapQ :: (forall d. Data d => d -> u) -> LicenseExpression -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> LicenseExpression -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExpression -> m LicenseExpression | |
Generic LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Associated Types type Rep LicenseExpression :: Type -> Type Methods from :: LicenseExpression -> Rep LicenseExpression x to :: Rep LicenseExpression x -> LicenseExpression | |
Read LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods readsPrec :: Int -> ReadS LicenseExpression readList :: ReadS [LicenseExpression] readPrec :: ReadPrec LicenseExpression readListPrec :: ReadPrec [LicenseExpression] | |
Show LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods showsPrec :: Int -> LicenseExpression -> ShowS show :: LicenseExpression -> String showList :: [LicenseExpression] -> ShowS | |
Binary LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods put :: LicenseExpression -> Put get :: Get LicenseExpression putList :: [LicenseExpression] -> Put | |
NFData LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods rnf :: LicenseExpression -> () | |
Eq LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods (==) :: LicenseExpression -> LicenseExpression -> Bool (/=) :: LicenseExpression -> LicenseExpression -> Bool | |
Ord LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression Methods compare :: LicenseExpression -> LicenseExpression -> Ordering (<) :: LicenseExpression -> LicenseExpression -> Bool (<=) :: LicenseExpression -> LicenseExpression -> Bool (>) :: LicenseExpression -> LicenseExpression -> Bool (>=) :: LicenseExpression -> LicenseExpression -> Bool max :: LicenseExpression -> LicenseExpression -> LicenseExpression min :: LicenseExpression -> LicenseExpression -> LicenseExpression | |
type Rep LicenseExpression | |
Defined in Distribution.SPDX.LicenseExpression type Rep LicenseExpression = D1 ('MetaData "LicenseExpression" "Distribution.SPDX.LicenseExpression" "Cabal-3.6.3.0" 'False) (C1 ('MetaCons "ELicense" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SimpleLicenseExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe LicenseExceptionId))) :+: (C1 ('MetaCons "EAnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LicenseExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LicenseExpression)) :+: C1 ('MetaCons "EOr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LicenseExpression) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 LicenseExpression)))) |
data SimpleLicenseExpression #
Instances
Instances
Parsec LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Pretty LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Structured LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Data LicenseId | |
Defined in Distribution.SPDX.LicenseId Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LicenseId -> c LicenseId gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LicenseId toConstr :: LicenseId -> Constr dataTypeOf :: LicenseId -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LicenseId) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LicenseId) gmapT :: (forall b. Data b => b -> b) -> LicenseId -> LicenseId gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LicenseId -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LicenseId -> r gmapQ :: (forall d. Data d => d -> u) -> LicenseId -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> LicenseId -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> LicenseId -> m LicenseId gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseId -> m LicenseId gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseId -> m LicenseId | |
Bounded LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Enum LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Generic LicenseId | |
Read LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Show LicenseId | |
Binary LicenseId | |
NFData LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Eq LicenseId | |
Ord LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
type Rep LicenseId | |
Defined in Distribution.SPDX.LicenseId type Rep LicenseId = D1 ('MetaData "LicenseId" "Distribution.SPDX.LicenseId" "Cabal-3.6.3.0" 'False) ((((((((C1 ('MetaCons "NullBSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AAL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Abstyles" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Adobe_2006" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Adobe_Glyph" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ADSL" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "AFL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AFL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AFL_2_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "AFL_2_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AFL_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Afmparse" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "AGPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AGPL_1_0_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AGPL_1_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "AGPL_3_0_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AGPL_3_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Aladdin" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "AMDPLPA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AML" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AMPAS" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ANTLR_PD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Apache_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Apache_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Apache_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "APAFML" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "APL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "APSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "APSL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "APSL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "APSL_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Artistic_1_0_cl8" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Artistic_1_0_Perl" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Artistic_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Artistic_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bahyph" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Barr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Beerware" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "BitTorrent_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BitTorrent_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Blessing" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "BlueOak_1_0_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Borceux" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_1_Clause" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "BSD_2_Clause_FreeBSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BSD_2_Clause_NetBSD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_2_Clause_Patent" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "BSD_2_Clause_Views" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_2_Clause" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "BSD_3_Clause_Attribution" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_3_Clause_Clear" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "BSD_3_Clause_LBNL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BSD_3_Clause_No_Nuclear_License_2014" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_3_Clause_No_Nuclear_License" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "BSD_3_Clause_No_Nuclear_Warranty" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BSD_3_Clause_Open_MPI" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_3_Clause" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "BSD_4_Clause_UC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "BSD_4_Clause" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSD_Protection" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "BSD_Source_Code" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Bzip2_1_0_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bzip2_1_0_6" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CAL_1_0_Combined_Work_Exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CAL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Caldera" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CATOSL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CC_BY_2_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_3_0_AT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_3_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CC_BY_4_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CC_BY_NC_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_2_5" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "CC_BY_NC_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_NC_4_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_ND_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CC_BY_NC_ND_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_NC_ND_2_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_ND_3_0_IGO" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CC_BY_NC_ND_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_NC_ND_4_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_SA_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CC_BY_NC_SA_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_SA_2_5" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CC_BY_NC_SA_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_NC_SA_4_0" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CC_BY_ND_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_ND_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_ND_2_5" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CC_BY_ND_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_ND_4_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_SA_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CC_BY_SA_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CC_BY_SA_2_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_SA_3_0_AT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CC_BY_SA_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC_BY_SA_4_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CC_PDDC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CC0_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "CDDL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CDDL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CDLA_Permissive_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CDLA_Sharing_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CECILL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CECILL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "CECILL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CECILL_2_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CECILL_B" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CECILL_C" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CERN_OHL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CERN_OHL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CERN_OHL_P_2_0" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "CERN_OHL_S_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CERN_OHL_W_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ClArtistic" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "CNRI_Jython" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CNRI_Python_GPL_Compatible" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CNRI_Python" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Condor_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Copyleft_next_0_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Copyleft_next_0_3_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CPAL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CPOL_1_02" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Crossword" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "CrystalStacker" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CUA_OPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Cube" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Curl" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D_FSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Diffmark" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "DOC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Dotseqn" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DSDP" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Dvipdfm" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ECL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ECL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EFL_1_0" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "EFL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EGenix" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Entessa" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "EPICS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "EPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EPL_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ErlPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Etalab_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EUDatagrid" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "EUPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EUPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "EUPL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Eurosym" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "Fair" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Frameworx_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FreeImage" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "FSFAP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FSFULLR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FSFUL" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FTL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GFDL_1_1_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_1_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "GFDL_1_1_no_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_1_no_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GFDL_1_1_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_1_or_later" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "GFDL_1_2_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GFDL_1_2_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_2_no_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "GFDL_1_2_no_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GFDL_1_2_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_2_or_later" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "GFDL_1_3_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GFDL_1_3_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_3_no_invariants_only" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "GFDL_1_3_no_invariants_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GFDL_1_3_only" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GFDL_1_3_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Giftware" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "GL2PS" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Glide" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Glulxe" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "GLWTPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Gnuplot" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GPL_1_0_only" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "GPL_1_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GPL_2_0_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GPL_2_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "GPL_3_0_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GPL_3_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GSOAP_1_3b" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "HaskellReport" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "Hippocratic_2_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "HPND_sell_variant" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "HPND" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "IBM_pibs" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ICU" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IJG" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ImageMagick" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IMatix" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Imlib2" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Info_ZIP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Intel_ACPI" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Intel" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Interbase_1_0" 'PrefixI 'False) (U1 :: Type -> Type))))))))) :+: (((((((C1 ('MetaCons "IPA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ISC" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "JasPer_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JPNIC" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JSON" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "LAL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LAL_1_3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Latex2e" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Leptonica" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LGPL_2_0_only" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LGPL_2_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LGPL_2_1_only" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "LGPL_2_1_or_later" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LGPL_3_0_only" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LGPL_3_0_or_later" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "LGPLLR" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Libpng_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Libpng" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Libselinux_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Libtiff" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiLiQ_P_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LiLiQ_R_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiLiQ_Rplus_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Linux_OpenIB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LPL_1_02" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "LPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LPPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LPPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "LPPL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LPPL_1_3a" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LPPL_1_3c" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "MakeIndex" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MirOS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MIT_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MIT_advertising" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MIT_CMU" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MIT_enna" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MIT_feh" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "MITNFA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MIT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Motosoto" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Mpich2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "MPL_2_0_no_copyleft_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MPL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MS_PL" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MS_RL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MTLL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "MulanPSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "MulanPSL_2_0" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "Multics" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Mup" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NASA_1_3" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Naumen" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NBPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NCGL_UK_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "NCSA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Net_SNMP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NetCDF" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Newsletr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NGPL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NIST_PD_fallback" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NIST_PD" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "NLOD_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NLPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Nokia" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "NOSL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Noweb" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "NPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NPOSL_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NRL" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "NTP_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NTP" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "O_UDA_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OCCT_PL" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "OCLC_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ODbL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ODC_By_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "OFL_1_0_no_RFN" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OFL_1_0_RFN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OFL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "OFL_1_1_no_RFN" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OFL_1_1_RFN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OFL_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "OGC_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OGL_Canada_2_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OGL_UK_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OGL_UK_2_0" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "OGL_UK_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OGTSL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "OLDAP_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OLDAP_1_3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_1_4" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "OLDAP_2_0_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OLDAP_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_2_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "OLDAP_2_2_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_2_2_2" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OLDAP_2_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_2_3" 'PrefixI 'False) (U1 :: Type -> Type)))))))) :+: ((((((C1 ('MetaCons "OLDAP_2_4" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OLDAP_2_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OLDAP_2_6" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "OLDAP_2_7" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OLDAP_2_8" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OML" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "OpenSSL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OSET_PL_2_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "OSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OSL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OSL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OSL_2_1" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "OSL_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Parity_6_0_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Parity_7_0_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "PDDL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PHP_3_01" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PHP_3_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Plexus" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PolyForm_Noncommercial_1_0_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PolyForm_Small_Business_1_0_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PostgreSQL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PSF_2_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Psfrag" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Psutils" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "Python_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Qhull" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "QPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Rdisc" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RHeCos_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "RPL_1_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RPSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RSA_MD" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "RSCPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Ruby" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "SAX_PD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Saxpath" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "SCEA" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Sendmail_8_23" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Sendmail" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "SGI_B_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SGI_B_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SGI_B_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SHL_0_51" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SHL_0_5" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SimPL_2_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SISSL_1_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SISSL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Sleepycat" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SMLNJ" 'PrefixI 'False) (U1 :: Type -> Type))))))) :+: (((((C1 ('MetaCons "SMPPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SNIA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Spencer_86" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "Spencer_94" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Spencer_99" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SSH_OpenSSH" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SSH_short" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SSPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "SugarCRM_1_1_3" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SWL" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TAPR_OHL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TCL" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TCP_wrappers" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TMate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TORQUE_1_1" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TOSL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TU_Berlin_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TU_Berlin_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "UCL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Unicode_DFS_2015" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Unicode_DFS_2016" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Unicode_TOU" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Unlicense" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Vim" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "VOSTROM" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "VSL_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "W3C_19980720" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "W3C_20150513" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "W3C" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Watcom_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Wsuipa" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "WTFPL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "X11" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Xerox" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "XFree86_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Xinetd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Xnet" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "Xpp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "XSkat" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "YPL_1_0" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "YPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Zed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Zend_2_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Zimbra_1_3" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Zimbra_1_4" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Zlib_acknowledgement" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Zlib" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ZPL_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ZPL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ZPL_2_1" 'PrefixI 'False) (U1 :: Type -> Type)))))))))) |
data LicenseExceptionId #
Instances
Parsec LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods parsec :: CabalParsing m => m LicenseExceptionId | |
Pretty LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods pretty :: LicenseExceptionId -> Doc prettyVersioned :: CabalSpecVersion -> LicenseExceptionId -> Doc | |
Structured LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods structure :: Proxy LicenseExceptionId -> Structure structureHash' :: Tagged LicenseExceptionId MD5 | |
Data LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LicenseExceptionId -> c LicenseExceptionId gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LicenseExceptionId toConstr :: LicenseExceptionId -> Constr dataTypeOf :: LicenseExceptionId -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LicenseExceptionId) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LicenseExceptionId) gmapT :: (forall b. Data b => b -> b) -> LicenseExceptionId -> LicenseExceptionId gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExceptionId -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LicenseExceptionId -> r gmapQ :: (forall d. Data d => d -> u) -> LicenseExceptionId -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> LicenseExceptionId -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> LicenseExceptionId -> m LicenseExceptionId gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExceptionId -> m LicenseExceptionId gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LicenseExceptionId -> m LicenseExceptionId | |
Bounded LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId | |
Enum LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods succ :: LicenseExceptionId -> LicenseExceptionId pred :: LicenseExceptionId -> LicenseExceptionId toEnum :: Int -> LicenseExceptionId fromEnum :: LicenseExceptionId -> Int enumFrom :: LicenseExceptionId -> [LicenseExceptionId] enumFromThen :: LicenseExceptionId -> LicenseExceptionId -> [LicenseExceptionId] enumFromTo :: LicenseExceptionId -> LicenseExceptionId -> [LicenseExceptionId] enumFromThenTo :: LicenseExceptionId -> LicenseExceptionId -> LicenseExceptionId -> [LicenseExceptionId] | |
Generic LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Associated Types type Rep LicenseExceptionId :: Type -> Type Methods from :: LicenseExceptionId -> Rep LicenseExceptionId x to :: Rep LicenseExceptionId x -> LicenseExceptionId | |
Read LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods readsPrec :: Int -> ReadS LicenseExceptionId readList :: ReadS [LicenseExceptionId] readPrec :: ReadPrec LicenseExceptionId readListPrec :: ReadPrec [LicenseExceptionId] | |
Show LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods showsPrec :: Int -> LicenseExceptionId -> ShowS show :: LicenseExceptionId -> String showList :: [LicenseExceptionId] -> ShowS | |
Binary LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods put :: LicenseExceptionId -> Put get :: Get LicenseExceptionId putList :: [LicenseExceptionId] -> Put | |
NFData LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods rnf :: LicenseExceptionId -> () | |
Eq LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods (==) :: LicenseExceptionId -> LicenseExceptionId -> Bool (/=) :: LicenseExceptionId -> LicenseExceptionId -> Bool | |
Ord LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId Methods compare :: LicenseExceptionId -> LicenseExceptionId -> Ordering (<) :: LicenseExceptionId -> LicenseExceptionId -> Bool (<=) :: LicenseExceptionId -> LicenseExceptionId -> Bool (>) :: LicenseExceptionId -> LicenseExceptionId -> Bool (>=) :: LicenseExceptionId -> LicenseExceptionId -> Bool max :: LicenseExceptionId -> LicenseExceptionId -> LicenseExceptionId min :: LicenseExceptionId -> LicenseExceptionId -> LicenseExceptionId | |
type Rep LicenseExceptionId | |
Defined in Distribution.SPDX.LicenseExceptionId type Rep LicenseExceptionId = D1 ('MetaData "LicenseExceptionId" "Distribution.SPDX.LicenseExceptionId" "Cabal-3.6.3.0" 'False) (((((C1 ('MetaCons "DS389_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Autoconf_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Autoconf_exception_3_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Bison_exception_2_2" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Bootloader_exception" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Classpath_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLISP_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "DigiRule_FOSS_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ECos_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Fawkes_Runtime_exception" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "FLTK_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Font_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Freertos_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GCC_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GCC_exception_3_1" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Gnu_javamail_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GPL_3_0_linking_exception" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "GPL_3_0_linking_source_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GPL_CC_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "I2p_gpl_java_exception" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "LGPL_3_0_linking_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Libtool_exception" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Linux_syscall_note" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LLVM_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LZMA_exception" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Mif_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Nokia_Qt_exception_1_1" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OCaml_LGPL_linking_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OCCT_exception_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OpenJDK_assembly_exception_1_0" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "Openvpn_openssl_exception" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PS_or_PDF_font_exception_20170817" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Qt_GPL_exception_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Qt_LGPL_exception_1_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Qwt_exception_1_0" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "SHL_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SHL_2_1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Swift_exception" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "U_boot_exception_2_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Universal_FOSS_exception_1_0" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "WxWindows_exception_3_1" 'PrefixI 'False) (U1 :: Type -> Type))))))) |
Logic
⟦ satisfies a b ⟧ ≡ a ≥ b ≡ a ∧ b = b
>>>
unsafeParseExpr "GPL-3.0-only" `satisfies` unsafeParseExpr "ISC AND MIT"
False
>>>
unsafeParseExpr "Zlib" `satisfies` unsafeParseExpr "ISC AND MIT AND Zlib"
True
>>>
unsafeParseExpr "(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)"
False
equivalent :: License -> License -> Bool Source #
Check wheather two LicenseExpression
are equivalent.
>>>
unsafeParseExpr "(MIT AND GPL-2.0-only)" `equivalent` unsafeParseExpr "(GPL-2.0-only AND MIT)"
True
>>>
unsafeParseExpr "MIT" `equivalent` unsafeParseExpr "MIT OR BSD-3-Clause"
False