{-# 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
, module Ipe.Attributes.Types
) where
import HGeometry.Ext
import Data.Functor.Apply
import Data.Functor.Classes
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 Ipe.Layer
import Ipe.Attributes.Types
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 LineJoin
_lineJoin :: f LineJoin
, 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 IpeTiling
_tiling :: f IpeTiling
, forall r (f :: * -> *). PathAttributesF r f -> f IpeTiling
_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 IpeTiling
_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 LineJoin
lj f FillType
fr f (IpeArrow r)
a f (IpeArrow r)
ra f (IpeValue r)
so f (IpeValue r)
o f IpeTiling
t f IpeTiling
gr) =
CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f
forall r (f :: * -> *).
CommonAttributes r f
-> f (IpeColor r)
-> f (IpeColor r)
-> f (IpePen r)
-> f (IpeDash r)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow r)
-> f (IpeArrow r)
-> f (IpeValue r)
-> f (IpeValue r)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF r f
PathAttributes (CommonAttributes s f
-> f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (CommonAttributes s f)
-> g (f (IpeColor s)
-> f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpeColor s)
-> f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeColor s))
-> g (f (IpePen s)
-> f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpePen s))
-> g (f (IpeDash s)
-> f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeDash s))
-> g (f Int
-> f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f Int)
-> g (f LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin
-> f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f LineJoin)
-> g (f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 LineJoin -> g (f LineJoin)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f LineJoin
lj
g (f FillType
-> f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f FillType)
-> g (f (IpeArrow s)
-> f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeArrow s))
-> g (f (IpeArrow s)
-> f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeArrow s))
-> g (f (IpeValue s)
-> f (IpeValue s)
-> f IpeTiling
-> f IpeTiling
-> 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 IpeTiling
-> f IpeTiling
-> PathAttributesF s f)
-> g (f (IpeValue s))
-> g (f (IpeValue s)
-> f IpeTiling -> f IpeTiling -> 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 IpeTiling -> f IpeTiling -> PathAttributesF s f)
-> g (f (IpeValue s))
-> g (f IpeTiling -> f IpeTiling -> 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 IpeTiling -> f IpeTiling -> PathAttributesF s f)
-> g (f IpeTiling) -> g (f IpeTiling -> 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 IpeTiling -> g (f IpeTiling)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f IpeTiling
t
g (f IpeTiling -> PathAttributesF s f)
-> g (f IpeTiling) -> 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 IpeTiling -> g (f IpeTiling)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f IpeTiling
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 IpeTiling
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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> 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 IpeTiling
-> TextAttributesF s f)
-> g (f (IpeValue s))
-> g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f IpeTiling
-> 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 IpeTiling
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f (TextSizeUnit s)
-> f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f IpeTiling
-> 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 IpeTiling
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f (TextSizeUnit s)
-> f HorizontalAlignment
-> f VerticalAlignment
-> f IpeTiling
-> 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 IpeTiling
-> TextAttributesF s f)
-> g (f (TextSizeUnit s))
-> g (f HorizontalAlignment
-> f VerticalAlignment -> f IpeTiling -> 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 IpeTiling -> TextAttributesF s f)
-> g (f HorizontalAlignment)
-> g (f VerticalAlignment -> f IpeTiling -> 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 IpeTiling -> TextAttributesF s f)
-> g (f VerticalAlignment)
-> g (f IpeTiling -> 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 IpeTiling -> TextAttributesF s f)
-> g (f IpeTiling) -> 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 IpeTiling -> g (f IpeTiling)
forall a. a -> g a
forall (f :: * -> *) a. Applicative f => a -> f a
pure f IpeTiling
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 IpeTiling)
attributeNames = CommonAttributes
{ _layer :: Const IpeTiling LayerName
_layer = IpeTiling -> Const IpeTiling LayerName
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"layer"
, _matrix :: Const IpeTiling (Matrix 3 3 r)
_matrix = IpeTiling -> Const IpeTiling (Matrix 3 3 r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"matrix"
, _pin :: Const IpeTiling PinType
_pin = IpeTiling -> Const IpeTiling PinType
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"pin"
, _transformations :: Const IpeTiling TransformationTypes
_transformations = IpeTiling -> Const IpeTiling TransformationTypes
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"transformations"
}
instance AttributeNames (SymbolAttributesF r) where
attributeNames :: SymbolAttributesF r (Const IpeTiling)
attributeNames = SymbolAttributes
{ _commonAttrs :: CommonAttributes r (Const IpeTiling)
_commonAttrs = CommonAttributes r (Const IpeTiling)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const IpeTiling)
attributeNames
, _stroke :: Const IpeTiling (IpeColor r)
_stroke = IpeTiling -> Const IpeTiling (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"stroke"
, _fill :: Const IpeTiling (IpeColor r)
_fill = IpeTiling -> Const IpeTiling (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"fill"
, _pen :: Const IpeTiling (IpePen r)
_pen = IpeTiling -> Const IpeTiling (IpePen r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"pen"
, _symbolSize :: Const IpeTiling (IpeSize r)
_symbolSize = IpeTiling -> Const IpeTiling (IpeSize r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"size"
}
instance AttributeNames (GroupAttributesF r) where
attributeNames :: GroupAttributesF r (Const IpeTiling)
attributeNames = GroupAttributes
{ _commonAttrs :: CommonAttributes r (Const IpeTiling)
_commonAttrs = CommonAttributes r (Const IpeTiling)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const IpeTiling)
attributeNames
, _clip :: Const IpeTiling (Path r)
_clip = IpeTiling -> Const IpeTiling (Path r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"clip"
}
instance AttributeNames (PathAttributesF r) where
attributeNames :: PathAttributesF r (Const IpeTiling)
attributeNames = PathAttributes
{ _commonAttrs :: CommonAttributes r (Const IpeTiling)
_commonAttrs = CommonAttributes r (Const IpeTiling)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const IpeTiling)
attributeNames
, _stroke :: Const IpeTiling (IpeColor r)
_stroke = IpeTiling -> Const IpeTiling (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"stroke"
, _fill :: Const IpeTiling (IpeColor r)
_fill = IpeTiling -> Const IpeTiling (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"fill"
, _pen :: Const IpeTiling (IpePen r)
_pen = IpeTiling -> Const IpeTiling (IpePen r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"pen"
, _dash :: Const IpeTiling (IpeDash r)
_dash = IpeTiling -> Const IpeTiling (IpeDash r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"dash"
, _lineCap :: Const IpeTiling Int
_lineCap = IpeTiling -> Const IpeTiling Int
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"linecap"
, _lineJoin :: Const IpeTiling LineJoin
_lineJoin = IpeTiling -> Const IpeTiling LineJoin
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"linejoin"
, _fillRule :: Const IpeTiling FillType
_fillRule = IpeTiling -> Const IpeTiling FillType
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"fillrule"
, _arrow :: Const IpeTiling (IpeArrow r)
_arrow = IpeTiling -> Const IpeTiling (IpeArrow r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"arrow"
, _rArrow :: Const IpeTiling (IpeArrow r)
_rArrow = IpeTiling -> Const IpeTiling (IpeArrow r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"rarrow"
, _strokeOpacity :: Const IpeTiling (IpeValue r)
_strokeOpacity = IpeTiling -> Const IpeTiling (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"stroke-opacity"
, _opacity :: Const IpeTiling (IpeValue r)
_opacity = IpeTiling -> Const IpeTiling (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"opacity"
, _tiling :: Const IpeTiling IpeTiling
_tiling = IpeTiling -> Const IpeTiling IpeTiling
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"tiling"
, _gradient :: Const IpeTiling IpeTiling
_gradient = IpeTiling -> Const IpeTiling IpeTiling
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"gradient"
}
instance AttributeNames (TextAttributesF r) where
attributeNames :: TextAttributesF r (Const IpeTiling)
attributeNames = TextAttributes
{ _commonAttrs :: CommonAttributes r (Const IpeTiling)
_commonAttrs = CommonAttributes r (Const IpeTiling)
forall {k} (ats :: (k -> *) -> *).
AttributeNames ats =>
ats (Const IpeTiling)
attributeNames
, _stroke :: Const IpeTiling (IpeColor r)
_stroke = IpeTiling -> Const IpeTiling (IpeColor r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"stroke"
, _textSize :: Const IpeTiling (IpeSize r)
_textSize = IpeTiling -> Const IpeTiling (IpeSize r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"size"
, _opacity :: Const IpeTiling (IpeValue r)
_opacity = IpeTiling -> Const IpeTiling (IpeValue r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"opacity"
, _textWidth :: Const IpeTiling (TextSizeUnit r)
_textWidth = IpeTiling -> Const IpeTiling (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"width"
, _textHeight :: Const IpeTiling (TextSizeUnit r)
_textHeight = IpeTiling -> Const IpeTiling (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"height"
, _depth :: Const IpeTiling (TextSizeUnit r)
_depth = IpeTiling -> Const IpeTiling (TextSizeUnit r)
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"depth"
, _hAlign :: Const IpeTiling HorizontalAlignment
_hAlign = IpeTiling -> Const IpeTiling HorizontalAlignment
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"halign"
, _vAlign :: Const IpeTiling VerticalAlignment
_vAlign = IpeTiling -> Const IpeTiling VerticalAlignment
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"valign"
, _style :: Const IpeTiling IpeTiling
_style = IpeTiling -> Const IpeTiling IpeTiling
forall {k} a (b :: k). a -> Const a b
Const IpeTiling
"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 LineJoin) where
lineJoin :: Lens' (g :+ PathAttributes r) (Maybe LineJoin)
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 LineJoin -> f (Maybe LineJoin))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe LineJoin -> f (Maybe LineJoin))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe LineJoin -> f (Maybe LineJoin))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasLineJoin s a => Lens' s a
Lens' (PathAttributes r) (Maybe LineJoin)
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 IpeTiling)
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 IpeTiling -> f (Maybe IpeTiling))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe IpeTiling -> f (Maybe IpeTiling))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe IpeTiling -> f (Maybe IpeTiling))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasTiling s a => Lens' s a
Lens' (PathAttributes r) (Maybe IpeTiling)
tiling
instance HasGradient (g :+ PathAttributes r) (Maybe IpeGradient) where
gradient :: Lens' (g :+ PathAttributes r) (Maybe IpeTiling)
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 IpeTiling -> f (Maybe IpeTiling))
-> PathAttributes r -> f (PathAttributes r))
-> (Maybe IpeTiling -> f (Maybe IpeTiling))
-> (g :+ PathAttributes r)
-> f (g :+ PathAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe IpeTiling -> f (Maybe IpeTiling))
-> PathAttributes r -> f (PathAttributes r)
forall s a. HasGradient s a => Lens' s a
Lens' (PathAttributes r) (Maybe IpeTiling)
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 IpeTiling)
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 IpeTiling -> f (Maybe IpeTiling))
-> TextAttributes r -> f (TextAttributes r))
-> (Maybe IpeTiling -> f (Maybe IpeTiling))
-> (g :+ TextAttributes r)
-> f (g :+ TextAttributes r)
forall b c a. (b -> c) -> (a -> b) -> a -> c
.(Maybe IpeTiling -> f (Maybe IpeTiling))
-> TextAttributes r -> f (TextAttributes r)
forall s a. HasStyle s a => Lens' s a
Lens' (TextAttributes r) (Maybe IpeTiling)
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