Safe Haskell | None |
---|---|
Language | Haskell98 |
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.
Declared license. See section 3.15 of SPDX Specification 2.1
Note: the NOASSERTION case is omitted.
Old License
can be migrated using following rules:
AllRightsReserved
andUnspecifiedLicense
toNONE
. No license specified which legally defaults to All Rights Reserved. The package may not be legally modified or redistributed by anyone but the rightsholder.OtherLicense
can be converted toLicenseRef
pointing to the file in the package.UnknownLicense
i.e. other licenses of the formname-x.y
, should be covered by SPDX license list, otherwise useLicenseRef
.PublicDomain
isn't covered. Consider using CC0. See https://wiki.spdx.org/view/Legal_Team/Decisions/Dealing_with_Public_Domain_within_SPDX_Files for more information.
Instances
Eq License | |
Data License | |
Defined in Distribution.SPDX.License 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 # toConstr :: License -> Constr # 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 # | |
Ord License | |
Read License | |
Show License | |
Generic License | |
Parsec License |
|
Defined in Distribution.SPDX.License parsec :: CabalParsing m => m License # | |
Pretty License | |
Defined in Distribution.SPDX.License prettyVersioned :: CabalSpecVersion -> License -> Doc # | |
Structured License | |
Defined in Distribution.SPDX.License | |
NFData License | |
Defined in Distribution.SPDX.License | |
Binary License | |
type Rep License | |
Defined in Distribution.SPDX.License type Rep License = D1 ('MetaData "License" "Distribution.SPDX.License" "Cabal-3.2.0.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 #
SPDX License Expression.
idstring = 1*(ALPHA / DIGIT / "-" / "." ) license id = <short form license identifier inAppendix I.1> license exception id = <short form license exception identifier inAppendix I.2> license ref = ["DocumentRef-"1*(idstring)":"]"LicenseRef-"1*(idstring) simple expression = license id / license id"+" / license ref compound expression = 1*1(simple expression / simple expression "WITH" license exception id / compound expression "AND" compound expression / compound expression "OR" compound expression ) / "(" compound expression ")" ) license expression = 1*1(simple expression / compound expression)
Instances
data SimpleLicenseExpression #
Simple License Expressions.
Instances
SPDX License identifier
Instances
Bounded LicenseId | |
Enum LicenseId | |
Defined in Distribution.SPDX.LicenseId succ :: LicenseId -> LicenseId # pred :: LicenseId -> LicenseId # fromEnum :: LicenseId -> Int # enumFrom :: LicenseId -> [LicenseId] # enumFromThen :: LicenseId -> LicenseId -> [LicenseId] # enumFromTo :: LicenseId -> LicenseId -> [LicenseId] # enumFromThenTo :: LicenseId -> LicenseId -> LicenseId -> [LicenseId] # | |
Eq LicenseId | |
Data LicenseId | |
Defined in Distribution.SPDX.LicenseId 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 # | |
Ord LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Read LicenseId | |
Show LicenseId | |
Generic LicenseId | |
Parsec LicenseId |
|
Defined in Distribution.SPDX.LicenseId parsec :: CabalParsing m => m LicenseId # | |
Pretty LicenseId | |
Defined in Distribution.SPDX.LicenseId prettyVersioned :: CabalSpecVersion -> LicenseId -> Doc # | |
Structured LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
NFData LicenseId | |
Defined in Distribution.SPDX.LicenseId | |
Binary LicenseId | |
type Rep LicenseId | |
Defined in Distribution.SPDX.LicenseId type Rep LicenseId = D1 ('MetaData "LicenseId" "Distribution.SPDX.LicenseId" "Cabal-3.2.0.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" '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 "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" '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" '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" '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 "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 "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 "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_only" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "GFDL_1_1_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_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 "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 "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 "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 "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 "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 "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" '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" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OFL_1_1" '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 "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 "PostgreSQL" '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 "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 "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 #
SPDX License identifier
Instances
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