Merge branch '144-ghc-update' of gitlab.uniworx.de:fradrive/fradrive into 144-ghc-update
This commit is contained in:
commit
6601eb600b
@ -17,5 +17,5 @@ import Control.Lens
|
||||
import Data.Proxy
|
||||
|
||||
|
||||
instance (ToSample a, Hashable a, Eq a) => ToSample (HashSet a) where
|
||||
instance (ToSample a, Hashable a) => ToSample (HashSet a) where
|
||||
toSamples _ = over _2 HashSet.fromList <$> toSamples (Proxy @[a])
|
||||
|
||||
@ -8,10 +8,11 @@ module Data.Set.Instances
|
||||
(
|
||||
) where
|
||||
|
||||
import ClassyPrelude
|
||||
--import ClassyPrelude
|
||||
|
||||
import qualified Data.Set as Set
|
||||
--import qualified Data.Set as Set
|
||||
|
||||
|
||||
instance (Ord a, Hashable a) => Hashable (Set a) where
|
||||
hashWithSalt s xs = hashWithSalt s $ Set.toAscList xs
|
||||
-- Duplicate instance declaration: Defined in ‘hashable-1.4.0.0:Data.Hashable.Class
|
||||
--instance (Ord a, Hashable a) => Hashable (Set a) where
|
||||
-- hashWithSalt s xs = hashWithSalt s $ Set.toAscList xs
|
||||
|
||||
@ -30,11 +30,13 @@ import qualified Language.Haskell.TH as TH
|
||||
import qualified Language.Haskell.TH.Syntax as TH
|
||||
|
||||
|
||||
instance Hashable DiffTime where
|
||||
hashWithSalt s = hashWithSalt s . toRational
|
||||
-- Duplicate instance declaration: Defined in ‘time-compat-1.9.6.1:Data.Time.Orphans’
|
||||
--instance Hashable DiffTime where
|
||||
-- hashWithSalt s = hashWithSalt s . toRational
|
||||
|
||||
instance Hashable NominalDiffTime where
|
||||
hashWithSalt s = hashWithSalt s . toRational
|
||||
-- Duplicate instance declaration: Defined in ‘time-compat-1.9.6.1:Data.Time.Orphans’
|
||||
--instance Hashable NominalDiffTime where
|
||||
-- hashWithSalt s = hashWithSalt s . toRational
|
||||
|
||||
instance PersistField NominalDiffTime where
|
||||
toPersistValue = toPersistValue . toRational
|
||||
@ -45,7 +47,8 @@ instance PersistFieldSql NominalDiffTime where
|
||||
|
||||
deriving instance Generic Day
|
||||
deriving instance Generic UTCTime
|
||||
instance Hashable UTCTime
|
||||
-- Duplicate instance declaration: Defined in ‘time-compat-1.9.6.1:Data.Time.Orphans’
|
||||
--instance Hashable UTCTime
|
||||
|
||||
instance PathPiece UTCTime where
|
||||
toPathPiece = pack . iso8601Show
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
-- SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
-- SPDX-FileCopyrightText: 2024 Stephan Barth <stephan.barth@uniworx.de>, 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@ -12,6 +12,8 @@ import ClassyPrelude
|
||||
|
||||
import Data.Universe
|
||||
|
||||
instance (Eq b, Finite a) => Eq (a -> b) where
|
||||
(==) f g = [ f k | k <- universeF ] == [ g k | k <- universeF ]
|
||||
|
||||
instance (Hashable a, Hashable b, Finite a) => Hashable (a -> b) where
|
||||
hashWithSalt s f = s `hashWithSalt` [ (k, f k) | k <- universeF ]
|
||||
|
||||
@ -22,10 +22,10 @@ import Data.Universe
|
||||
import Control.Monad.Fail
|
||||
|
||||
|
||||
instance (Eq a, Hashable a, Finite a, ToJSON b, ToJSONKey a) => ToJSON (a -> b) where
|
||||
instance (Hashable a, Finite a, ToJSON b, ToJSONKey a) => ToJSON (a -> b) where
|
||||
toJSON f = toJSON $ HashMap.fromList [(k, f k) | k <- universeF]
|
||||
|
||||
instance (Eq a, Hashable a, Finite a, FromJSON b, FromJSONKey a) => FromJSON (a -> b) where
|
||||
instance (Hashable a, Finite a, FromJSON b, FromJSONKey a) => FromJSON (a -> b) where
|
||||
parseJSON val = asObject <|> asConst
|
||||
where
|
||||
asObject = do
|
||||
|
||||
@ -255,10 +255,10 @@ data AuthContext = AuthContext
|
||||
|
||||
deriving stock instance Eq (AuthId UniWorX) => Eq AuthContext
|
||||
deriving stock instance Ord (AuthId UniWorX) => Ord AuthContext
|
||||
deriving stock instance (Read (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Read AuthContext
|
||||
deriving stock instance (Show (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Show AuthContext
|
||||
deriving stock instance (Read (AuthId UniWorX), Hashable (AuthId UniWorX)) => Read AuthContext
|
||||
deriving stock instance (Show (AuthId UniWorX), Hashable (AuthId UniWorX)) => Show AuthContext
|
||||
deriving anyclass instance Hashable (AuthId UniWorX) => Hashable AuthContext
|
||||
deriving anyclass instance (Binary (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Binary AuthContext
|
||||
deriving anyclass instance (Binary (AuthId UniWorX), Hashable (AuthId UniWorX)) => Binary AuthContext
|
||||
|
||||
getAuthContext :: forall m.
|
||||
( MonadHandler m, HandlerSite m ~ UniWorX
|
||||
|
||||
@ -504,10 +504,10 @@ data NavigationCacheKey
|
||||
|
||||
deriving stock instance Eq (AuthId UniWorX) => Eq NavigationCacheKey
|
||||
deriving stock instance Ord (AuthId UniWorX) => Ord NavigationCacheKey
|
||||
deriving stock instance (Read (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Read NavigationCacheKey
|
||||
deriving stock instance (Show (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Show NavigationCacheKey
|
||||
deriving stock instance (Read (AuthId UniWorX), Hashable (AuthId UniWorX)) => Read NavigationCacheKey
|
||||
deriving stock instance (Show (AuthId UniWorX), Hashable (AuthId UniWorX)) => Show NavigationCacheKey
|
||||
deriving anyclass instance Hashable (AuthId UniWorX) => Hashable NavigationCacheKey
|
||||
deriving anyclass instance (Binary (AuthId UniWorX), Eq (AuthId UniWorX), Hashable (AuthId UniWorX)) => Binary NavigationCacheKey
|
||||
deriving anyclass instance (Binary (AuthId UniWorX), Hashable (AuthId UniWorX)) => Binary NavigationCacheKey
|
||||
|
||||
|
||||
navAccess :: (MonadHandler m, HandlerSite m ~ UniWorX, MonadCatch m, WithRunDB SqlReadBackend (HandlerFor UniWorX) m, BearerAuthSite UniWorX) => Nav -> MaybeT m Nav
|
||||
|
||||
@ -86,10 +86,10 @@ data BearerToken site = BearerToken
|
||||
|
||||
deriving stock instance (Eq (AuthId site), Eq (Route site)) => Eq (BearerToken site)
|
||||
deriving stock instance (Ord (AuthId site), Ord (Route site)) => Ord (BearerToken site)
|
||||
deriving stock instance (Read (AuthId site), Eq (Route site), Hashable (Route site), Read (Route site), Hashable (AuthId site), Eq (AuthId site)) => Read (BearerToken site)
|
||||
deriving stock instance (Read (AuthId site), Hashable (Route site), Read (Route site), Hashable (AuthId site)) => Read (BearerToken site)
|
||||
deriving stock instance (Show (AuthId site), Show (Route site), Hashable (AuthId site)) => Show (BearerToken site)
|
||||
deriving anyclass instance (Hashable (AuthId site), Hashable (Route site)) => Hashable (BearerToken site)
|
||||
deriving anyclass instance (Binary (AuthId site), Binary (Route site), Hashable (Route site), Eq (Route site), Hashable (AuthId site), Eq (AuthId site)) => Binary (BearerToken site)
|
||||
deriving anyclass instance (Binary (AuthId site), Binary (Route site), Hashable (Route site), Hashable (AuthId site)) => Binary (BearerToken site)
|
||||
|
||||
makeLenses_ ''BearerToken
|
||||
instance HasTokenIdentifier (BearerToken site) TokenId where
|
||||
|
||||
@ -1860,11 +1860,11 @@ instance TraversableWithIndex k (MergeHashMap k) where
|
||||
itraverse = _MergeHashMap .> itraverse
|
||||
instance FoldableWithIndex k (MergeHashMap k)
|
||||
|
||||
instance (Eq k, Hashable k, Semigroup v) => Semigroup (MergeHashMap k v) where
|
||||
instance (Hashable k, Semigroup v) => Semigroup (MergeHashMap k v) where
|
||||
(MergeHashMap a) <> (MergeHashMap b) = MergeHashMap $ HashMap.unionWith (<>) a b
|
||||
instance (Eq k, Hashable k, Semigroup v) => Monoid (MergeHashMap k v) where
|
||||
instance (Hashable k, Semigroup v) => Monoid (MergeHashMap k v) where
|
||||
mempty = MergeHashMap HashMap.empty
|
||||
instance (Eq k, Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeHashMap k v) where
|
||||
instance (Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeHashMap k v) where
|
||||
parseJSON = case Aeson.fromJSONKey of
|
||||
Aeson.FromJSONKeyCoerce -> Aeson.withObject "HashMap ~Text" $
|
||||
coerce @(Aeson.Parser (HashMap k v)) @(Aeson.Parser (MergeHashMap k v)) . fmap HashMap.fromList . traverse (\(k, v) -> (coerce @Text @k k, ) <$> parseJSON v Aeson.<?> Aeson.Key k) . HashMap.toList
|
||||
|
||||
Reference in New Issue
Block a user