@@ -32,7 +32,8 @@ import Data.Data (Data(..), Typeable, mkConstr, mkDataT
3232import qualified Data.HashMap.Strict as HashMap
3333import Data.Map (Map)
3434import qualified Data.Map as Map
35−import Data.Monoid
35+import Data.Monoid (Monoid (..))
36+import Data.Semigroup (Semigroup (..))
3637import Data.Scientific (Scientific)
3738import Data.Set (Set)
3839import Data.String (IsString(..))
@@ -303,7 +304,7 @@ data Operation = Operation
303304 } deriving (Eq, Show, Generic, Data, Typeable)
304305
305306newtype MimeList = MimeList { getMimeList :: [MediaType] }
306− deriving (Eq, Show, Monoid, Typeable)
307+ deriving (Eq, Show, Semigroup, Monoid, Typeable)
307308
308309mimeListConstr :: Constr
309310mimeListConstr = mkConstr mimeListDataType "MimeList" ["getMimeList"] Prefix
@@ -754,7 +755,7 @@ data SecurityScheme = SecurityScheme
754755-- (that is, there is a logical AND between the schemes).
755756newtype SecurityRequirement = SecurityRequirement
756757 { getSecurityRequirement :: InsOrdHashMap Text [Text]
757− } deriving (Eq, Read, Show, Monoid, ToJSON, FromJSON, Data, Typeable)
758+ } deriving (Eq, Read, Show, Semigroup, Monoid, ToJSON, FromJSON, Data, Typeable)
758759
759760-- | Tag name.
760761type TagName = Text
@@ -805,61 +806,89 @@ newtype URL = URL { getUrl :: Text } deriving (Eq, Ord, Show, ToJSON, FromJSON,
805806-- Monoid instances
806807-- =======================================================================
807808
809+instance Semigroup Swagger where
810+ (<>) = genericMappend
808811instance Monoid Swagger where
809812 mempty = genericMempty
810− mappend = genericMappend
813+ mappend = (<>)
811814
815+instance Semigroup Info where
816+ (<>) = genericMappend
812817instance Monoid Info where
813818 mempty = genericMempty
814− mappend = genericMappend
819+ mappend = (<>)
815820
821+instance Semigroup Contact where
822+ (<>) = genericMappend
816823instance Monoid Contact where
817824 mempty = genericMempty
818− mappend = genericMappend
825+ mappend = (<>)
819826
827+instance Semigroup PathItem where
828+ (<>) = genericMappend
820829instance Monoid PathItem where
821830 mempty = genericMempty
822− mappend = genericMappend
831+ mappend = (<>)
823832
833+instance Semigroup Schema where
834+ (<>) = genericMappend
824835instance Monoid Schema where
825836 mempty = genericMempty
826− mappend = genericMappend
837+ mappend = (<>)
827838
839+instance Semigroup (ParamSchema t) where
840+ (<>) = genericMappend
828841instance Monoid (ParamSchema t) where
829842 mempty = genericMempty
830− mappend = genericMappend
843+ mappend = (<>)
831844
845+instance Semigroup Param where
846+ (<>) = genericMappend
832847instance Monoid Param where
833848 mempty = genericMempty
834− mappend = genericMappend
849+ mappend = (<>)
835850
851+instance Semigroup ParamOtherSchema where
852+ (<>) = genericMappend
836853instance Monoid ParamOtherSchema where
837854 mempty = genericMempty
838− mappend = genericMappend
855+ mappend = (<>)
839856
857+instance Semigroup Header where
858+ (<>) = genericMappend
840859instance Monoid Header where
841860 mempty = genericMempty
842− mappend = genericMappend
861+ mappend = (<>)
843862
863+instance Semigroup Responses where
864+ (<>) = genericMappend
844865instance Monoid Responses where
845866 mempty = genericMempty
846− mappend = genericMappend
867+ mappend = (<>)
847868
869+instance Semigroup Response where
870+ (<>) = genericMappend
848871instance Monoid Response where
849872 mempty = genericMempty
850− mappend = genericMappend
873+ mappend = (<>)
851874
875+instance Semigroup ExternalDocs where
876+ (<>) = genericMappend
852877instance Monoid ExternalDocs where
853878 mempty = genericMempty
854− mappend = genericMappend
879+ mappend = (<>)
855880
881+instance Semigroup Operation where
882+ (<>) = genericMappend
856883instance Monoid Operation where
857884 mempty = genericMempty
858− mappend = genericMappend
885+ mappend = (<>)
859886
887+instance Semigroup Example where
888+ (<>) = genericMappend
860889instance Monoid Example where
861890 mempty = genericMempty
862− mappend = genericMappend
891+ mappend = (<>)
863892
864893-- =======================================================================
865894-- SwaggerMonoid helper instances
@@ -893,7 +922,7 @@ instance OVERLAPPING_ SwaggerMonoid (InsOrdHashMap FilePath PathItem) where
893922
894923instance Monoid a => SwaggerMonoid (Referenced a) where
895924 swaggerMempty = Inline mempty
896− swaggerMappend (Inline x) (Inline y) = Inline (x <> y)
925+ swaggerMappend (Inline x) (Inline y) = Inline (mappend x y)
897926 swaggerMappend _ y = y
898927
899928instance SwaggerMonoid ParamAnySchema where