summaryrefslogtreecommitdiff
path: root/overlays/spm/lib/Data
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/spm/lib/Data')
-rw-r--r--overlays/spm/lib/Data/CaseInsensitive/Instances.hs22
-rw-r--r--overlays/spm/lib/Data/UUID/Instances.hs18
2 files changed, 40 insertions, 0 deletions
diff --git a/overlays/spm/lib/Data/CaseInsensitive/Instances.hs b/overlays/spm/lib/Data/CaseInsensitive/Instances.hs
new file mode 100644
index 00000000..1476b9d9
--- /dev/null
+++ b/overlays/spm/lib/Data/CaseInsensitive/Instances.hs
@@ -0,0 +1,22 @@
1{-# OPTIONS_GHC -fno-warn-orphans #-}
2
3module Data.CaseInsensitive.Instances () where
4
5import Prelude
6
7import Data.CaseInsensitive (CI)
8import qualified Data.CaseInsensitive as CI
9
10import Servant.API.ContentTypes
11
12import Data.Aeson
13
14
15instance MimeRender PlainText a => MimeRender PlainText (CI a) where
16 mimeRender p = mimeRender p . CI.original
17
18instance ToJSON a => ToJSON (CI a) where
19 toJSON = toJSON . CI.original
20
21instance (FromJSON a, CI.FoldCase a) => FromJSON (CI a) where
22 parseJSON = fmap CI.mk . parseJSON
diff --git a/overlays/spm/lib/Data/UUID/Instances.hs b/overlays/spm/lib/Data/UUID/Instances.hs
new file mode 100644
index 00000000..335937d8
--- /dev/null
+++ b/overlays/spm/lib/Data/UUID/Instances.hs
@@ -0,0 +1,18 @@
1{-# OPTIONS_GHC -fno-warn-orphans #-}
2
3module Data.UUID.Instances () where
4
5import Prelude
6import Data.UUID (UUID)
7import qualified Data.UUID as UUID
8import Servant.API.ContentTypes
9
10
11instance MimeRender PlainText UUID where
12 mimeRender p = mimeRender p . UUID.toText
13
14instance MimeRender JSON UUID where
15 mimeRender p = mimeRender p . UUID.toText
16
17instance MimeRender OctetStream UUID where
18 mimeRender p = mimeRender p . UUID.toByteString