on master help sign in
Move ToJSON to default signature in ToObject class
39b04b0Leonid Onokhov
katip/src/Katip/Core.hs+3−1
@@ -1,4 +1,5 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DefaultSignatures #-}
2{-# LANGUAGE DeriveFunctor #-}
3{-# LANGUAGE DeriveFunctor #-}
3{-# LANGUAGE DeriveGeneric #-}
4{-# LANGUAGE DeriveGeneric #-}
4{-# LANGUAGE ExistentialQuantification #-}
5{-# LANGUAGE ExistentialQuantification #-}
@@ -367,8 +368,9 @@ instance Monoid PayloadSelection where
367-- a ToJSON instance like:
368-- a ToJSON instance like:
368--
369--
369-- > instance ToObject Foo
370-- > instance ToObject Foo
370−class ToJSON a => ToObject a where
371+class ToObject a where
371 toObject :: a -> A.Object
372 toObject :: a -> A.Object
373+ default toObject :: ToJSON a => a -> A.Object
372 toObject v = case toJSON v of
374 toObject v = case toJSON v of
373 A.Object o -> o
375 A.Object o -> o
374 _ -> mempty
376 _ -> mempty