@@ -21,7 +21,7 @@ import System.Directory
2121import Paths_idris
2222
2323ibcVersion :: Word8
24−ibcVersion = 17
24+ibcVersion = 18
2525
2626data IBCFile = IBCFile { ver :: Word8,
2727 sourcefile :: FilePath,
@@ -802,6 +802,202 @@ instance Binary Plicity where
802802 _ -> error "Corrupted binary data for Plicity"
803803
804804
805+instance (Binary t) => Binary (PDecl' t) where
806+ put x
807+ = case x of
808+ PFix x1 x2 x3 -> do putWord8 0
809+ put x1
810+ put x2
811+ put x3
812+ PTy x1 x2 x3 x4 x5 -> do putWord8 1
813+ put x1
814+ put x2
815+ put x3
816+ put x4
817+ put x5
818+ PClauses x1 x2 x3 x4 -> do putWord8 2
819+ put x1
820+ put x2
821+ put x3
822+ put x4
823+ PData x1 x2 x3 -> do putWord8 3
824+ put x1
825+ put x2
826+ put x3
827+ PParams x1 x2 x3 -> do putWord8 4
828+ put x1
829+ put x2
830+ put x3
831+ PNamespace x1 x2 -> do putWord8 5
832+ put x1
833+ put x2
834+ PRecord x1 x2 x3 x4 x5 x6 -> do putWord8 6
835+ put x1
836+ put x2
837+ put x3
838+ put x4
839+ put x5
840+ put x6
841+ PClass x1 x2 x3 x4 x5 x6 -> do putWord8 7
842+ put x1
843+ put x2
844+ put x3
845+ put x4
846+ put x5
847+ put x6
848+ PInstance x1 x2 x3 x4 x5 x6 x7 -> do putWord8 8
849+ put x1
850+ put x2
851+ put x3
852+ put x4
853+ put x5
854+ put x6
855+ put x7
856+ PDSL x1 x2 -> do putWord8 9
857+ put x1
858+ put x2
859+ get
860+ = do i <- getWord8
861+ case i of
862+ 0 -> do x1 <- get
863+ x2 <- get
864+ x3 <- get
865+ return (PFix x1 x2 x3)
866+ 1 -> do x1 <- get
867+ x2 <- get
868+ x3 <- get
869+ x4 <- get
870+ x5 <- get
871+ return (PTy x1 x2 x3 x4 x5)
872+ 2 -> do x1 <- get
873+ x2 <- get
874+ x3 <- get
875+ x4 <- get
876+ return (PClauses x1 x2 x3 x4)
877+ 3 -> do x1 <- get
878+ x2 <- get
879+ x3 <- get
880+ return (PData x1 x2 x3)
881+ 4 -> do x1 <- get
882+ x2 <- get
883+ x3 <- get
884+ return (PParams x1 x2 x3)
885+ 5 -> do x1 <- get
886+ x2 <- get
887+ return (PNamespace x1 x2)
888+ 6 -> do x1 <- get
889+ x2 <- get
890+ x3 <- get
891+ x4 <- get
892+ x5 <- get
893+ x6 <- get
894+ return (PRecord x1 x2 x3 x4 x5 x6)
895+ 7 -> do x1 <- get
896+ x2 <- get
897+ x3 <- get
898+ x4 <- get
899+ x5 <- get
900+ x6 <- get
901+ return (PClass x1 x2 x3 x4 x5 x6)
902+ 8 -> do x1 <- get
903+ x2 <- get
904+ x3 <- get
905+ x4 <- get
906+ x5 <- get
907+ x6 <- get
908+ x7 <- get
909+ return (PInstance x1 x2 x3 x4 x5 x6 x7)
910+ 9 -> do x1 <- get
911+ x2 <- get
912+ return (PDSL x1 x2)
913+ _ -> error "Corrupted binary data for PDecl'"
914+
915+instance Binary SyntaxInfo where
916+ put (Syn x1 x2 x3 x4 x5 x6 x7)
917+ = do put x1
918+ put x2
919+ put x3
920+ put x4
921+ put x5
922+ put x6
923+ put x7
924+ get
925+ = do x1 <- get
926+ x2 <- get
927+ x3 <- get
928+ x4 <- get
929+ x5 <- get
930+ x6 <- get
931+ x7 <- get
932+ return (Syn x1 x2 x3 x4 x5 x6 x7)
933+
934+instance (Binary t) => Binary (PClause' t) where
935+ put x
936+ = case x of
937+ PClause x1 x2 x3 x4 x5 x6 -> do putWord8 0
938+ put x1
939+ put x2
940+ put x3
941+ put x4
942+ put x5
943+ put x6
944+ PWith x1 x2 x3 x4 x5 x6 -> do putWord8 1
945+ put x1
946+ put x2
947+ put x3
948+ put x4
949+ put x5
950+ put x6
951+ PClauseR x1 x2 x3 x4 -> do putWord8 2
952+ put x1
953+ put x2
954+ put x3
955+ put x4
956+ PWithR x1 x2 x3 x4 -> do putWord8 3
957+ put x1
958+ put x2
959+ put x3
960+ put x4
961+ get
962+ = do i <- getWord8
963+ case i of
964+ 0 -> do x1 <- get
965+ x2 <- get
966+ x3 <- get
967+ x4 <- get
968+ x5 <- get
969+ x6 <- get
970+ return (PClause x1 x2 x3 x4 x5 x6)
971+ 1 -> do x1 <- get
972+ x2 <- get
973+ x3 <- get
974+ x4 <- get
975+ x5 <- get
976+ x6 <- get
977+ return (PWith x1 x2 x3 x4 x5 x6)
978+ 2 -> do x1 <- get
979+ x2 <- get
980+ x3 <- get
981+ x4 <- get
982+ return (PClauseR x1 x2 x3 x4)
983+ 3 -> do x1 <- get
984+ x2 <- get
985+ x3 <- get
986+ x4 <- get
987+ return (PWithR x1 x2 x3 x4)
988+ _ -> error "Corrupted binary data for PClause'"
989+
990+instance (Binary t) => Binary (PData' t) where
991+ put (PDatadecl x1 x2 x3)
992+ = do put x1
993+ put x2
994+ put x3
995+ get
996+ = do x1 <- get
997+ x2 <- get
998+ x3 <- get
999+ return (PDatadecl x1 x2 x3)
1000+
8051001instance Binary PTerm where
8061002 put x
8071003 = case x of
@@ -824,53 +1020,61 @@ instance Binary PTerm where
8241020 put x2
8251021 put x3
8261022 put x4
827− PApp x1 x2 x3 -> do putWord8 5
1023+ PTyped x1 x2 -> do putWord8 5
1024+ put x1
1025+ put x2
1026+ PApp x1 x2 x3 -> do putWord8 6
8281027 put x1
8291028 put x2
8301029 put x3
831− PTrue x1 -> do putWord8 6
1030+ PCase x1 x2 x3 -> do putWord8 7
1031+ put x1
1032+ put x2
1033+ put x3
1034+ PTrue x1 -> do putWord8 8
8321035 put x1
833− PFalse x1 -> do putWord8 7
1036+ PFalse x1 -> do putWord8 9
8341037 put x1
835− PRefl x1 -> do putWord8 8
1038+ PRefl x1 -> do putWord8 10
8361039 put x1
837− PResolveTC x1 -> do putWord8 9
1040+ PResolveTC x1 -> do putWord8 11
8381041 put x1
839− PEq x1 x2 x3 -> do putWord8 10
1042+ PEq x1 x2 x3 -> do putWord8 12
8401043 put x1
8411044 put x2
8421045 put x3
843− PPair x1 x2 x3 -> do putWord8 11
1046+ PPair x1 x2 x3 -> do putWord8 13
8441047 put x1
8451048 put x2
8461049 put x3
847− PDPair x1 x2 x3 x4 -> do putWord8 12
1050+ PDPair x1 x2 x3 x4 -> do putWord8 14
8481051 put x1
8491052 put x2
8501053 put x3
8511054 put x4
852− PAlternative x1 x2 -> do putWord8 13
1055+ PAlternative x1 x2 -> do putWord8 15
8531056 put x1
8541057 put x2
855− PHidden x1 -> do putWord8 14
1058+ PHidden x1 -> do putWord8 16
8561059 put x1
857− PSet -> putWord8 15
858− PConstant x1 -> do putWord8 16
1060+ PSet -> putWord8 17
1061+ PConstant x1 -> do putWord8 18
8591062 put x1
860− Placeholder -> putWord8 17
861− PDoBlock x1 -> do putWord8 18
1063+ Placeholder -> putWord8 19
1064+ PDoBlock x1 -> do putWord8 20
8621065 put x1
863− PReturn x1 -> do putWord8 19
1066+ PIdiom x1 x2 -> do putWord8 21
1067+ put x1
1068+ put x2
1069+ PReturn x1 -> do putWord8 22
8641070 put x1
865− PMetavar x1 -> do putWord8 20
1071+ PMetavar x1 -> do putWord8 23
8661072 put x1
867− PProof x1 -> do putWord8 21
1073+ PProof x1 -> do putWord8 24
8681074 put x1
869− PTactics x1 -> do putWord8 22
1075+ PTactics x1 -> do putWord8 25
8701076 put x1
871−-- PElabError x1 -> do putWord8 23
872−-- put x1
873− PImpossible -> putWord8 24
1077+ PImpossible -> putWord8 27
8741078 get
8751079 = do i <- getWord8
8761080 case i of
@@ -894,54 +1098,61 @@ instance Binary PTerm where
8941098 x4 <- get
8951099 return (PLet x1 x2 x3 x4)
8961100 5 -> do x1 <- get
1101+ x2 <- get
1102+ return (PTyped x1 x2)
1103+ 6 -> do x1 <- get
8971104 x2 <- get
8981105 x3 <- get
8991106 return (PApp x1 x2 x3)
900− 6 -> do x1 <- get
901− return (PTrue x1)
9021107 7 -> do x1 <- get
903− return (PFalse x1)
1108+ x2 <- get
1109+ x3 <- get
1110+ return (PCase x1 x2 x3)
9041111 8 -> do x1 <- get
905− return (PRefl x1)
1112+ return (PTrue x1)
9061113 9 -> do x1 <- get
907− return (PResolveTC x1)
1114+ return (PFalse x1)
9081115 10 -> do x1 <- get
1116+ return (PRefl x1)
1117+ 11 -> do x1 <- get
1118+ return (PResolveTC x1)
1119+ 12 -> do x1 <- get
9091120 x2 <- get
9101121 x3 <- get
9111122 return (PEq x1 x2 x3)
912− 11 -> do x1 <- get
1123+ 13 -> do x1 <- get
9131124 x2 <- get
9141125 x3 <- get
9151126 return (PPair x1 x2 x3)
916− 12 -> do x1 <- get
1127+ 14 -> do x1 <- get
9171128 x2 <- get
9181129 x3 <- get
9191130 x4 <- get
9201131 return (PDPair x1 x2 x3 x4)
921− 13 -> do x1 <- get
1132+ 15 -> do x1 <- get
9221133 x2 <- get
9231134 return (PAlternative x1 x2)
924− 14 -> do x1 <- get
925− return (PHidden x1)
926− 15 -> return PSet
9271135 16 -> do x1 <- get
928− return (PConstant x1)
929− 17 -> return Placeholder
1136+ return (PHidden x1)
1137+ 17 -> return PSet
9301138 18 -> do x1 <- get
1139+ return (PConstant x1)
1140+ 19 -> return Placeholder
1141+ 20 -> do x1 <- get
9311142 return (PDoBlock x1)
932− 19 -> do x1 <- get
1143+ 21 -> do x1 <- get
1144+ x2 <- get
1145+ return (PIdiom x1 x2)
1146+ 22 -> do x1 <- get
9331147 return (PReturn x1)
934− 20 -> do x1 <- get
1148+ 23 -> do x1 <- get
9351149 return (PMetavar x1)
936− 21 -> do x1 <- get
1150+ 24 -> do x1 <- get
9371151 return (PProof x1)
938− 22 -> do x1 <- get
1152+ 25 -> do x1 <- get
9391153 return (PTactics x1)
940−-- 23 -> do x1 <- get
941−-- return (PElabError x1)
942− 24 -> return PImpossible
1154+ 27 -> return PImpossible
9431155 _ -> error "Corrupted binary data for PTerm"
944−
9451156
9461157instance (Binary t) => Binary (PTactic' t) where
9471158 put x