{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Data.TreeDiff where import Data.Foldable (Foldable (..)) import Data.Foldable qualified as F import Data.OMap.Strict import Data.OSet.Strict import Test.Cardano.Ledger.Binary.TreeDiff (Expr (..), ToExpr (..)) instance ToExpr a => ToExpr (OSet a) where toExpr :: OSet a -> Expr toExpr OSet a x = ConstructorName -> [Expr] -> Expr App ConstructorName "OSet.fromList" [[a] -> Expr forall a. ToExpr a => a -> Expr toExpr ([a] -> Expr) -> [a] -> Expr forall a b. (a -> b) -> a -> b $ OSet a -> [a] forall a. OSet a -> [a] forall (t :: * -> *) a. Foldable t => t a -> [a] toList OSet a x] instance (HasOKey k v, ToExpr v) => ToExpr (OMap k v) where listToExpr :: [OMap k v] -> Expr listToExpr = [OMap k v] -> Expr forall a. ToExpr a => [a] -> Expr listToExpr ([OMap k v] -> Expr) -> ([OMap k v] -> [OMap k v]) -> [OMap k v] -> Expr forall b c a. (b -> c) -> (a -> b) -> a -> c . [OMap k v] -> [OMap k v] forall a. [a] -> [a] forall (t :: * -> *) a. Foldable t => t a -> [a] F.toList toExpr :: OMap k v -> Expr toExpr = [v] -> Expr forall a. ToExpr a => a -> Expr toExpr ([v] -> Expr) -> (OMap k v -> [v]) -> OMap k v -> Expr forall b c a. (b -> c) -> (a -> b) -> a -> c . OMap k v -> [v] forall a. OMap k a -> [a] forall (t :: * -> *) a. Foldable t => t a -> [a] F.toList