{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} -- | Complex Type: @ptsegType@ module Data.Geo.GPX.Type.Ptseg( Ptseg , ptseg , runPtseg ) where import Data.Geo.GPX.Type.Pt import Text.XML.HXT.Arrow.Pickle import Control.Newtype newtype Ptseg = Ptseg [Pt] deriving (Eq, Ord) ptseg :: [Pt] -- ^ The points (pt). -> Ptseg ptseg = Ptseg runPtseg :: Ptseg -> [Pt] runPtseg (Ptseg p) = p instance XmlPickler Ptseg where xpickle = xpWrap (ptseg, \(Ptseg k) -> k) (xpList (xpElem "pt" xpickle)) instance Newtype Ptseg [Pt] where pack = Ptseg unpack (Ptseg x) = x