{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE QuantifiedConstraints #-}
module Ipe.Attributes
( CommonAttributes(..), HasCommonAttributes(..)
, SymbolAttributesF(..), SymbolAttributes
, HasStroke(..), HasFill(..), HasPen(..), HasSymbolSize(..)
, PathAttributesF(..), PathAttributes
, HasDash(..), HasLineCap(..), HasLineJoin(..), HasFillRule(..)
, HasArrow(..), HasRArrow(..), HasStrokeOpacity(..), HasOpacity(..)
, HasTiling(..), HasGradient(..)
, GroupAttributesF(..), GroupAttributes
, HasClip(..)
, TextAttributesF(..), TextAttributes
, HasTextSize(..), HasTextWidth(..), HasTextHeight(..), HasDepth(..)
, HasHAlign(..), HasVAlign(..), HasStyle(..)
, ImageAttributes
, AttributeNames(..)
, mkAttrs, applyAttrs
, traverseCommon, traverseText, traversePath, traverseSymbol, traverseGroup
) where
import HGeometry.Ext
import Data.Functor.Apply
import Data.Coerce
import Data.Kind (Type)
import Data.Functor.Classes
import Ipe.Attributes.Types
import Ipe.Path
import Control.Lens hiding (elements)
import Data.Default
import Data.Text (Text)
import HGeometry.Matrix
import Ipe.Value
import GHC.Generics (Generic)
import Ipe.Color
import Barbies
import Barbies.Constraints (Dict(..))
import Ipe.Layer
import Ipe.Attributes.Types
type ConversionError = String
class IpeReadText t
instance IpeReadText r => IpeReadText (Path r)
ipeReadText :: IpeReadText r => Text -> Either ConversionError r
ipeReadText :: forall r. IpeReadText r => Text -> Either ConversionError r
ipeReadText = Text -> Either ConversionError r
forall a. HasCallStack => a
undefined
data CommonAttributes r f = CommonAttributes
{ forall r (f :: * -> *). CommonAttributes r f -> f LayerName
_layer :: f LayerName
, forall r (f :: * -> *). CommonAttributes r f -> f (Matrix 3 3 r)
_matrix :: f (Matrix 3 3 r)
, forall r (f :: * -> *). CommonAttributes r f -> f PinType
_pin :: f PinType
, forall r (f :: * -> *).
CommonAttributes r f -> f TransformationTypes
_transformations :: f TransformationTypes
} deriving ((forall x. CommonAttributes r f -> Rep (CommonAttributes r f) x)
-> (forall x. Rep (CommonAttributes r f) x -> CommonAttributes r f)
-> Generic (CommonAttributes r f)
forall x. Rep (CommonAttributes r f) x -> CommonAttributes r f
forall x. CommonAttributes r f -> Rep (CommonAttributes r f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall r (f :: * -> *) x.
Rep (CommonAttributes r f) x -> CommonAttributes r f
forall r (f :: * -> *) x.
CommonAttributes r f -> Rep (CommonAttributes r f) x
$cfrom :: forall r (f :: * -> *) x.
CommonAttributes r f -> Rep (CommonAttributes r f) x
from :: forall x. CommonAttributes r f -> Rep (CommonAttributes r f) x
$cto :: forall r (f :: * -> *) x.
Rep (CommonAttributes r f) x -> CommonAttributes r f
to :: forall x. Rep (CommonAttributes r f) x -> CommonAttributes r f
Generic)
instance FunctorB (CommonAttributes r)
instance TraversableB (CommonAttributes r)
instance ApplicativeB (CommonAttributes r)
instance ConstraintsB (CommonAttributes r)
deriving instance (Show1 f, Show r) => Show (CommonAttributes r f)
deriving instance (Eq1 f, Eq r) => Eq (CommonAttributes r f)
instance (forall a. Default (f a)) => Default (CommonAttributes r f) where
def :: CommonAttributes r f
def = (forall a. f a) -> CommonAttributes r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> CommonAttributes r f
bpure f a
forall a. f a
forall a. Default a => a
def
instance (forall a. Semigroup (f a)) => Semigroup (CommonAttributes r f) where
CommonAttributes r f
l <> :: CommonAttributes r f
-> CommonAttributes r f -> CommonAttributes r f
<> CommonAttributes r f
r = (forall a. f a -> f a -> f a)
-> CommonAttributes r f
-> CommonAttributes r f
-> CommonAttributes r f
forall {k} (b :: (k -> *) -> *) (f :: k -> *) (g :: k -> *)
(h :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a -> g a -> h a) -> b f -> b g -> b h
bzipWith f a -> f a -> f a
forall a. f a -> f a -> f a
forall a. Semigroup a => a -> a -> a
(<>) CommonAttributes r f
l CommonAttributes r f
r
instance ( (forall a. Monoid (f a))
) => Monoid (CommonAttributes r f) where
mempty :: CommonAttributes r f
mempty = (forall a. f a) -> CommonAttributes r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> CommonAttributes r f
bpure f a
forall a. f a
forall a. Monoid a => a
mempty
type SymbolAttributes r = SymbolAttributesF r Maybe
data SymbolAttributesF r f = SymbolAttributes
{ forall r (f :: * -> *).
SymbolAttributesF r f -> CommonAttributes r f
_commonAttrs :: !(CommonAttributes r f)
, forall r (f :: * -> *). SymbolAttributesF r f -> f (IpeColor r)
_stroke :: f (IpeColor r)
, forall r (f :: * -> *). SymbolAttributesF r f -> f (IpeColor r)
_fill :: f (IpeColor r)
, forall r (f :: * -> *). SymbolAttributesF r f -> f (IpePen r)
_pen :: f (IpePen r)
, forall r (f :: * -> *). SymbolAttributesF r f -> f (IpeSize r)
_symbolSize :: f (IpeSize r)
} deriving ((forall x. SymbolAttributesF r f -> Rep (SymbolAttributesF r f) x)
-> (forall x.
Rep (SymbolAttributesF r f) x -> SymbolAttributesF r f)
-> Generic (SymbolAttributesF r f)
forall x. Rep (SymbolAttributesF r f) x -> SymbolAttributesF r f
forall x. SymbolAttributesF r f -> Rep (SymbolAttributesF r f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall r (f :: * -> *) x.
Rep (SymbolAttributesF r f) x -> SymbolAttributesF r f
forall r (f :: * -> *) x.
SymbolAttributesF r f -> Rep (SymbolAttributesF r f) x
$cfrom :: forall r (f :: * -> *) x.
SymbolAttributesF r f -> Rep (SymbolAttributesF r f) x
from :: forall x. SymbolAttributesF r f -> Rep (SymbolAttributesF r f) x
$cto :: forall r (f :: * -> *) x.
Rep (SymbolAttributesF r f) x -> SymbolAttributesF r f
to :: forall x. Rep (SymbolAttributesF r f) x -> SymbolAttributesF r f
Generic)
instance FunctorB (SymbolAttributesF r)
instance TraversableB (SymbolAttributesF r)
instance ApplicativeB (SymbolAttributesF r)
instance ConstraintsB (SymbolAttributesF r)
deriving instance (Show1 f, Show r) => Show (SymbolAttributesF r f)
deriving instance (Eq1 f, Eq r) => Eq (SymbolAttributesF r f)
instance (forall a. Default (f a)) => Default (SymbolAttributesF r f) where
def :: SymbolAttributesF r f
def = (forall a. f a) -> SymbolAttributesF r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> SymbolAttributesF r f
bpure f a
forall a. f a
forall a. Default a => a
def
type PathAttributes r = PathAttributesF r Maybe
data PathAttributesF r f = PathAttributes
{ forall r (f :: * -> *). PathAttributesF r f -> CommonAttributes r f
_commonAttrs :: !(CommonAttributes r f)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeColor r)
_stroke :: f (IpeColor r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeColor r)
_fill :: f (IpeColor r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpePen r)
_pen :: f (IpePen r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeDash r)
_dash :: f (IpeDash r)
, forall r (f :: * -> *). PathAttributesF r f -> f Int
_lineCap :: f Int
, forall r (f :: * -> *). PathAttributesF r f -> f Int
_lineJoin :: f Int
, forall r (f :: * -> *). PathAttributesF r f -> f FillType
_fillRule :: f FillType
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeArrow r)
_arrow :: f (IpeArrow r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeArrow r)
_rArrow :: f (IpeArrow r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeValue r)
_strokeOpacity :: f (IpeValue r)
, forall r (f :: * -> *). PathAttributesF r f -> f (IpeValue r)
_opacity :: f (IpeValue r)
, forall r (f :: * -> *). PathAttributesF r f -> f Text
_tiling :: f IpeTiling
, forall r (f :: * -> *). PathAttributesF r f -> f Text
_gradient :: f IpeGradient
} deriving ((forall x. PathAttributesF r f -> Rep (PathAttributesF r f) x)
-> (forall x. Rep (PathAttributesF r f) x -> PathAttributesF r f)
-> Generic (PathAttributesF r f)
forall x. Rep (PathAttributesF r f) x -> PathAttributesF r f
forall x. PathAttributesF r f -> Rep (PathAttributesF r f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall r (f :: * -> *) x.
Rep (PathAttributesF r f) x -> PathAttributesF r f
forall r (f :: * -> *) x.
PathAttributesF r f -> Rep (PathAttributesF r f) x
$cfrom :: forall r (f :: * -> *) x.
PathAttributesF r f -> Rep (PathAttributesF r f) x
from :: forall x. PathAttributesF r f -> Rep (PathAttributesF r f) x
$cto :: forall r (f :: * -> *) x.
Rep (PathAttributesF r f) x -> PathAttributesF r f
to :: forall x. Rep (PathAttributesF r f) x -> PathAttributesF r f
Generic)
instance FunctorB (PathAttributesF r)
instance TraversableB (PathAttributesF r)
instance ApplicativeB (PathAttributesF r)
instance ConstraintsB (PathAttributesF r)
deriving instance (Show1 f, Show r) => Show (PathAttributesF r f)
deriving instance (Eq1 f, Eq r) => Eq (PathAttributesF r f)
instance (forall a. Default (f a)) => Default (PathAttributesF r f) where
def :: PathAttributesF r f
def = (forall a. f a) -> PathAttributesF r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> PathAttributesF r f
bpure f a
forall a. f a
forall a. Default a => a
def
type TextAttributes r = TextAttributesF r Maybe
data TextAttributesF r f = TextAttributes
{ forall r (f :: * -> *). TextAttributesF r f -> CommonAttributes r f
_commonAttrs :: !(CommonAttributes r f)
, forall r (f :: * -> *). TextAttributesF r f -> f (IpeColor r)
_stroke :: f (IpeColor r)
, forall r (f :: * -> *). TextAttributesF r f -> f (IpeSize r)
_textSize :: f (IpeSize r)
, forall r (f :: * -> *). TextAttributesF r f -> f (IpeValue r)
_opacity :: f (IpeValue r)
, forall r (f :: * -> *). TextAttributesF r f -> f (TextSizeUnit r)
_textWidth :: f (TextSizeUnit r)
, forall r (f :: * -> *). TextAttributesF r f -> f (TextSizeUnit r)
_textHeight :: f (TextSizeUnit r)
, forall r (f :: * -> *). TextAttributesF r f -> f (TextSizeUnit r)
_depth :: f (TextSizeUnit r)
, forall r (f :: * -> *).
TextAttributesF r f -> f HorizontalAlignment
_hAlign :: f HorizontalAlignment
, forall r (f :: * -> *). TextAttributesF r f -> f VerticalAlignment
_vAlign :: f VerticalAlignment
, forall r (f :: * -> *). TextAttributesF r f -> f Text
_style :: f TeXStyle
} deriving ((forall x. TextAttributesF r f -> Rep (TextAttributesF r f) x)
-> (forall x. Rep (TextAttributesF r f) x -> TextAttributesF r f)
-> Generic (TextAttributesF r f)
forall x. Rep (TextAttributesF r f) x -> TextAttributesF r f
forall x. TextAttributesF r f -> Rep (TextAttributesF r f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall r (f :: * -> *) x.
Rep (TextAttributesF r f) x -> TextAttributesF r f
forall r (f :: * -> *) x.
TextAttributesF r f -> Rep (TextAttributesF r f) x
$cfrom :: forall r (f :: * -> *) x.
TextAttributesF r f -> Rep (TextAttributesF r f) x
from :: forall x. TextAttributesF r f -> Rep (TextAttributesF r f) x
$cto :: forall r (f :: * -> *) x.
Rep (TextAttributesF r f) x -> TextAttributesF r f
to :: forall x. Rep (TextAttributesF r f) x -> TextAttributesF r f
Generic)
instance FunctorB (TextAttributesF r)
instance TraversableB (TextAttributesF r)
instance ApplicativeB (TextAttributesF r)
instance ConstraintsB (TextAttributesF r)
deriving instance (Show1 f, Show r) => Show (TextAttributesF r f)
deriving instance (Eq1 f, Eq r) => Eq (TextAttributesF r f)
instance (forall a. Default (f a)) => Default (TextAttributesF r f) where
def :: TextAttributesF r f
def = (forall a. f a) -> TextAttributesF r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> TextAttributesF r f
bpure f a
forall a. f a
forall a. Default a => a
def
type GroupAttributes r = GroupAttributesF r Maybe
data GroupAttributesF r f = GroupAttributes
{ forall r (f :: * -> *).
GroupAttributesF r f -> CommonAttributes r f
_commonAttrs :: !(CommonAttributes r f)
, forall r (f :: * -> *). GroupAttributesF r f -> f (Path r)
_clip :: f (Path r)
} deriving ((forall x. GroupAttributesF r f -> Rep (GroupAttributesF r f) x)
-> (forall x. Rep (GroupAttributesF r f) x -> GroupAttributesF r f)
-> Generic (GroupAttributesF r f)
forall x. Rep (GroupAttributesF r f) x -> GroupAttributesF r f
forall x. GroupAttributesF r f -> Rep (GroupAttributesF r f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall r (f :: * -> *) x.
Rep (GroupAttributesF r f) x -> GroupAttributesF r f
forall r (f :: * -> *) x.
GroupAttributesF r f -> Rep (GroupAttributesF r f) x
$cfrom :: forall r (f :: * -> *) x.
GroupAttributesF r f -> Rep (GroupAttributesF r f) x
from :: forall x. GroupAttributesF r f -> Rep (GroupAttributesF r f) x
$cto :: forall r (f :: * -> *) x.
Rep (GroupAttributesF r f) x -> GroupAttributesF r f
to :: forall x. Rep (GroupAttributesF r f) x -> GroupAttributesF r f
Generic)
instance FunctorB (GroupAttributesF r)
instance TraversableB (GroupAttributesF r)
instance ApplicativeB (GroupAttributesF r)
instance ConstraintsB (GroupAttributesF r)
deriving instance (Show1 f, Show r) => Show (GroupAttributesF r f)
deriving instance (Eq1 f, Eq r) => Eq (GroupAttributesF r f)
instance (forall a. Default (f a)) => Default (GroupAttributesF r f) where
def :: GroupAttributesF r f
def = (forall a. f a) -> GroupAttributesF r f
forall k (b :: (k -> *) -> *) (f :: k -> *).
ApplicativeB b =>
(forall (a :: k). f a) -> b f
forall (f :: * -> *). (forall a. f a) -> GroupAttributesF r f
bpure f a
forall a. f a
forall a. Default a => a
def
makeClassy ''CommonAttributes
makeFieldsNoPrefix ''SymbolAttributesF
makeFieldsNoPrefix ''PathAttributesF
makeFieldsNoPrefix ''TextAttributesF
makeFieldsNoPrefix ''GroupAttributesF
instance HasCommonAttributes (SymbolAttributesF r f) r f where
commonAttributes :: Lens' (SymbolAttributesF r f) (CommonAttributes r f)
commonAttributes = (CommonAttributes r f -> f (CommonAttributes r f))
-> SymbolAttributesF r f -> f (SymbolAttributesF r f)
forall s a. HasCommonAttrs s a => Lens' s a
Lens' (SymbolAttributesF r f) (CommonAttributes r f)
commonAttrs
instance HasCommonAttributes (PathAttributesF r f) r f where
commonAttributes :: Lens' (PathAttributesF r f) (CommonAttributes r f)
commonAttributes = (CommonAttributes r f -> f (CommonAttributes r f))
-> PathAttributesF r f -> f (PathAttributesF r f)
forall s a. HasCommonAttrs s a => Lens' s a
Lens' (PathAttributesF r f) (CommonAttributes r f)
commonAttrs
instance HasCommonAttributes (TextAttributesF r f) r f where
commonAttributes :: Lens' (TextAttributesF r f) (CommonAttributes r f)
commonAttributes = (CommonAttributes r f -> f (CommonAttributes r f))
-> TextAttributesF r f -> f (TextAttributesF r f)
forall s a. HasCommonAttrs s a => Lens' s a
Lens' (TextAttributesF r f) (CommonAttributes r f)
commonAttrs
instance HasCommonAttributes (GroupAttributesF r f) r f where
commonAttributes :: Lens' (GroupAttributesF r f) (CommonAttributes r f)
commonAttributes = (CommonAttributes r f -> f (CommonAttributes r f))
-> GroupAttributesF r f -> f (GroupAttributesF r f)
forall s a. HasCommonAttrs s a => Lens' s a
Lens' (GroupAttributesF r f) (CommonAttributes r f)
commonAttrs
type ImageAttributes r = CommonAttributes r Maybe
matrix' :: Lens (CommonAttributes r f) (CommonAttributes s f)
(f (Matrix 3 3 r)) (f (Matrix 3 3 s))
matrix' :: forall r (f :: * -> *) s (f :: * -> *).
Functor f =>
(f (Matrix 3 3 r) -> f (f (Matrix 3 3 s)))
-> CommonAttributes r f -> f (CommonAttributes s f)
matrix' f (Matrix 3 3 r) -> f (f (Matrix 3 3 s))
f (CommonAttributes f LayerName
l f (Matrix 3 3 r)
m f PinType
p f TransformationTypes
t) = (\f (Matrix 3 3 s)
m' -> f LayerName
-> f (Matrix 3 3 s)
-> f PinType
-> f TransformationTypes
-> CommonAttributes s f
forall r (f :: * -> *).
f LayerName
-> f (Matrix 3 3 r)
-> f PinType
-> f TransformationTypes
-> CommonAttributes r f
CommonAttributes f LayerName
l f (Matrix 3 3 s)
m' f PinType
p f TransformationTypes
t) (f (Matrix 3 3 s) -> CommonAttributes s f)
-> f (f (Matrix 3 3 s)) -> f (CommonAttributes s f)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> f (Matrix 3 3 r) -> f (f (Matrix 3 3 s))
f f (Matrix 3 3 r)
m
traverseCommon :: forall g f r s. (Applicative g, Traversable f)
=> (r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon :: forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon r -> g s
g CommonAttributes r f
ats = CommonAttributes r f
atsCommonAttributes r f
-> (CommonAttributes r f -> g (CommonAttributes s f))
-> g (CommonAttributes s f)
forall a b. a -> (a -> b) -> b
&(f (Matrix 3 3 r) -> g (f (Matrix 3 3 s)))
-> CommonAttributes r f -> g (CommonAttributes s f)
forall r (f :: * -> *) s (f :: * -> *).
Functor f =>
(f (Matrix 3 3 r) -> f (f (Matrix 3 3 s)))
-> CommonAttributes r f -> f (CommonAttributes s f)
matrix' ((f (Matrix 3 3 r) -> g (f (Matrix 3 3 s)))
-> CommonAttributes r f -> g (CommonAttributes s f))
-> (f (Matrix 3 3 r) -> g (f (Matrix 3 3 s)))
-> CommonAttributes r f
-> g (CommonAttributes s f)
forall {k} (f :: k -> *) s (t :: k) a (b :: k).
LensLike f s t a b -> LensLike f s t a b
%%~ (Matrix 3 3 r -> g (Matrix 3 3 s))
-> f (Matrix 3 3 r) -> g (f (Matrix 3 3 s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse Matrix 3 3 r -> g (Matrix 3 3 s)
g'
where
g' :: Matrix 3 3 r -> g (Matrix 3 3 s)
g' :: Matrix 3 3 r -> g (Matrix 3 3 s)
g' Matrix 3 3 r
m = WrappedApplicative g (Matrix 3 3 s) -> g (Matrix 3 3 s)
forall (f :: * -> *) a. WrappedApplicative f a -> f a
unwrapApplicative (WrappedApplicative g (Matrix 3 3 s) -> g (Matrix 3 3 s))
-> WrappedApplicative g (Matrix 3 3 s) -> g (Matrix 3 3 s)
forall a b. (a -> b) -> a -> b
$ Matrix 3 3 r
mMatrix 3 3 r
-> (Matrix 3 3 r -> WrappedApplicative g (Matrix 3 3 s))
-> WrappedApplicative g (Matrix 3 3 s)
forall a b. a -> (a -> b) -> b
&(r -> WrappedApplicative g s)
-> Matrix 3 3 r -> WrappedApplicative g (Matrix 3 3 s)
(NumType (Matrix 3 3 r)
-> WrappedApplicative g (NumType (Matrix 3 3 s)))
-> Matrix 3 3 r -> WrappedApplicative g (Matrix 3 3 s)
forall matrix matrix'.
HasElements matrix matrix' =>
IndexedTraversal1
(Int, Int) matrix matrix' (NumType matrix) (NumType matrix')
IndexedTraversal1
(Int, Int)
(Matrix 3 3 r)
(Matrix 3 3 s)
(NumType (Matrix 3 3 r))
(NumType (Matrix 3 3 s))
elements ((r -> WrappedApplicative g s)
-> Matrix 3 3 r -> WrappedApplicative g (Matrix 3 3 s))
-> (r -> WrappedApplicative g s)
-> Matrix 3 3 r
-> WrappedApplicative g (Matrix 3 3 s)
forall {k} (f :: k -> *) s (t :: k) a (b :: k).
LensLike f s t a b -> LensLike f s t a b
%%~ g s -> WrappedApplicative g s
forall (f :: * -> *) a. f a -> WrappedApplicative f a
WrapApplicative (g s -> WrappedApplicative g s)
-> (r -> g s) -> r -> WrappedApplicative g s
forall b c a. (b -> c) -> (a -> b) -> a -> c
. r -> g s
g
traverseSymbol :: forall g f r s. (Applicative g, Traversable f)
=> (r -> g s) -> SymbolAttributesF r f -> g (SymbolAttributesF s f)
traverseSymbol :: forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> SymbolAttributesF r f -> g (SymbolAttributesF s f)
traverseSymbol r -> g s
g (SymbolAttributes CommonAttributes r f
common f (IpeColor r)
s f (IpeColor r)
fi f (IpePen r)
p f (IpeSize r)
si) =
CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeSize s)
-> SymbolAttributesF s f
forall r (f :: * -> *).
CommonAttributes r f
-> f (IpeColor r)
-> f (IpeColor r)
-> f (IpePen r)
-> f (IpeSize r)
-> SymbolAttributesF r f
SymbolAttributes (CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeSize s)
-> SymbolAttributesF s f)
-> g (CommonAttributes s f)
-> g (f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeSize s)
-> SymbolAttributesF s f)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon r -> g s
g CommonAttributes r f
common
g (f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeSize s)
-> SymbolAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpeColor s)
-> f (IpePen s) -> f (IpeSize s) -> SymbolAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeColor r -> g (IpeColor s))
-> f (IpeColor r) -> g (f (IpeColor s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeColor r -> g (IpeColor s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeColor a -> f (IpeColor b)
traverse r -> g s
g) f (IpeColor r)
s
g (f (IpeColor s)
-> f (IpePen s) -> f (IpeSize s) -> SymbolAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpePen s) -> f (IpeSize s) -> SymbolAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeColor r -> g (IpeColor s))
-> f (IpeColor r) -> g (f (IpeColor s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeColor r -> g (IpeColor s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeColor a -> f (IpeColor b)
traverse r -> g s
g) f (IpeColor r)
fi
g (f (IpePen s) -> f (IpeSize s) -> SymbolAttributesF s f)
-> g (f (IpePen s)) -> g (f (IpeSize s) -> SymbolAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpePen r -> g (IpePen s)) -> f (IpePen r) -> g (f (IpePen s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpePen r -> g (IpePen s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpePen a -> f (IpePen b)
traverse r -> g s
g) f (IpePen r)
p
g (f (IpeSize s) -> SymbolAttributesF s f)
-> g (f (IpeSize s)) -> g (SymbolAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeSize r -> g (IpeSize s)) -> f (IpeSize r) -> g (f (IpeSize s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeSize r -> g (IpeSize s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeSize a -> f (IpeSize b)
traverse r -> g s
g) f (IpeSize r)
si
traversePath :: forall g f r s. (Applicative g, Traversable f)
=> (r -> g s) -> PathAttributesF r f -> g (PathAttributesF s f)
traversePath :: forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> PathAttributesF r f -> g (PathAttributesF s f)
traversePath r -> g s
g (PathAttributes CommonAttributes r f
common f (IpeColor r)
s f (IpeColor r)
f f (IpePen r)
p f (IpeDash r)
d f Int
lc f Int
lj f FillType
fr f (IpeArrow r)
a f (IpeArrow r)
ra f (IpeValue r)
so f (IpeValue r)
o f Text
t f Text
gr) =
CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f
forall r (f :: * -> *).
CommonAttributes r f
-> f (IpeColor r)
-> f (IpeColor r)
-> f (IpePen r)
-> f (IpeDash r)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow r)
-> f (IpeArrow r)
-> f (IpeValue r)
-> f (IpeValue r)
-> f Text
-> f Text
-> PathAttributesF r f
PathAttributes (CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (CommonAttributes s f)
-> g (f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon r -> g s
g CommonAttributes r f
common
g (f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeColor r -> g (IpeColor s))
-> f (IpeColor r) -> g (f (IpeColor s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeColor r -> g (IpeColor s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeColor a -> f (IpeColor b)
traverse r -> g s
g) f (IpeColor r)
s
g (f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeColor r -> g (IpeColor s))
-> f (IpeColor r) -> g (f (IpeColor s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeColor r -> g (IpeColor s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeColor a -> f (IpeColor b)
traverse r -> g s
g) f (IpeColor r)
f
g (f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpePen s))
-> g (f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpePen r -> g (IpePen s)) -> f (IpePen r) -> g (f (IpePen s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpePen r -> g (IpePen s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpePen a -> f (IpePen b)
traverse r -> g s
g) f (IpePen r)
p
g (f (IpeDash s)
-> f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpeDash s))
-> g (f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeDash r -> g (IpeDash s)) -> f (IpeDash r) -> g (f (IpeDash s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeDash r -> g (IpeDash s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeDash a -> f (IpeDash b)
traverse r -> g s
g) f (IpeDash r)
d
g (f Int
-> f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f Int)
-> g (f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f Int -> g (f Int)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f Int
lc
g (f Int
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f Int)
-> g (f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f Int -> g (f Int)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f Int
lj
g (f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f FillType)
-> g (f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f FillType -> g (f FillType)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f FillType
fr
g (f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpeArrow s))
-> g (f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeArrow r -> g (IpeArrow s))
-> f (IpeArrow r) -> g (f (IpeArrow s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeArrow r -> g (IpeArrow s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeArrow a -> f (IpeArrow b)
traverse r -> g s
g) f (IpeArrow r)
a
g (f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f Text
-> f Text
-> PathAttributesF s f)
-> g (f (IpeArrow s))
-> g (f (IpeValue s)
-> f (IpeValue s) -> f Text -> f Text -> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeArrow r -> g (IpeArrow s))
-> f (IpeArrow r) -> g (f (IpeArrow s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeArrow r -> g (IpeArrow s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeArrow a -> f (IpeArrow b)
traverse r -> g s
g) f (IpeArrow r)
ra
g (f (IpeValue s)
-> f (IpeValue s) -> f Text -> f Text -> PathAttributesF s f)
-> g (f (IpeValue s))
-> g (f (IpeValue s) -> f Text -> f Text -> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeValue r -> g (IpeValue s))
-> f (IpeValue r) -> g (f (IpeValue s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeValue r -> g (IpeValue s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeValue a -> f (IpeValue b)
traverse r -> g s
g) f (IpeValue r)
so
g (f (IpeValue s) -> f Text -> f Text -> PathAttributesF s f)
-> g (f (IpeValue s))
-> g (f Text -> f Text -> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeValue r -> g (IpeValue s))
-> f (IpeValue r) -> g (f (IpeValue s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeValue r -> g (IpeValue s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeValue a -> f (IpeValue b)
traverse r -> g s
g) f (IpeValue r)
o
g (f Text -> f Text -> PathAttributesF s f)
-> g (f Text) -> g (f Text -> PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f Text -> g (f Text)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f Text
t
g (f Text -> PathAttributesF s f)
-> g (f Text) -> g (PathAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f Text -> g (f Text)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f Text
gr
traverseText :: forall g f r s. (Applicative g, Traversable f)
=> (r -> g s) -> TextAttributesF r f -> g (TextAttributesF s f)
traverseText :: forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> TextAttributesF r f -> g (TextAttributesF s f)
traverseText r -> g s
g (TextAttributes CommonAttributes r f
common f (IpeColor r)
s f (IpeSize r)
sz f (IpeValue r)
o f (TextSizeUnit r)
w f (TextSizeUnit r)
h f (TextSizeUnit r)
d f HorizontalAlignment
ha f VerticalAlignment
va f Text
st) =
CommonAttributes s f
-> f (IpeColor s)
-> f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f
forall r (f :: * -> *).
CommonAttributes r f
-> f (IpeColor r)
-> f (IpeSize r)
-> f (IpeValue r)
-> f (TextSizeUnit r)
-> f (TextSizeUnit r)
-> f (TextSizeUnit r)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF r f
TextAttributes (CommonAttributes s f
-> f (IpeColor s)
-> f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (CommonAttributes s f)
-> g (f (IpeColor s)
-> f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon r -> g s
g CommonAttributes r f
common
g (f (IpeColor s)
-> f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeColor r -> g (IpeColor s))
-> f (IpeColor r) -> g (f (IpeColor s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeColor r -> g (IpeColor s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeColor a -> f (IpeColor b)
traverse r -> g s
g) f (IpeColor r)
s
g (f (IpeSize s)
-> f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (IpeSize s))
-> g (f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeSize r -> g (IpeSize s)) -> f (IpeSize r) -> g (f (IpeSize s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeSize r -> g (IpeSize s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeSize a -> f (IpeSize b)
traverse r -> g s
g) f (IpeSize r)
sz
g (f (IpeValue s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (IpeValue s))
-> g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (IpeValue r -> g (IpeValue s))
-> f (IpeValue r) -> g (f (IpeValue s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> IpeValue r -> g (IpeValue s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> IpeValue a -> f (IpeValue b)
traverse r -> g s
g) f (IpeValue r)
o
g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (TextSizeUnit r -> g (TextSizeUnit s))
-> f (TextSizeUnit r) -> g (f (TextSizeUnit s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> TextSizeUnit r -> g (TextSizeUnit s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> TextSizeUnit a -> f (TextSizeUnit b)
traverse r -> g s
g) f (TextSizeUnit r)
w
g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (TextSizeUnit r -> g (TextSizeUnit s))
-> f (TextSizeUnit r) -> g (f (TextSizeUnit s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> TextSizeUnit r -> g (TextSizeUnit s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> TextSizeUnit a -> f (TextSizeUnit b)
traverse r -> g s
g) f (TextSizeUnit r)
h
g (f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f Text
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f HorizontalAlignment
-> f VerticalAlignment -> f Text -> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (TextSizeUnit r -> g (TextSizeUnit s))
-> f (TextSizeUnit r) -> g (f (TextSizeUnit s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> TextSizeUnit r -> g (TextSizeUnit s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> TextSizeUnit a -> f (TextSizeUnit b)
traverse r -> g s
g) f (TextSizeUnit r)
d
g (f HorizontalAlignment
-> f VerticalAlignment -> f Text -> TextAttributesF s f)
-> g (f HorizontalAlignment)
-> g (f VerticalAlignment -> f Text -> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f HorizontalAlignment -> g (f HorizontalAlignment)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f HorizontalAlignment
ha
g (f VerticalAlignment -> f Text -> TextAttributesF s f)
-> g (f VerticalAlignment) -> g (f Text -> TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f VerticalAlignment -> g (f VerticalAlignment)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f VerticalAlignment
va
g (f Text -> TextAttributesF s f)
-> g (f Text) -> g (TextAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> f Text -> g (f Text)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f Text
st
traverseGroup :: forall g f r s. (Applicative g, Traversable f)
=> (r -> g s) -> GroupAttributesF r f -> g (GroupAttributesF s f)
traverseGroup :: forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> GroupAttributesF r f -> g (GroupAttributesF s f)
traverseGroup r -> g s
g (GroupAttributes CommonAttributes r f
common f (Path r)
c) = CommonAttributes s f -> f (Path s) -> GroupAttributesF s f
forall r (f :: * -> *).
CommonAttributes r f -> f (Path r) -> GroupAttributesF r f
GroupAttributes (CommonAttributes s f -> f (Path s) -> GroupAttributesF s f)
-> g (CommonAttributes s f)
-> g (f (Path s) -> GroupAttributesF s f)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
forall (g :: * -> *) (f :: * -> *) r s.
(Applicative g, Traversable f) =>
(r -> g s) -> CommonAttributes r f -> g (CommonAttributes s f)
traverseCommon r -> g s
g CommonAttributes r f
common
g (f (Path s) -> GroupAttributesF s f)
-> g (f (Path s)) -> g (GroupAttributesF s f)
forall a b. g (a -> b) -> g a -> g b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Path r -> g (Path s)) -> f (Path r) -> g (f (Path s))
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> f a -> f (f b)
traverse ((r -> g s) -> Path r -> g (Path s)
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> Path a -> f (Path b)
traverse r -> g s
g) f (Path r)
c
class AttributeNames ats where
attributeNames :: ats (Const Text)
instance AttributeNames (CommonAttributes r) where
attributeNames :: CommonAttributes r (Const Text)
attributeNames = CommonAttributes
{ _layer :: Const Text LayerName
_layer = Text -> Const Text LayerName
forall {k} a (b :: k). a -> Const a b
Const Text
"layer"
, _matrix :: Const Text (Matrix 3 3 r)
_matrix = Text -> Const Text (Matrix 3 3 r)
forall {k} a (b :: k). a -> Const a b
Const Text
"matrix"
, _pin :: Const Text PinType
_pin = Text -> Const Text PinType
forall {k} a (b :: k). a -> Const a b
Const Text
"pin"
, _transformations :: Const Text TransformationTypes
_transformations = Text -> Const Text TransformationTypes
forall {k} a (b :: k). a -> Const a b
Const Text
"transformations"
}
instance AttributeNames (SymbolAttributesF r) where
attributeNames :: SymbolAttributesF r (Const Text)
attributeNames = SymbolAttributes
{ _commonAttrs :: CommonAttributes r (Const Text)
_commonAttrs = CommonAttributes r (Const Text)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const Text)
attributeNames
, _stroke :: Const Text (IpeColor r)
_stroke = Text -> Const Text (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const Text
"stroke"
, _fill :: Const Text (IpeColor r)
_fill = Text -> Const Text (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const Text
"fill"
, _pen :: Const Text (IpePen r)
_pen = Text -> Const Text (IpePen r)
forall {k} a (b :: k). a -> Const a b
Const Text
"pen"
, _symbolSize :: Const Text (IpeSize r)
_symbolSize = Text -> Const Text (IpeSize r)
forall {k} a (b :: k). a -> Const a b
Const Text
"size"
}
instance AttributeNames (GroupAttributesF r) where
attributeNames :: GroupAttributesF r (Const Text)
attributeNames = GroupAttributes
{ _commonAttrs :: CommonAttributes r (Const Text)
_commonAttrs = CommonAttributes r (Const Text)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const Text)
attributeNames
, _clip :: Const Text (Path r)
_clip = Text -> Const Text (Path r)
forall {k} a (b :: k). a -> Const a b
Const Text
"clip"
}
instance AttributeNames (PathAttributesF r) where
attributeNames :: PathAttributesF r (Const Text)
attributeNames = PathAttributes
{ _commonAttrs :: CommonAttributes r (Const Text)
_commonAttrs = CommonAttributes r (Const Text)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const Text)
attributeNames
, _stroke :: Const Text (IpeColor r)
_stroke = Text -> Const Text (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const Text
"stroke"
, _fill :: Const Text (IpeColor r)
_fill = Text -> Const Text (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const Text
"fill"
, _pen :: Const Text (IpePen r)
_pen = Text -> Const Text (IpePen r)
forall {k} a (b :: k). a -> Const a b
Const Text
"pen"
, _dash :: Const Text (IpeDash r)
_dash = Text -> Const Text (IpeDash r)
forall {k} a (b :: k). a -> Const a b
Const Text
"dash"
, _lineCap :: Const Text Int
_lineCap = Text -> Const Text Int
forall {k} a (b :: k). a -> Const a b
Const Text
"linecap"
, _lineJoin :: Const Text Int
_lineJoin = Text -> Const Text Int
forall {k} a (b :: k). a -> Const a b
Const Text
"linejoin"
, _fillRule :: Const Text FillType
_fillRule = Text -> Const Text FillType
forall {k} a (b :: k). a -> Const a b
Const Text
"fillrule"
, _arrow :: Const Text (IpeArrow r)
_arrow = Text -> Const Text (IpeArrow r)
forall {k} a (b :: k). a -> Const a b
Const Text
"arrow"
, _rArrow :: Const Text (IpeArrow r)
_rArrow = Text -> Const Text (IpeArrow r)
forall {k} a (b :: k). a -> Const a b
Const Text
"rarrow"
, _strokeOpacity :: Const Text (IpeValue r)
_strokeOpacity = Text -> Const Text (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const Text
"stroke-opacity"
, _opacity :: Const Text (IpeValue r)
_opacity = Text -> Const Text (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const Text
"opacity"
, _tiling :: Const Text Text
_tiling = Text -> Const Text Text
forall {k} a (b :: k). a -> Const a b
Const Text
"tiling"
, _gradient :: Const Text Text
_gradient = Text -> Const Text Text
forall {k} a (b :: k). a -> Const a b
Const Text
"gradient"
}
instance AttributeNames (TextAttributesF r) where
attributeNames :: TextAttributesF r (Const Text)
attributeNames = TextAttributes
{ _commonAttrs :: CommonAttributes r (Const Text)
_commonAttrs = CommonAttributes r (Const Text)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const Text)
attributeNames
, _stroke :: Const Text (IpeColor r)
_stroke = Text -> Const Text (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const Text
"stroke"
, _textSize :: Const Text (IpeSize r)
_textSize = Text -> Const Text (IpeSize r)
forall {k} a (b :: k). a -> Const a b
Const Text
"size"
, _opacity :: Const Text (IpeValue r)
_opacity = Text -> Const Text (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const Text
"opacity"
, _textWidth :: Const Text (TextSizeUnit r)
_textWidth = Text -> Const Text (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const Text
"width"
, _textHeight :: Const Text (TextSizeUnit r)
_textHeight = Text -> Const Text (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const Text
"height"
, _depth :: Const Text (TextSizeUnit r)
_depth = Text -> Const Text (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const Text
"depth"
, _hAlign :: Const Text HorizontalAlignment
_hAlign = Text -> Const Text HorizontalAlignment
forall {k} a (b :: k). a -> Const a b
Const Text
"halign"
, _vAlign :: Const Text VerticalAlignment
_vAlign = Text -> Const Text VerticalAlignment
forall {k} a (b :: k). a -> Const a b
Const Text
"valign"
, _style :: Const Text Text
_style = Text -> Const Text Text
forall {k} a (b :: k). a -> Const a b
Const Text
"style"
}
mkAttrs :: Default at => [at -> at] -> at
mkAttrs :: forall at. Default at => [at -> at] -> at
mkAttrs = ([at -> at] -> at -> at) -> at -> [at -> at] -> at
forall a b c. (a -> b -> c) -> b -> a -> c
flip [at -> at] -> at -> at
forall at. [at -> at] -> at -> at
applyAttrs at
forall a. Default a => a
def
applyAttrs :: [at -> at] -> at -> at
applyAttrs :: forall at. [at -> at] -> at -> at
applyAttrs [at -> at]
ats at
z = (at -> (at -> at) -> at) -> at -> [at -> at] -> at
forall b a. (b -> a -> b) -> b -> [a] -> b
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldl' (((at -> at) -> at -> at) -> at -> (at -> at) -> at
forall a b c. (a -> b -> c) -> b -> a -> c
flip (at -> at) -> at -> at
forall a b. (a -> b) -> a -> b
($)) at
z [at -> at]
ats
instance HasCommonAttributes (g :+ PathAttributesF r f) r f where
commonAttributes :: Lens' (g :+ PathAttributesF r f) (CommonAttributes r f)
commonAttributes = (PathAttributesF r f -> f (PathAttributesF r f))
-> (g :+ PathAttributesF r f) -> f (g :+ PathAttributesF r f)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributesF r f -> f (PathAttributesF r f))
-> (g :+ PathAttributesF r f) -> f (g :+ PathAttributesF r f))
-> ((CommonAttributes r f -> f (CommonAttributes r f))
-> PathAttributesF r f -> f (PathAttributesF r f))
-> (CommonAttributes r f -> f (CommonAttributes r f))
-> (g :+ PathAttributesF r f)
-> f (g :+ PathAttributesF r f)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(CommonAttributes r f -> f (CommonAttributes r f))
-> PathAttributesF r f -> f (PathAttributesF r f)
forall c r (f :: * -> *).
HasCommonAttributes c r f =>
Lens' c (CommonAttributes r f)
Lens' (PathAttributesF r f) (CommonAttributes r f)
commonAttributes
instance HasStroke (g :+ PathAttributes r) (Maybe (IpeColor r)) where
stroke :: Lens' (g :+ PathAttributes r) (Maybe (IpeColor r))
stroke = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasStroke s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeColor r))
stroke
instance HasFill (g :+ PathAttributes r) (Maybe (IpeColor r)) where
fill :: Lens' (g :+ PathAttributes r) (Maybe (IpeColor r))
fill = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasFill s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeColor r))
fill
instance HasPen (g :+ PathAttributes r) (Maybe (IpePen r)) where
pen :: Lens' (g :+ PathAttributes r) (Maybe (IpePen r))
pen = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasPen s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpePen r))
pen
instance HasDash (g :+ PathAttributes r) (Maybe (IpeDash r)) where
dash :: Lens' (g :+ PathAttributes r) (Maybe (IpeDash r))
dash = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeDash r) -> f (Maybe (IpeDash r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeDash r) -> f (Maybe (IpeDash r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeDash r) -> f (Maybe (IpeDash r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasDash s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeDash r))
dash
instance HasLineCap (g :+ PathAttributes r) (Maybe Int) where
lineCap :: Lens' (g :+ PathAttributes r) (Maybe Int)
lineCap = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe Int -> f (Maybe Int))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe Int -> f (Maybe Int))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe Int -> f (Maybe Int))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasLineCap s a => Lens' s a
Lens' (PathAttributes r) (Maybe Int)
lineCap
instance HasLineJoin (g :+ PathAttributes r) (Maybe Int) where
lineJoin :: Lens' (g :+ PathAttributes r) (Maybe Int)
lineJoin = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe Int -> f (Maybe Int))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe Int -> f (Maybe Int))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe Int -> f (Maybe Int))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasLineJoin s a => Lens' s a
Lens' (PathAttributes r) (Maybe Int)
lineJoin
instance HasFillRule (g :+ PathAttributes r) (Maybe FillType) where
fillRule :: Lens' (g :+ PathAttributes r) (Maybe FillType)
fillRule = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe FillType -> f (Maybe FillType))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe FillType -> f (Maybe FillType))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe FillType -> f (Maybe FillType))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasFillRule s a => Lens' s a
Lens' (PathAttributes r) (Maybe FillType)
fillRule
instance HasArrow (g :+ PathAttributes r) (Maybe (IpeArrow r)) where
arrow :: Lens' (g :+ PathAttributes r) (Maybe (IpeArrow r))
arrow = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasArrow s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeArrow r))
arrow
instance HasRArrow (g :+ PathAttributes r) (Maybe (IpeArrow r)) where
rArrow :: Lens' (g :+ PathAttributes r) (Maybe (IpeArrow r))
rArrow = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeArrow r) -> f (Maybe (IpeArrow r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasRArrow s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeArrow r))
rArrow
instance HasStrokeOpacity (g :+ PathAttributes r) (Maybe (IpeValue r)) where
strokeOpacity :: Lens' (g :+ PathAttributes r) (Maybe (IpeValue r))
strokeOpacity = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasStrokeOpacity s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeValue r))
strokeOpacity
instance HasOpacity (g :+ PathAttributes r) (Maybe (IpeValue r)) where
opacity :: Lens' (g :+ PathAttributes r) (Maybe (IpeValue r))
opacity = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasOpacity s a => Lens' s a
Lens' (PathAttributes r) (Maybe (IpeValue r))
opacity
instance HasTiling (g :+ PathAttributes r) (Maybe IpeTiling) where
tiling :: Lens' (g :+ PathAttributes r) (Maybe Text)
tiling = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe Text -> f (Maybe Text))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe Text -> f (Maybe Text))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe Text -> f (Maybe Text))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasTiling s a => Lens' s a
Lens' (PathAttributes r) (Maybe Text)
tiling
instance HasGradient (g :+ PathAttributes r) (Maybe IpeGradient) where
gradient :: Lens' (g :+ PathAttributes r) (Maybe Text)
gradient = (PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((PathAttributes r -> f (PathAttributes r))
-> (g :+ PathAttributes r) -> f (g :+ PathAttributes r))
-> ((Maybe Text -> f (Maybe Text))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe Text -> f (Maybe Text))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe Text -> f (Maybe Text))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasGradient s a => Lens' s a
Lens' (PathAttributes r) (Maybe Text)
gradient
instance HasCommonAttributes (g :+ TextAttributesF r f) r f where
commonAttributes :: Lens' (g :+ TextAttributesF r f) (CommonAttributes r f)
commonAttributes = (TextAttributesF r f -> f (TextAttributesF r f))
-> (g :+ TextAttributesF r f) -> f (g :+ TextAttributesF r f)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributesF r f -> f (TextAttributesF r f))
-> (g :+ TextAttributesF r f) -> f (g :+ TextAttributesF r f))
-> ((CommonAttributes r f -> f (CommonAttributes r f))
-> TextAttributesF r f -> f (TextAttributesF r f))
-> (CommonAttributes r f -> f (CommonAttributes r f))
-> (g :+ TextAttributesF r f)
-> f (g :+ TextAttributesF r f)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(CommonAttributes r f -> f (CommonAttributes r f))
-> TextAttributesF r f -> f (TextAttributesF r f)
forall c r (f :: * -> *).
HasCommonAttributes c r f =>
Lens' c (CommonAttributes r f)
Lens' (TextAttributesF r f) (CommonAttributes r f)
commonAttributes
instance HasStroke (g :+ TextAttributes r) (Maybe (IpeColor r)) where
stroke :: Lens' (g :+ TextAttributes r) (Maybe (IpeColor r))
stroke = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasStroke s a => Lens' s a
Lens' (TextAttributes r) (Maybe (IpeColor r))
stroke
instance HasTextSize (g :+ TextAttributes r) (Maybe (IpeSize r)) where
textSize :: Lens' (g :+ TextAttributes r) (Maybe (IpeSize r))
textSize = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasTextSize s a => Lens' s a
Lens' (TextAttributes r) (Maybe (IpeSize r))
textSize
instance HasOpacity (g :+ TextAttributes r) (Maybe (IpeValue r)) where
opacity :: Lens' (g :+ TextAttributes r) (Maybe (IpeValue r))
opacity = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeValue r) -> f (Maybe (IpeValue r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasOpacity s a => Lens' s a
Lens' (TextAttributes r) (Maybe (IpeValue r))
opacity
instance HasTextWidth (g :+ TextAttributes r) (Maybe (TextSizeUnit r)) where
textWidth :: Lens' (g :+ TextAttributes r) (Maybe (TextSizeUnit r))
textWidth = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasTextWidth s a => Lens' s a
Lens' (TextAttributes r) (Maybe (TextSizeUnit r))
textWidth
instance HasTextHeight (g :+ TextAttributes r) (Maybe (TextSizeUnit r)) where
textHeight :: Lens' (g :+ TextAttributes r) (Maybe (TextSizeUnit r))
textHeight = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasTextHeight s a => Lens' s a
Lens' (TextAttributes r) (Maybe (TextSizeUnit r))
textHeight
instance HasDepth (g :+ TextAttributes r) (Maybe (TextSizeUnit r)) where
depth :: Lens' (g :+ TextAttributes r) (Maybe (TextSizeUnit r))
depth = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (TextSizeUnit r) -> f (Maybe (TextSizeUnit r)))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasDepth s a => Lens' s a
Lens' (TextAttributes r) (Maybe (TextSizeUnit r))
depth
instance HasHAlign (g :+ TextAttributes r) (Maybe HorizontalAlignment) where
hAlign :: Lens' (g :+ TextAttributes r) (Maybe HorizontalAlignment)
hAlign = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe HorizontalAlignment -> f (Maybe HorizontalAlignment))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe HorizontalAlignment -> f (Maybe HorizontalAlignment))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe HorizontalAlignment -> f (Maybe HorizontalAlignment))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasHAlign s a => Lens' s a
Lens' (TextAttributes r) (Maybe HorizontalAlignment)
hAlign
instance HasVAlign (g :+ TextAttributes r) (Maybe VerticalAlignment) where
vAlign :: Lens' (g :+ TextAttributes r) (Maybe VerticalAlignment)
vAlign = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe VerticalAlignment -> f (Maybe VerticalAlignment))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe VerticalAlignment -> f (Maybe VerticalAlignment))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe VerticalAlignment -> f (Maybe VerticalAlignment))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasVAlign s a => Lens' s a
Lens' (TextAttributes r) (Maybe VerticalAlignment)
vAlign
instance HasStyle (g :+ TextAttributes r) (Maybe TeXStyle) where
style :: Lens' (g :+ TextAttributes r) (Maybe Text)
style = (TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((TextAttributes r -> f (TextAttributes r))
-> (g :+ TextAttributes r) -> f (g :+ TextAttributes r))
-> ((Maybe Text -> f (Maybe Text))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe Text -> f (Maybe Text))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe Text -> f (Maybe Text))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasStyle s a => Lens' s a
Lens' (TextAttributes r) (Maybe Text)
style
instance HasCommonAttributes (g :+ SymbolAttributesF r f) r f where
commonAttributes :: Lens' (g :+ SymbolAttributesF r f) (CommonAttributes r f)
commonAttributes = (SymbolAttributesF r f -> f (SymbolAttributesF r f))
-> (g :+ SymbolAttributesF r f) -> f (g :+ SymbolAttributesF r f)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((SymbolAttributesF r f -> f (SymbolAttributesF r f))
-> (g :+ SymbolAttributesF r f) -> f (g :+ SymbolAttributesF r f))
-> ((CommonAttributes r f -> f (CommonAttributes r f))
-> SymbolAttributesF r f -> f (SymbolAttributesF r f))
-> (CommonAttributes r f -> f (CommonAttributes r f))
-> (g :+ SymbolAttributesF r f)
-> f (g :+ SymbolAttributesF r f)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(CommonAttributes r f -> f (CommonAttributes r f))
-> SymbolAttributesF r f -> f (SymbolAttributesF r f)
forall c r (f :: * -> *).
HasCommonAttributes c r f =>
Lens' c (CommonAttributes r f)
Lens' (SymbolAttributesF r f) (CommonAttributes r f)
commonAttributes
instance HasStroke (g :+ SymbolAttributes r) (Maybe (IpeColor r)) where
stroke :: Lens' (g :+ SymbolAttributes r) (Maybe (IpeColor r))
stroke = (SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r))
-> ((Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> SymbolAttributes r -> f (SymbolAttributes r))
-> (Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> (g :+ SymbolAttributes r)
-> f (g :+ SymbolAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> SymbolAttributes r -> f (SymbolAttributes r)
forall s a. HasStroke s a => Lens' s a
Lens' (SymbolAttributes r) (Maybe (IpeColor r))
stroke
instance HasFill (g :+ SymbolAttributes r) (Maybe (IpeColor r)) where
fill :: Lens' (g :+ SymbolAttributes r) (Maybe (IpeColor r))
fill = (SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r))
-> ((Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> SymbolAttributes r -> f (SymbolAttributes r))
-> (Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> (g :+ SymbolAttributes r)
-> f (g :+ SymbolAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeColor r) -> f (Maybe (IpeColor r)))
-> SymbolAttributes r -> f (SymbolAttributes r)
forall s a. HasFill s a => Lens' s a
Lens' (SymbolAttributes r) (Maybe (IpeColor r))
fill
instance HasPen (g :+ SymbolAttributes r) (Maybe (IpePen r)) where
pen :: Lens' (g :+ SymbolAttributes r) (Maybe (IpePen r))
pen = (SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r))
-> ((Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> SymbolAttributes r -> f (SymbolAttributes r))
-> (Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> (g :+ SymbolAttributes r)
-> f (g :+ SymbolAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpePen r) -> f (Maybe (IpePen r)))
-> SymbolAttributes r -> f (SymbolAttributes r)
forall s a. HasPen s a => Lens' s a
Lens' (SymbolAttributes r) (Maybe (IpePen r))
pen
instance HasSymbolSize (g :+ SymbolAttributes r) (Maybe (IpeSize r)) where
symbolSize :: Lens' (g :+ SymbolAttributes r) (Maybe (IpeSize r))
symbolSize = (SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((SymbolAttributes r -> f (SymbolAttributes r))
-> (g :+ SymbolAttributes r) -> f (g :+ SymbolAttributes r))
-> ((Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> SymbolAttributes r -> f (SymbolAttributes r))
-> (Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> (g :+ SymbolAttributes r)
-> f (g :+ SymbolAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (IpeSize r) -> f (Maybe (IpeSize r)))
-> SymbolAttributes r -> f (SymbolAttributes r)
forall s a. HasSymbolSize s a => Lens' s a
Lens' (SymbolAttributes r) (Maybe (IpeSize r))
symbolSize
instance HasCommonAttributes (g :+ GroupAttributesF r f) r f where
commonAttributes :: Lens' (g :+ GroupAttributesF r f) (CommonAttributes r f)
commonAttributes = (GroupAttributesF r f -> f (GroupAttributesF r f))
-> (g :+ GroupAttributesF r f) -> f (g :+ GroupAttributesF r f)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((GroupAttributesF r f -> f (GroupAttributesF r f))
-> (g :+ GroupAttributesF r f) -> f (g :+ GroupAttributesF r f))
-> ((CommonAttributes r f -> f (CommonAttributes r f))
-> GroupAttributesF r f -> f (GroupAttributesF r f))
-> (CommonAttributes r f -> f (CommonAttributes r f))
-> (g :+ GroupAttributesF r f)
-> f (g :+ GroupAttributesF r f)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(CommonAttributes r f -> f (CommonAttributes r f))
-> GroupAttributesF r f -> f (GroupAttributesF r f)
forall c r (f :: * -> *).
HasCommonAttributes c r f =>
Lens' c (CommonAttributes r f)
Lens' (GroupAttributesF r f) (CommonAttributes r f)
commonAttributes
instance HasClip (g :+ GroupAttributes r) (Maybe (Path r)) where
clip :: Lens' (g :+ GroupAttributes r) (Maybe (Path r))
clip = (GroupAttributes r -> f (GroupAttributes r))
-> (g :+ GroupAttributes r) -> f (g :+ GroupAttributes r)
forall core extra extra' (f :: * -> *).
Functor f =>
(extra -> f extra') -> (core :+ extra) -> f (core :+ extra')
extra((GroupAttributes r -> f (GroupAttributes r))
-> (g :+ GroupAttributes r) -> f (g :+ GroupAttributes r))
-> ((Maybe (Path r) -> f (Maybe (Path r)))
-> GroupAttributes r -> f (GroupAttributes r))
-> (Maybe (Path r) -> f (Maybe (Path r)))
-> (g :+ GroupAttributes r)
-> f (g :+ GroupAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe (Path r) -> f (Maybe (Path r)))
-> GroupAttributes r -> f (GroupAttributes r)
forall s a. HasClip s a => Lens' s a
Lens' (GroupAttributes r) (Maybe (Path r))
clip