Twinside / Rasterific

A drawing engine in Haskell
BSD 3-Clause "New" or "Revised" License
140 stars 11 forks source link

Inaccurate version bounds #24

Closed hvr closed 7 years ago

hvr commented 7 years ago

Rasterific-0.7(.1) claim being compatible with base-4.7 and base-4.6; GHC 7.8 however disagrees:

Configuring component lib from Rasterific-0.7
Preprocessing library Rasterific-0.7...
[ 1 of 28] Compiling Graphics.Rasterific.QuadraticFormula ( src/Graphics/Rasterific/QuadraticFormula.hs, /tmp/matrix-worker/1479656043/dist-newstyle/build/x86_64-linux/ghc-7.8.4/Rasterific-0.7/build/Graphics/Rasterific/QuadraticFormula.o )
[ 2 of 28] Compiling Graphics.Rasterific.MiniLens ( src/Graphics/Rasterific/MiniLens.hs, /tmp/matrix-worker/1479656043/dist-newstyle/build/x86_64-linux/ghc-7.8.4/Rasterific-0.7/build/Graphics/Rasterific/MiniLens.o )
[ 3 of 28] Compiling Graphics.Rasterific.Linear ( src/Graphics/Rasterific/Linear.hs, /tmp/matrix-worker/1479656043/dist-newstyle/build/x86_64-linux/ghc-7.8.4/Rasterific-0.7/build/Graphics/Rasterific/Linear.o )
[ 4 of 28] Compiling Graphics.Rasterific.Operators ( src/Graphics/Rasterific/Operators.hs, /tmp/matrix-worker/1479656043/dist-newstyle/build/x86_64-linux/ghc-7.8.4/Rasterific-0.7/build/Graphics/Rasterific/Operators.o )
[ 5 of 28] Compiling Graphics.Rasterific.Types ( src/Graphics/Rasterific/Types.hs, /tmp/matrix-worker/1479656043/dist-newstyle/build/x86_64-linux/ghc-7.8.4/Rasterific-0.7/build/Graphics/Rasterific/Types.o )

src/Graphics/Rasterific/Types.hs:263:36:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Line -> m Line
      at src/Graphics/Rasterific/Types.hs:263:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Line -> m Line
    In the first argument of ‘(<*>)’, namely ‘Line <$> f a’
    In the expression: Line <$> f a <*> f b
    In an equation for ‘transformM’:
        transformM f (Line a b) = Line <$> f a <*> f b

