packages feed

colour 2.3.4 → 2.3.5

raw patch · 12 files changed

+36/−30 lines, 12 filesdep ~QuickCheckdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: QuickCheck, base

API changes (from Hackage documentation)

- Data.Colour.RGBSpace: instance GHC.Num.Num a => Data.Semigroup.Semigroup (Data.Colour.RGBSpace.TransferFunction a)
+ Data.Colour.RGBSpace: instance GHC.Num.Num a => GHC.Base.Semigroup (Data.Colour.RGBSpace.TransferFunction a)
- Data.Colour: atop :: (Fractional a) => AlphaColour a -> AlphaColour a -> AlphaColour a
+ Data.Colour: atop :: Fractional a => AlphaColour a -> AlphaColour a -> AlphaColour a
- Data.Colour: black :: (Num a) => Colour a
+ Data.Colour: black :: Num a => Colour a
- Data.Colour: dissolve :: (Num a) => a -> AlphaColour a -> AlphaColour a
+ Data.Colour: dissolve :: Num a => a -> AlphaColour a -> AlphaColour a
- Data.Colour: opaque :: (Num a) => Colour a -> AlphaColour a
+ Data.Colour: opaque :: Num a => Colour a -> AlphaColour a
- Data.Colour: transparent :: (Num a) => AlphaColour a
+ Data.Colour: transparent :: Num a => AlphaColour a
- Data.Colour: withOpacity :: (Num a) => Colour a -> a -> AlphaColour a
+ Data.Colour: withOpacity :: Num a => Colour a -> a -> AlphaColour a
- Data.Colour.CIE: chromaColour :: (Fractional a) => Chromaticity a -> a -> Colour a
+ Data.Colour.CIE: chromaColour :: Fractional a => Chromaticity a -> a -> Colour a
- Data.Colour.CIE: chromaCoords :: (Fractional a) => Chromaticity a -> (a, a, a)
+ Data.Colour.CIE: chromaCoords :: Fractional a => Chromaticity a -> (a, a, a)
- Data.Colour.CIE: chromaX :: (Fractional a) => Chromaticity a -> a
+ Data.Colour.CIE: chromaX :: Fractional a => Chromaticity a -> a
- Data.Colour.CIE: chromaY :: (Fractional a) => Chromaticity a -> a
+ Data.Colour.CIE: chromaY :: Fractional a => Chromaticity a -> a
- Data.Colour.CIE: chromaZ :: (Fractional a) => Chromaticity a -> a
+ Data.Colour.CIE: chromaZ :: Fractional a => Chromaticity a -> a
- Data.Colour.CIE: cieXYZ :: (Fractional a) => a -> a -> a -> Colour a
+ Data.Colour.CIE: cieXYZ :: Fractional a => a -> a -> a -> Colour a
- Data.Colour.CIE: cieXYZView :: (Fractional a) => Colour a -> (a, a, a)
+ Data.Colour.CIE: cieXYZView :: Fractional a => Colour a -> (a, a, a)
- Data.Colour.CIE: luminance :: (Fractional a) => Colour a -> a
+ Data.Colour.CIE: luminance :: Fractional a => Colour a -> a
- Data.Colour.CIE: mkChromaticity :: (Fractional a) => a -> a -> Chromaticity a
+ Data.Colour.CIE: mkChromaticity :: Fractional a => a -> a -> Chromaticity a
- Data.Colour.CIE.Illuminant: a :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: a :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: b :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: b :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: c :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: c :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: d50 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: d50 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: d55 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: d55 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: d65 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: d65 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: d75 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: d75 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: e :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: e :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f1 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f1 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f10 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f10 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f11 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f11 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f12 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f12 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f2 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f2 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f3 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f3 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f4 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f4 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f5 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f5 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f6 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f6 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f7 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f7 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f8 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f8 :: Fractional a => Chromaticity a
- Data.Colour.CIE.Illuminant: f9 :: (Fractional a) => Chromaticity a
+ Data.Colour.CIE.Illuminant: f9 :: Fractional a => Chromaticity a
- Data.Colour.Names: black :: (Num a) => Colour a
+ Data.Colour.Names: black :: Num a => Colour a
- Data.Colour.Names: readColourName :: (Monad m, Ord a, Floating a) => String -> m (Colour a)
+ Data.Colour.Names: readColourName :: (MonadFail m, Monad m, Ord a, Floating a) => String -> m (Colour a)
- Data.Colour.RGBSpace: inverseTransferFunction :: (Fractional a) => TransferFunction a -> TransferFunction a
+ Data.Colour.RGBSpace: inverseTransferFunction :: Fractional a => TransferFunction a -> TransferFunction a
- Data.Colour.RGBSpace: linearRGBSpace :: (Num a) => RGBGamut -> RGBSpace a
+ Data.Colour.RGBSpace: linearRGBSpace :: Num a => RGBGamut -> RGBSpace a
- Data.Colour.RGBSpace: linearTransferFunction :: (Num a) => TransferFunction a
+ Data.Colour.RGBSpace: linearTransferFunction :: Num a => TransferFunction a
- Data.Colour.RGBSpace: powerTransferFunction :: (Floating a) => a -> TransferFunction a
+ Data.Colour.RGBSpace: powerTransferFunction :: Floating a => a -> TransferFunction a
- Data.Colour.RGBSpace: primaries :: RGBGamut -> (RGB (Chromaticity Rational))
+ Data.Colour.RGBSpace: primaries :: RGBGamut -> RGB (Chromaticity Rational)
- Data.Colour.RGBSpace: rgbUsingSpace :: (Fractional a) => RGBSpace a -> a -> a -> a -> Colour a
+ Data.Colour.RGBSpace: rgbUsingSpace :: Fractional a => RGBSpace a -> a -> a -> a -> Colour a
- Data.Colour.RGBSpace: toRGBUsingSpace :: (Fractional a) => RGBSpace a -> Colour a -> RGB a
+ Data.Colour.RGBSpace: toRGBUsingSpace :: Fractional a => RGBSpace a -> Colour a -> RGB a
- Data.Colour.RGBSpace: whitePoint :: RGBGamut -> (Chromaticity Rational)
+ Data.Colour.RGBSpace: whitePoint :: RGBGamut -> Chromaticity Rational
- Data.Colour.SRGB: sRGB24read :: (Ord b, Floating b) => String -> (Colour b)
+ Data.Colour.SRGB: sRGB24read :: (Ord b, Floating b) => String -> Colour b

