1
1
{-# LANGUAGE AllowAmbiguousTypes #-}
2
2
{-# LANGUAGE DataKinds #-}
3
+ {-# LANGUAGE DeriveGeneric #-}
3
4
{-# LANGUAGE FlexibleContexts #-}
4
5
{-# LANGUAGE FlexibleInstances #-}
5
6
{-# LANGUAGE FunctionalDependencies #-}
6
7
{-# LANGUAGE GADTs #-}
7
8
{-# LANGUAGE LambdaCase #-}
8
9
{-# LANGUAGE RankNTypes #-}
9
10
{-# LANGUAGE ScopedTypeVariables #-}
11
+ {-# LANGUAGE StandaloneDeriving #-}
10
12
{-# LANGUAGE TypeApplications #-}
11
13
{-# LANGUAGE UndecidableInstances #-}
12
14
{-# OPTIONS_GHC -Wno-orphans #-}
@@ -31,13 +33,16 @@ import Cardano.Ledger.State (EraCertState (..), IndividualPoolStake (..), Script
31
33
import Cardano.Ledger.TxIn (TxIn )
32
34
import Cardano.Ledger.Val (Val (coin , modifyCoin , (<+>) ))
33
35
import Data.Default (Default (def ))
36
+ import Data.Functor.Identity (Identity )
34
37
import qualified Data.List as List
35
38
import Data.Map.Strict (Map )
36
39
import qualified Data.Map.Strict as Map
37
40
import Data.Set (Set )
38
41
import qualified Data.Set as Set
42
+ import Data.TreeDiff (ToExpr (toExpr ))
39
43
import Data.Typeable
40
44
import Data.Word (Word64 )
45
+ import GHC.Generics (Generic )
41
46
import GHC.Real (denominator , numerator , (%) )
42
47
import Lens.Micro
43
48
import Numeric.Natural (Natural )
@@ -483,8 +488,8 @@ hashTxAuxDataF (TxAuxDataF _ x) = hashTxAuxData x
483
488
unTxAuxData :: TxAuxDataF era -> TxAuxData era
484
489
unTxAuxData (TxAuxDataF _ x) = x
485
490
486
- instance Show (TxAuxDataF era ) where
487
- show (TxAuxDataF p x) = show ((unReflect pcAuxData p x) :: PDoc )
491
+ instance ToExpr ( TxAuxData era ) => Show (TxAuxDataF era ) where
492
+ show (TxAuxDataF _p x) = show $ toExpr x
488
493
489
494
instance Eq (TxAuxDataF era ) where
490
495
(TxAuxDataF Shelley x) == (TxAuxDataF Shelley y) = x == y
@@ -494,9 +499,6 @@ instance Eq (TxAuxDataF era) where
494
499
(TxAuxDataF Babbage x) == (TxAuxDataF Babbage y) = x == y
495
500
(TxAuxDataF Conway x) == (TxAuxDataF Conway y) = x == y
496
501
497
- pcAuxData :: Proof era -> TxAuxData era -> PDoc
498
- pcAuxData p _x = ppString (" TxAuxData " ++ show p) -- TODO make this more accurate
499
-
500
502
genTxAuxDataF :: Proof era -> Gen (TxAuxDataF era )
501
503
genTxAuxDataF p@ Shelley = TxAuxDataF p <$> suchThat arbitrary (validateTxAuxData (protocolVersion p))
502
504
genTxAuxDataF p@ Allegra = TxAuxDataF p <$> suchThat arbitrary (validateTxAuxData (protocolVersion p))
@@ -513,11 +515,12 @@ data TxF era where
513
515
unTxF :: TxF era -> Tx era
514
516
unTxF (TxF _ x) = x
515
517
516
- instance PrettyA (TxF era ) where
517
- prettyA (TxF p tx) = pcTx p tx
518
+ -- TODO: this feels iffy
519
+ deriving instance Generic (TxF era )
520
+ instance (ToExpr (Proof era ), ToExpr (Tx era )) => ToExpr (TxF era )
518
521
519
- instance PrettyA (PParamsUpdate era ) => Show (TxF era ) where
520
- show (TxF p x) = show ((unReflect pcTx p x) :: PDoc )
522
+ instance ( ToExpr (PParamsUpdate era ), ToExpr ( Tx era ) ) => Show (TxF era ) where
523
+ show (TxF _p x) = show $ toExpr x
521
524
522
525
instance Eq (TxF era ) where
523
526
(TxF Shelley x) == (TxF Shelley y) = x == y
@@ -535,8 +538,8 @@ data TxWitsF era where
535
538
unTxWitsF :: TxWitsF era -> TxWits era
536
539
unTxWitsF (TxWitsF _ x) = x
537
540
538
- instance Show (TxWitsF era ) where
539
- show (TxWitsF p x) = show ((unReflect pcWitnesses p x) :: PDoc )
541
+ instance ToExpr ( TxWits era ) => Show (TxWitsF era ) where
542
+ show (TxWitsF _p x) = show $ toExpr x
540
543
541
544
instance Eq (TxWitsF era ) where
542
545
(TxWitsF Shelley x) == (TxWitsF Shelley y) = x == y
@@ -554,11 +557,12 @@ data TxBodyF era where
554
557
unTxBodyF :: TxBodyF era -> TxBody era
555
558
unTxBodyF (TxBodyF _ x) = x
556
559
557
- instance PrettyA (PParamsUpdate era ) => Show (TxBodyF era ) where
558
- show (TxBodyF p x) = show ((unReflect pcTxBody p x) :: PDoc )
560
+ deriving instance Generic (TxBodyF era )
561
+
562
+ instance (ToExpr (TxBody era ), ToExpr (PParamsUpdate era )) => Show (TxBodyF era ) where
563
+ show (TxBodyF _p x) = show $ toExpr x
559
564
560
- instance PrettyA (TxBodyF era ) where
561
- prettyA (TxBodyF p x) = unReflect pcTxBody p x
565
+ instance (ToExpr (TxBody era ), ToExpr (Proof era )) => ToExpr (TxBodyF era )
562
566
563
567
instance Eq (TxBodyF era ) where
564
568
(TxBodyF Shelley x) == (TxBodyF Shelley y) = x == y
@@ -575,11 +579,11 @@ data TxCertF era where
575
579
unTxCertF :: TxCertF era -> TxCert era
576
580
unTxCertF (TxCertF _ x) = x
577
581
578
- instance PrettyA (TxCertF era ) where
579
- prettyA ( TxCertF p x) = pcTxCert p x
582
+ deriving instance Generic (TxCertF era )
583
+ instance ( ToExpr ( Proof era ), ToExpr ( TxCert era )) => ToExpr ( TxCertF era )
580
584
581
- instance Show (TxCertF era ) where
582
- show (TxCertF p x) = show (pcTxCert p x)
585
+ instance ToExpr ( TxCert era ) => Show (TxCertF era ) where
586
+ show (TxCertF _p x) = show $ toExpr x
583
587
584
588
instance Eq (TxCertF era ) where
585
589
(TxCertF Shelley x) == (TxCertF Shelley y) = x == y
@@ -602,11 +606,11 @@ data PlutusPointerF era where
602
606
unPlutusPointerF :: PlutusPointerF era -> PlutusPurpose AsIx era
603
607
unPlutusPointerF (PlutusPointerF _ pp) = pp
604
608
605
- instance Show (PlutusPurposeF era ) where
606
- show (PlutusPurposeF p x) = unReflect ( \ _ -> show (ppPlutusPurposeAsIxItem x)) p
609
+ instance ToExpr ( PlutusPurpose AsIxItem era ) => Show (PlutusPurposeF era ) where
610
+ show (PlutusPurposeF _p x) = show $ toExpr x
607
611
608
- instance Show (PlutusPointerF era ) where
609
- show (PlutusPointerF p x) = unReflect ( \ _ -> show (ppPlutusPurposeAsIx x)) p
612
+ instance ToExpr ( PlutusPurpose AsIx era ) => Show (PlutusPointerF era ) where
613
+ show (PlutusPointerF _p x) = show $ toExpr x
610
614
611
615
instance Eq (PlutusPurposeF era ) where
612
616
PlutusPurposeF Alonzo x == PlutusPurposeF Alonzo y = x == y
@@ -633,8 +637,8 @@ data TxOutF era where
633
637
unTxOut :: TxOutF era -> TxOut era
634
638
unTxOut (TxOutF _ x) = x
635
639
636
- instance PrettyA (TxOutF era ) where
637
- prettyA ( TxOutF p x) = unReflect pcTxOut p x
640
+ deriving instance Generic (TxOutF era )
641
+ instance ( ToExpr ( Proof era ), ToExpr ( TxOut era )) => ToExpr ( TxOutF era )
638
642
639
643
instance Eq (TxOutF era ) where
640
644
x1 == x2 = compare x1 x2 == EQ
@@ -657,8 +661,8 @@ instance Ord (TxOutF era) where
657
661
data ValueF era where
658
662
ValueF :: Proof era -> Value era -> ValueF era
659
663
660
- instance PrettyA (ValueF era ) where
661
- prettyA ( ValueF p v) = pcVal p v
664
+ deriving instance Generic (ValueF era )
665
+ instance ( ToExpr ( Proof era ), ToExpr ( Value era )) => ToExpr ( ValueF era )
662
666
663
667
unValue :: ValueF era -> Value era
664
668
unValue (ValueF _ v) = v
@@ -687,8 +691,8 @@ data PParamsF era where
687
691
unPParams :: PParamsF era -> PParams era
688
692
unPParams (PParamsF _ p) = p
689
693
690
- instance PrettyA (PParamsF era ) where
691
- prettyA ( PParamsF p x) = unReflect pcPParams p x
694
+ deriving instance Generic (PParamsF era )
695
+ instance ( ToExpr ( PParamsHKD Identity era ), ToExpr ( Proof era )) => ToExpr ( PParamsF era )
692
696
693
697
instance Eq (PParamsF era ) where
694
698
PParamsF p1 x == PParamsF _ y =
@@ -722,8 +726,8 @@ data ProposedPPUpdatesF era where
722
726
unProposedPPUpdates :: ProposedPPUpdatesF era -> PP. ProposedPPUpdates era
723
727
unProposedPPUpdates (ProposedPPUpdatesF _ x) = x
724
728
725
- instance PrettyA ( PParamsUpdate e ) => PrettyA ( ProposedPPUpdatesF e ) where
726
- prettyA ( ProposedPPUpdatesF _p x) = ppProposedPPUpdates x
729
+ deriving instance Generic ( ProposedPPUpdatesF era )
730
+ instance ( ToExpr ( PParamsUpdate e ), ToExpr ( Proof e )) => ToExpr ( ProposedPPUpdatesF e )
727
731
728
732
proposedCoreL ::
729
733
Lens' (PP. ProposedPPUpdates era ) (Map (KeyHash 'Genesis) (PParamsUpdate era ))
@@ -754,8 +758,8 @@ data CertStateF era where
754
758
unCertStateF :: CertStateF era -> CertState era
755
759
unCertStateF (CertStateF _ x) = x
756
760
757
- instance Reflect era => PrettyA (CertStateF era ) where
758
- prettyA ( CertStateF _ x) = pcCertState x
761
+ deriving instance Generic (CertStateF era )
762
+ instance ( ToExpr ( Proof era ), ToExpr ( CertState era )) => ToExpr ( CertStateF era )
759
763
760
764
instance Eq (CertStateF era ) where
761
765
(CertStateF Shelley x) == (CertStateF Shelley y) = x == y
@@ -798,11 +802,11 @@ putPPUP Conway _ = Gov.emptyGovState @era
798
802
liftUTxO :: Map TxIn (TxOutF era ) -> UTxO era
799
803
liftUTxO m = UTxO (Map. map unTxOut m)
800
804
801
- instance Show (TxOutF era ) where
802
- show (TxOutF p t) = show (unReflect pcTxOut p t :: PDoc )
805
+ instance ToExpr ( TxOut era ) => Show (TxOutF era ) where
806
+ show (TxOutF _p t) = show $ toExpr t
803
807
804
- instance Show (ValueF era ) where
805
- show (ValueF p t) = show (pcVal p t)
808
+ instance ToExpr ( Value era ) => Show (ValueF era ) where
809
+ show (ValueF _p t) = show $ toExpr t
806
810
807
811
instance Show (PParamsF era ) where
808
812
show (PParamsF _ _) = " PParamsF ..."
@@ -898,8 +902,8 @@ data ScriptsNeededF era where
898
902
unScriptsNeededF :: ScriptsNeededF era -> ScriptsNeeded era
899
903
unScriptsNeededF (ScriptsNeededF _ v) = v
900
904
901
- instance Show (ScriptsNeededF era ) where
902
- show (ScriptsNeededF p t) = unReflect ( \ _ -> show (pcScriptsNeeded p t)) p
905
+ instance ToExpr ( ScriptsNeeded era ) => Show (ScriptsNeededF era ) where
906
+ show (ScriptsNeededF _p t) = show $ toExpr t
903
907
904
908
-- ========================
905
909
@@ -909,11 +913,11 @@ data ScriptF era where
909
913
unScriptF :: ScriptF era -> Script era
910
914
unScriptF (ScriptF _ v) = v
911
915
912
- instance PrettyA (ScriptF era ) where
913
- prettyA ( ScriptF p x) = unReflect pcScript p x
916
+ deriving instance Generic (ScriptF era )
917
+ instance ( ToExpr ( Proof era ), ToExpr ( Script era )) => ToExpr ( ScriptF era )
914
918
915
- instance Show (ScriptF era ) where
916
- show (ScriptF p t) = show ((unReflect pcScript p t) :: PDoc )
919
+ instance ToExpr ( Script era ) => Show (ScriptF era ) where
920
+ show (ScriptF _p t) = show $ toExpr t
917
921
918
922
instance Eq (ScriptF era ) where
919
923
(ScriptF Shelley x) == (ScriptF Shelley y) = x == y
0 commit comments