src/Graphics/Rasterific/Types.hs:263:44:
    Could not deduce (Control.Applicative.Applicative m)
      arising from a use of ‘<*>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Line -> m Line
      at src/Graphics/Rasterific/Types.hs:263:5-14
    Possible fix:
      add (Control.Applicative.Applicative m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Line -> m Line
    In the expression: Line <$> f a <*> f b
    In an equation for ‘transformM’:
        transformM f (Line a b) = Line <$> f a <*> f b
    In the instance declaration for ‘Transformable Line’

src/Graphics/Rasterific/Types.hs:298:42:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Bezier -> m Bezier
      at src/Graphics/Rasterific/Types.hs:298:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Bezier -> m Bezier
    In the first argument of ‘(<*>)’, namely ‘Bezier <$> f a’
    In the first argument of ‘(<*>)’, namely ‘Bezier <$> f a <*> f b’
    In the expression: Bezier <$> f a <*> f b <*> f c

src/Graphics/Rasterific/Types.hs:298:58:
    Could not deduce (Control.Applicative.Applicative m)
      arising from a use of ‘<*>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Bezier -> m Bezier
      at src/Graphics/Rasterific/Types.hs:298:5-14
    Possible fix:
      add (Control.Applicative.Applicative m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Bezier -> m Bezier
    In the expression: Bezier <$> f a <*> f b <*> f c
    In an equation for ‘transformM’:
        transformM f (Bezier a b c) = Bezier <$> f a <*> f b <*> f c
    In the instance declaration for ‘Transformable Bezier’

src/Graphics/Rasterific/Types.hs:337:20:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m =>
                               (Point -> m Point) -> CubicBezier -> m CubicBezier
      at src/Graphics/Rasterific/Types.hs:336:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m =>
                        (Point -> m Point) -> CubicBezier -> m CubicBezier
    In the first argument of ‘(<*>)’, namely ‘CubicBezier <$> f a’
    In the first argument of ‘(<*>)’, namely
      ‘CubicBezier <$> f a <*> f b’
    In the first argument of ‘(<*>)’, namely
      ‘CubicBezier <$> f a <*> f b <*> f c’

src/Graphics/Rasterific/Types.hs:337:44:
    Could not deduce (Control.Applicative.Applicative m)
      arising from a use of ‘<*>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m =>
                               (Point -> m Point) -> CubicBezier -> m CubicBezier
      at src/Graphics/Rasterific/Types.hs:336:5-14
    Possible fix:
      add (Control.Applicative.Applicative m) to the context of
        the type signature for
          transformM :: Monad m =>
                        (Point -> m Point) -> CubicBezier -> m CubicBezier
    In the expression: CubicBezier <$> f a <*> f b <*> f c <*> f d
    In an equation for ‘transformM’:
        transformM f (CubicBezier a b c d)
          = CubicBezier <$> f a <*> f b <*> f c <*> f d
    In the instance declaration for ‘Transformable CubicBezier’

src/Graphics/Rasterific/Types.hs:432:42:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m =>
                               (Point -> m Point) -> Primitive -> m Primitive
      at src/Graphics/Rasterific/Types.hs:432:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m =>
                        (Point -> m Point) -> Primitive -> m Primitive
    In the expression: LinePrim <$> transformM f l
    In an equation for ‘transformM’:
        transformM f (LinePrim l) = LinePrim <$> transformM f l
    In the instance declaration for ‘Transformable Primitive’

src/Graphics/Rasterific/Types.hs:446:20:
    Could not deduce (f ~ [])
    from the context (Traversable f, Transformable a)
      bound by the instance declaration
      at src/Graphics/Rasterific/Types.hs:(443,31)-(444,28)
      ‘f’ is a rigid type variable bound by
          the instance declaration at src/Graphics/Rasterific/Types.hs:443:31
    Expected type: f a -> m (f a)
      Actual type: [a] -> m [a]
    Relevant bindings include
      transformM :: (Point -> m Point) -> f a -> m (f a)
        (bound at src/Graphics/Rasterific/Types.hs:446:5)
    In the expression: mapM (transformM f)
    In an equation for ‘transformM’: transformM f = mapM (transformM f)

src/Graphics/Rasterific/Types.hs:493:14:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Path -> m Path
      at src/Graphics/Rasterific/Types.hs:492:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Path -> m Path
    In the first argument of ‘(<*>)’, namely ‘Path <$> f orig’
    In the first argument of ‘(<*>)’, namely
      ‘Path <$> f orig <*> pure close’
    In the expression:
      Path <$> f orig <*> pure close <*> transformM f rest

src/Graphics/Rasterific/Types.hs:493:40:
    Could not deduce (Control.Applicative.Applicative m)
      arising from a use of ‘<*>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m => (Point -> m Point) -> Path -> m Path
      at src/Graphics/Rasterific/Types.hs:492:5-14
    Possible fix:
      add (Control.Applicative.Applicative m) to the context of
        the type signature for
          transformM :: Monad m => (Point -> m Point) -> Path -> m Path
    In the expression:
      Path <$> f orig <*> pure close <*> transformM f rest
    In an equation for ‘transformM’:
        transformM f (Path orig close rest)
          = Path <$> f orig <*> pure close <*> transformM f rest
    In the instance declaration for ‘Transformable Path’

src/Graphics/Rasterific/Types.hs:520:46:
    Could not deduce (Functor m) arising from a use of ‘<$>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m =>
                               (Point -> m Point) -> PathCommand -> m PathCommand
      at src/Graphics/Rasterific/Types.hs:520:5-14
    Possible fix:
      add (Functor m) to the context of
        the type signature for
          transformM :: Monad m =>
                        (Point -> m Point) -> PathCommand -> m PathCommand
    In the expression: PathLineTo <$> f p
    In an equation for ‘transformM’:
        transformM f (PathLineTo p) = PathLineTo <$> f p
    In the instance declaration for ‘Transformable PathCommand’

src/Graphics/Rasterific/Types.hs:522:45:
    Could not deduce (Control.Applicative.Applicative m)
      arising from a use of ‘<*>’
    from the context (Monad m)
      bound by the type signature for
                 transformM :: Monad m =>
                               (Point -> m Point) -> PathCommand -> m PathCommand
      at src/Graphics/Rasterific/Types.hs:520:5-14
    Possible fix:
      add (Control.Applicative.Applicative m) to the context of
        the type signature for
          transformM :: Monad m =>
                        (Point -> m Point) -> PathCommand -> m PathCommand
    In the expression: PathQuadraticBezierCurveTo <$> f p1 <*> f p2
    In an equation for ‘transformM’:
        transformM f (PathQuadraticBezierCurveTo p1 p2)
          = PathQuadraticBezierCurveTo <$> f p1 <*> f p2
    In the instance declaration for ‘Transformable PathCommand’
hvr commented 7 years ago

I've already edited the meta-data at

So there's no immediate need to upload a new release, unless you want to restore support GHC 7.8 & GHC 7.6

Twinside commented 7 years ago

No, it's good, thank you