Files

CHANGELOG view
@@ -1,3 +1,7 @@+New in version 2.3.5:+- Support for MonadFail Proposal.+- Documentation updates.+ New in version 2.3.4:  - Support for Semigroup (as superclass of) Monoid Proposal.
Data/Colour.hs view
@@ -23,10 +23,10 @@ -- |Datatypes for representing the human perception of colour. -- Includes common operations for blending and compositing colours. -- The most common way of creating colours is either by name--- (see "Data.Colour.Names") or by giving an sRGB triple +-- (see "Data.Colour.Names") or by giving an sRGB triple -- (see "Data.Colour.SRGB"). ----- Methods of specifying Colours can be found in +-- Methods of specifying Colours can be found in -- -- - "Data.Colour.SRGB" --@@ -71,14 +71,14 @@ -- typically produce colour blends that are too dark. -- -- (Note that "Data.Colour" is a device /independent/ colour space, and--- produces correct blends. +-- produces correct blends. -- e.g. compare @toSRGB (blend 0.5 lime red)@ with @RGB 0.5 0.5 0@) -- -- Because these other colour libraries can only blend in device colour -- spaces, they are fundamentally broken and there is no \"right\" way -- to interface with them. -- For most libraries, the best one can do is assume they are working--- with an sRGB colour space and doing incorrect blends.  +-- with an sRGB colour space and doing incorrect blends. -- In these cases use "Data.Colour.SRGB" to convert to and from the -- colour coordinates.  This is the best advice for interfacing with cairo. --@@ -149,7 +149,7 @@                          ,(g0,s1) <- readsPrec (app_prec+1) s0                          ,(b0,t)  <- readsPrec (app_prec+1) s1]) r    where-    mylex = return +    mylex = return           . span (\c -> isAlphaNum c || c `elem` "._'")           . dropWhile isSpace 
Data/Colour/CIE.hs view
@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -}--- |Colour operations defined by the International Commission on +-- |Colour operations defined by the International Commission on -- Illumination (CIE). module Data.Colour.CIE  (Colour
Data/Colour/CIE/Illuminant.hs view
@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -}--- |Standard illuminants defined by the International Commission on +-- |Standard illuminants defined by the International Commission on -- Illumination (CIE). module Data.Colour.CIE.Illuminant where @@ -28,7 +28,7 @@  -- |Incandescent \/ Tungsten a   :: (Fractional a) => Chromaticity a-a   = mkChromaticity 0.44757 0.40745 +a   = mkChromaticity 0.44757 0.40745  -- |{obsolete} Direct sunlight at noon b   :: (Fractional a) => Chromaticity a
Data/Colour/Internal.hs view
@@ -40,8 +40,8 @@ -- colours can take you out of gamut.  Consider using 'blend' whenever -- possible. --- Internally we store the colour in linear ITU-R BT.709 RGB colour space. -data Colour a = RGB !(Chan Red a) !(Chan Green a) !(Chan Blue a) +-- Internally we store the colour in linear ITU-R BT.709 RGB colour space.+data Colour a = RGB !(Chan Red a) !(Chan Green a) !(Chan Blue a)                 deriving (Eq)  -- |Change the type used to represent the colour coordinates.@@ -102,7 +102,7 @@  -- |Creates an 'AlphaColour' from a 'Colour' with a given opacity. ----- >c `withOpacity` o == dissolve o (opaque c) +-- >c `withOpacity` o == dissolve o (opaque c) withOpacity :: (Num a) => Colour a -> a -> AlphaColour a c `withOpacity` o = RGBA (darken o c) (Chan o) @@ -187,7 +187,7 @@ -- >c1 `atop` (opaque c2) == c1 `over` (opaque c2) -- >AlphaChannel (c1 `atop` c2) == AlphaChannel c2 atop :: (Fractional a) => AlphaColour a -> AlphaColour a -> AlphaColour a-atop (RGBA c0 (Chan a0)) (RGBA c1 (Chan a1)) = +atop (RGBA c0 (Chan a0)) (RGBA c1 (Chan a1)) =   RGBA (darken a1 c0 `mappend` darken (1-a0) c1) (Chan a1)  -- |'round's and then clamps @x@ between 0 and 'maxBound'.
Data/Colour/Names.hs view
@@ -28,7 +28,7 @@ -- 'readColourName' takes a string naming a colour (must be all lowercase) -- and returns the colour. -- Fails if the name is not recognized.-module Data.Colour.Names +module Data.Colour.Names  (   readColourName  ,aliceblue@@ -182,10 +182,11 @@ where  import Prelude hiding (tan)+import qualified Control.Monad.Fail as Fail import Data.Colour.SRGB import Data.Colour (black) -readColourName :: (Monad m, Ord a, Floating a) => String -> m (Colour a)+readColourName :: (Fail.MonadFail m, Monad m, Ord a, Floating a) => String -> m (Colour a) readColourName "aliceblue" = return aliceblue readColourName "antiquewhite" = return antiquewhite readColourName "aqua" = return aqua@@ -333,7 +334,7 @@ readColourName "whitesmoke" = return whitesmoke readColourName "yellow" = return yellow readColourName "yellowgreen" = return yellowgreen-readColourName x = fail $ +readColourName x = fail $   "Data.Colour.Names.readColourName: Unknown colour name "++show x  aliceblue :: (Ord a, Floating a) => Colour a
Data/Colour/RGB.hs view
@@ -70,7 +70,7 @@                          ,(p,s0) <- readsPrec (app_prec+1) s                          ,(w,t)  <- readsPrec (app_prec+1) s0]) r --- |An RGB gamut is specified by three primary colours (red, green, and +-- |An RGB gamut is specified by three primary colours (red, green, and -- blue) and a white point (often 'Data.Colour.CIE.Illuminant.d65'). mkRGBGamut :: RGB (Chromaticity Rational) -- ^ The three primaries            -> Chromaticity Rational       -- ^ The white point
Data/Colour/RGBSpace.hs view
@@ -138,7 +138,7 @@ -- |Create a 'Colour' from red, green, and blue coordinates given in a -- general 'RGBSpace'. rgbUsingSpace :: (Fractional a) => RGBSpace a -> a -> a -> a -> Colour a-rgbUsingSpace space = +rgbUsingSpace space =   curryRGB (uncurryRGB (rgbUsingGamut (gamut space)) . fmap tinv)  where   tinv = transferInverse (transferFunction space)
Data/Colour/RGBSpace/HSL.hs view
@@ -21,7 +21,7 @@ THE SOFTWARE. -} -module Data.Colour.RGBSpace.HSL +module Data.Colour.RGBSpace.HSL  (RGB  ,hslView  ,hue, saturation, lightness@@ -38,7 +38,7 @@  where   (h,s,l,_,_) = hslsv rgb --- |Returns the saturation coordinate of an 'RGB' triple for the HSL+-- |Returns the saturation coordinate (range [0, 1]) of an 'RGB' triple for the HSL -- (hue-saturation-lightness) system. -- Note: This is different from 'Data.Colour.RGBSpace.HSV.saturation' for -- the "Data.Colour.RGBSpace.HSV"@@ -47,7 +47,7 @@  where   (_,s,_,_,_) = hslsv rgb --- |Returns the lightness coordinate of an 'RGB' triple for the HSL+-- |Returns the lightness coordinate (range [0, 1]) of an 'RGB' triple for the HSL -- (hue-saturation-lightness) system. lightness :: (Fractional a, Ord a) => RGB a -> a lightness rgb = l@@ -55,7 +55,8 @@   (_,_,l,_,_) = hslsv rgb  -- |Convert HSL (hue-saturation-lightness) coordinates to an 'RGB' value.--- Hue is expected to be measured in degrees.+-- Hue is expected to be measured in degrees [0,360], while saturation and+-- lightness are expected to be in the closed range [0,1]. hsl :: (RealFrac a, Ord a) => a -> a -> a -> RGB a hsl h s l = fmap component t  where
Data/Colour/RGBSpace/HSV.hs view
@@ -21,7 +21,7 @@ THE SOFTWARE. -} -module Data.Colour.RGBSpace.HSV +module Data.Colour.RGBSpace.HSV  (RGB  ,hsvView  ,hue, saturation, value@@ -38,7 +38,7 @@  where   (h,_,_,s,v) = hslsv rgb --- |Returns the saturation coordinate of an 'RGB' triple for the HSV+-- |Returns the saturation coordinate (range [0,1]) of an 'RGB' triple for the HSV -- (hue-saturation-value) system. -- Note: This is different from 'Data.Colour.RGBSpace.HSL.saturation' for -- the "Data.Colour.RGBSpace.HSL"@@ -47,7 +47,7 @@  where   (_,_,_,s,_) = hslsv rgb --- |Returns the value coordinate of an 'RGB' triple for the HSV+-- |Returns the value coordinate (raonge [0,1]) of an 'RGB' triple for the HSV -- (hue-saturation-value) system. value :: (Fractional a, Ord a) => RGB a -> a value rgb = v@@ -55,8 +55,8 @@   (_,_,_,_,v) = hslsv rgb  -- |Convert HSV (hue-saturation-value) coordinates to an 'RGB' value.--- Hue is expected to be measured in degrees.-+-- Hue is expected to be measured in degrees [0,360], while saturation and+-- value are expected to be in the closed range [0,1]. hsv :: (RealFrac a, Ord a) => a -> a -> a -> RGB a hsv h s v = case hi of     0 -> RGB v t p
Data/Colour/SRGB/Linear.hs view
@@ -23,7 +23,7 @@ -} -- |Provides a /linear/ colour space with the same gamut as -- "Data.Colour.SRGB".-module Data.Colour.SRGB.Linear +module Data.Colour.SRGB.Linear  (Colour, RGB(..)  ,rgb, toRGB  ,sRGBGamut
colour.cabal view
@@ -1,5 +1,5 @@ Name:                colour-Version:             2.3.4+Version:             2.3.5 Cabal-Version:       >= 1.10 License:             MIT License-file:        LICENSE@@ -13,7 +13,7 @@                      Colours can be blended and composed.                      Various colour spaces are supported.                      A module of colour names ("Data.Colour.Names") is provided.-Tested-with:         GHC == 8.0.2+Tested-with:         GHC == 8.6.4 data-files:          README CHANGELOG  Library@@ -38,7 +38,7 @@     type:       exitcode-stdio-1.0     main-is:    Tests.hs     build-depends: base >= 4.9 && < 5,-                   QuickCheck >= 2.5 && < 2.11,+                   QuickCheck >= 2.5 && < 2.14,                    random >= 1.0 && < 1.2,                    test-framework >= 0.8 && < 0.9,                    test-framework-quickcheck2 >= 0.3 && < 0.4