~ubuntu-branches/debian/sid/ocaml/sid

« back to all changes in this revision

Viewing changes to camlp4/boot/Camlp4.ml

  • Committer: Bazaar Package Importer
  • Author(s): Stéphane Glondu
  • Date: 2011-04-21 21:35:08 UTC
  • mfrom: (1.1.11 upstream) (12.1.14 sid)
  • Revision ID: james.westby@ubuntu.com-20110421213508-kg34453aqmb0moha
* Fixes related to -output-obj with g++ (in debian/patches):
  - add Declare-primitive-name-table-as-const-char
  - add Avoid-multiple-declarations-in-generated-.c-files-in
  - fix Embed-bytecode-in-C-object-when-using-custom: the closing
    brace for extern "C" { ... } was missing in some cases

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
        in
58
58
          open_out_gen [ Open_wronly; Open_creat; Open_append; Open_text ]
59
59
            0o666 f
60
 
      with | Not_found -> stderr
 
60
      with | Not_found -> Pervasives.stderr
61
61
      
62
62
    module StringSet = Set.Make(String)
63
63
      
602
602
        
603
603
        type module_binding
604
604
        
 
605
        type rec_flag
 
606
        
 
607
        type direction_flag
 
608
        
 
609
        type mutable_flag
 
610
        
 
611
        type private_flag
 
612
        
 
613
        type virtual_flag
 
614
        
 
615
        type row_var_flag
 
616
        
 
617
        type override_flag
 
618
        
605
619
        (** {6 Location accessors} *)
606
620
        val loc_of_ctyp : ctyp -> loc
607
621
          
640
654
        (** {6 Traversals} *)
641
655
        (** This class is the base class for map traversal on the Ast.
642
656
      To make a custom traversal class one just extend it like that:
643
 
      
 
657
 
644
658
      This example swap pairs expression contents:
645
659
      open Camlp4.PreCast;
646
660
      [class swap = object
706
720
              
707
721
            method ident : ident -> ident
708
722
              
 
723
            method override_flag : override_flag -> override_flag
 
724
              
 
725
            method mutable_flag : mutable_flag -> mutable_flag
 
726
              
 
727
            method private_flag : private_flag -> private_flag
 
728
              
 
729
            method virtual_flag : virtual_flag -> virtual_flag
 
730
              
 
731
            method direction_flag : direction_flag -> direction_flag
 
732
              
 
733
            method rec_flag : rec_flag -> rec_flag
 
734
              
 
735
            method row_var_flag : row_var_flag -> row_var_flag
 
736
              
709
737
            method unknown : 'a. 'a -> 'a
710
738
              
711
739
          end
766
794
              
767
795
            method ident : ident -> 'self_type
768
796
              
 
797
            method rec_flag : rec_flag -> 'self_type
 
798
              
 
799
            method direction_flag : direction_flag -> 'self_type
 
800
              
 
801
            method mutable_flag : mutable_flag -> 'self_type
 
802
              
 
803
            method private_flag : private_flag -> 'self_type
 
804
              
 
805
            method virtual_flag : virtual_flag -> 'self_type
 
806
              
 
807
            method row_var_flag : row_var_flag -> 'self_type
 
808
              
 
809
            method override_flag : override_flag -> 'self_type
 
810
              
769
811
            method unknown : 'a. 'a -> 'self_type
770
812
              
771
813
          end
813
855
          t
814
856
          and meta_bool =
815
857
          | BTrue | BFalse | BAnt of string
 
858
          and rec_flag =
 
859
          | ReRecursive | ReNil | ReAnt of string
 
860
          and direction_flag =
 
861
          | DiTo | DiDownto | DiAnt of string
 
862
          and mutable_flag =
 
863
          | MuMutable | MuNil | MuAnt of string
 
864
          and private_flag =
 
865
          | PrPrivate | PrNil | PrAnt of string
 
866
          and virtual_flag =
 
867
          | ViVirtual | ViNil | ViAnt of string
 
868
          and override_flag =
 
869
          | OvOverride | OvNil | OvAnt of string
 
870
          and row_var_flag =
 
871
          | RvRowVar | RvNil | RvAnt of string
816
872
          and 'a meta_option =
817
873
          | ONone | OSome of 'a | OAnt of string
818
874
          and 'a meta_list =
856
912
          TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list
857
913
          | (* < (t)? (..)? > *)
858
914
          (* < move : int -> 'a .. > as 'a  *)
859
 
          TyObj of loc * ctyp * meta_bool
 
915
          TyObj of loc * ctyp * row_var_flag
860
916
          | TyOlb of loc * string * ctyp
861
917
          | (* ?s:t *)
862
918
          TyPol of loc * ctyp * ctyp
910
966
          | (* t & t *)
911
967
          TyOfAmp of loc * ctyp * ctyp
912
968
          | (* t of & t *)
 
969
          TyPkg of loc * module_type
 
970
          | (* (module S) *)
913
971
          TyAnt of loc * string
914
972
          and (* $s$ *)
915
973
          patt =
995
1053
          ExFlo of loc * string
996
1054
          | (* 3.14 *)
997
1055
          (* for s = e to/downto e do { e } *)
998
 
          ExFor of loc * string * expr * expr * meta_bool * expr
 
1056
          ExFor of loc * string * expr * expr * direction_flag * expr
999
1057
          | ExFun of loc * match_case
1000
1058
          | (* fun [ mc ] *)
1001
1059
          ExIfe of loc * expr * expr * expr
1010
1068
          ExLaz of loc * expr
1011
1069
          | (* lazy e *)
1012
1070
          (* let b in e or let rec b in e *)
1013
 
          ExLet of loc * meta_bool * binding * expr
 
1071
          ExLet of loc * rec_flag * binding * expr
1014
1072
          | (* let module s = me in e *)
1015
1073
          ExLmd of loc * string * module_expr * expr
1016
1074
          | (* match e with [ mc ] *)
1046
1104
          ExVrn of loc * string
1047
1105
          | (* while e do { e } *)
1048
1106
          ExWhi of loc * expr * expr
 
1107
          | (* let open i in e *)
 
1108
          ExOpI of loc * ident * expr
 
1109
          | (* fun (type t) -> e *)
 
1110
          (* let f x (type t) y z = e *)
 
1111
          ExFUN of loc * string * expr
 
1112
          | (* (module ME : S) which is represented as (module (ME : S)) *)
 
1113
          ExPkg of loc * module_expr
1049
1114
          and module_type =
1050
1115
          | MtNil of loc
1051
1116
          | (* i *)
1097
1162
          WcTyp of loc * ctyp * ctyp
1098
1163
          | (* module i = i *)
1099
1164
          WcMod of loc * ident * ident
 
1165
          | (* type t := t *)
 
1166
          WcTyS of loc * ctyp * ctyp
 
1167
          | (* module i := i *)
 
1168
          WcMoS of loc * ident * ident
1100
1169
          | (* wc and wc *)
1101
1170
          WcAnd of loc * with_constr * with_constr
1102
1171
          | WcAnt of loc * string
1150
1219
          MeStr of loc * str_item
1151
1220
          | (* (me : mt) *)
1152
1221
          MeTyc of loc * module_expr * module_type
 
1222
          | (* (value e) *)
 
1223
          (* (value e : S) which is represented as (value (e : S)) *)
 
1224
          MePkg of loc * expr
1153
1225
          | MeAnt of loc * string
1154
1226
          and (* $s$ *)
1155
1227
          str_item =
1181
1253
          | (* type t *)
1182
1254
          StTyp of loc * ctyp
1183
1255
          | (* value (rec)? bi *)
1184
 
          StVal of loc * meta_bool * binding
 
1256
          StVal of loc * rec_flag * binding
1185
1257
          | StAnt of loc * string
1186
1258
          and (* $s$ *)
1187
1259
          class_type =
1188
1260
          | CtNil of loc
1189
1261
          | (* (virtual)? i ([ t ])? *)
1190
 
          CtCon of loc * meta_bool * ident * ctyp
 
1262
          CtCon of loc * virtual_flag * ident * ctyp
1191
1263
          | (* [t] -> ct *)
1192
1264
          CtFun of loc * ctyp * class_type
1193
1265
          | (* object ((t))? (csg)? end *)
1209
1281
          | (* inherit ct *)
1210
1282
          CgInh of loc * class_type
1211
1283
          | (* method s : t or method private s : t *)
1212
 
          CgMth of loc * string * meta_bool * ctyp
 
1284
          CgMth of loc * string * private_flag * ctyp
1213
1285
          | (* value (virtual)? (mutable)? s : t *)
1214
 
          CgVal of loc * string * meta_bool * meta_bool * ctyp
1215
 
          | (* method virtual (mutable)? s : t *)
1216
 
          CgVir of loc * string * meta_bool * ctyp
 
1286
          CgVal of loc * string * mutable_flag * virtual_flag * ctyp
 
1287
          | (* method virtual (private)? s : t *)
 
1288
          CgVir of loc * string * private_flag * ctyp
1217
1289
          | CgAnt of loc * string
1218
1290
          and (* $s$ *)
1219
1291
          class_expr =
1221
1293
          | (* ce e *)
1222
1294
          CeApp of loc * class_expr * expr
1223
1295
          | (* (virtual)? i ([ t ])? *)
1224
 
          CeCon of loc * meta_bool * ident * ctyp
 
1296
          CeCon of loc * virtual_flag * ident * ctyp
1225
1297
          | (* fun p -> ce *)
1226
1298
          CeFun of loc * patt * class_expr
1227
1299
          | (* let (rec)? bi in ce *)
1228
 
          CeLet of loc * meta_bool * binding * class_expr
 
1300
          CeLet of loc * rec_flag * binding * class_expr
1229
1301
          | (* object ((p))? (cst)? end *)
1230
1302
          CeStr of loc * patt * class_str_item
1231
1303
          | (* ce : ct *)
1242
1314
          CrSem of loc * class_str_item * class_str_item
1243
1315
          | (* type t = t *)
1244
1316
          CrCtr of loc * ctyp * ctyp
1245
 
          | (* inherit ce or inherit ce as s *)
1246
 
          CrInh of loc * class_expr * string
 
1317
          | (* inherit(!)? ce (as s)? *)
 
1318
          CrInh of loc * override_flag * class_expr * string
1247
1319
          | (* initializer e *)
1248
1320
          CrIni of loc * expr
1249
 
          | (* method (private)? s : t = e or method (private)? s = e *)
1250
 
          CrMth of loc * string * meta_bool * expr * ctyp
1251
 
          | (* value (mutable)? s = e *)
1252
 
          CrVal of loc * string * meta_bool * expr
 
1321
          | (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *)
 
1322
          CrMth of loc * string * override_flag * private_flag * expr * ctyp
 
1323
          | (* value(!)? (mutable)? s = e *)
 
1324
          CrVal of loc * string * override_flag * mutable_flag * expr
1253
1325
          | (* method virtual (private)? s : t *)
1254
 
          CrVir of loc * string * meta_bool * ctyp
1255
 
          | (* value virtual (private)? s : t *)
1256
 
          CrVvr of loc * string * meta_bool * ctyp
 
1326
          CrVir of loc * string * private_flag * ctyp
 
1327
          | (* value virtual (mutable)? s : t *)
 
1328
          CrVvr of loc * string * mutable_flag * ctyp
1257
1329
          | CrAnt of loc * string
1258
1330
        
1259
1331
        val loc_of_ctyp : ctyp -> loc
1375
1447
                      
1376
1448
                    val meta_with_constr : loc -> with_constr -> expr
1377
1449
                      
 
1450
                    val meta_rec_flag : loc -> rec_flag -> expr
 
1451
                      
 
1452
                    val meta_mutable_flag : loc -> mutable_flag -> expr
 
1453
                      
 
1454
                    val meta_virtual_flag : loc -> virtual_flag -> expr
 
1455
                      
 
1456
                    val meta_private_flag : loc -> private_flag -> expr
 
1457
                      
 
1458
                    val meta_row_var_flag : loc -> row_var_flag -> expr
 
1459
                      
 
1460
                    val meta_override_flag : loc -> override_flag -> expr
 
1461
                      
 
1462
                    val meta_direction_flag : loc -> direction_flag -> expr
 
1463
                      
1378
1464
                  end
1379
1465
                  
1380
1466
                module Patt :
1426
1512
                      
1427
1513
                    val meta_with_constr : loc -> with_constr -> patt
1428
1514
                      
 
1515
                    val meta_rec_flag : loc -> rec_flag -> patt
 
1516
                      
 
1517
                    val meta_mutable_flag : loc -> mutable_flag -> patt
 
1518
                      
 
1519
                    val meta_virtual_flag : loc -> virtual_flag -> patt
 
1520
                      
 
1521
                    val meta_private_flag : loc -> private_flag -> patt
 
1522
                      
 
1523
                    val meta_row_var_flag : loc -> row_var_flag -> patt
 
1524
                      
 
1525
                    val meta_override_flag : loc -> override_flag -> patt
 
1526
                      
 
1527
                    val meta_direction_flag : loc -> direction_flag -> patt
 
1528
                      
1429
1529
                  end
1430
1530
                  
1431
1531
              end
1484
1584
              
1485
1585
            method ident : ident -> ident
1486
1586
              
 
1587
            method mutable_flag : mutable_flag -> mutable_flag
 
1588
              
 
1589
            method private_flag : private_flag -> private_flag
 
1590
              
 
1591
            method virtual_flag : virtual_flag -> virtual_flag
 
1592
              
 
1593
            method direction_flag : direction_flag -> direction_flag
 
1594
              
 
1595
            method rec_flag : rec_flag -> rec_flag
 
1596
              
 
1597
            method row_var_flag : row_var_flag -> row_var_flag
 
1598
              
 
1599
            method override_flag : override_flag -> override_flag
 
1600
              
1487
1601
            method unknown : 'a. 'a -> 'a
1488
1602
              
1489
1603
          end
1543
1657
              
1544
1658
            method ident : ident -> 'self_type
1545
1659
              
 
1660
            method rec_flag : rec_flag -> 'self_type
 
1661
              
 
1662
            method direction_flag : direction_flag -> 'self_type
 
1663
              
 
1664
            method mutable_flag : mutable_flag -> 'self_type
 
1665
              
 
1666
            method private_flag : private_flag -> 'self_type
 
1667
              
 
1668
            method virtual_flag : virtual_flag -> 'self_type
 
1669
              
 
1670
            method row_var_flag : row_var_flag -> 'self_type
 
1671
              
 
1672
            method override_flag : override_flag -> 'self_type
 
1673
              
1546
1674
            method unknown : 'a. 'a -> 'self_type
1547
1675
              
1548
1676
          end
1694
1822
      and type class_str_item = M.class_str_item and type binding = M.binding
1695
1823
      and type rec_binding = M.rec_binding
1696
1824
      and type module_binding = M.module_binding
1697
 
      and type match_case = M.match_case and type ident = M.ident = M
 
1825
      and type match_case = M.match_case and type ident = M.ident
 
1826
      and type rec_flag = M.rec_flag
 
1827
      and type direction_flag = M.direction_flag
 
1828
      and type mutable_flag = M.mutable_flag
 
1829
      and type private_flag = M.private_flag
 
1830
      and type virtual_flag = M.virtual_flag
 
1831
      and type row_var_flag = M.row_var_flag
 
1832
      and type override_flag = M.override_flag = M
1698
1833
      
1699
1834
    module MakeCamlp4Ast (Loc : Type) =
1700
1835
      struct
1703
1838
          t
1704
1839
          and meta_bool =
1705
1840
          | BTrue | BFalse | BAnt of string
 
1841
          and rec_flag =
 
1842
          | ReRecursive | ReNil | ReAnt of string
 
1843
          and direction_flag =
 
1844
          | DiTo | DiDownto | DiAnt of string
 
1845
          and mutable_flag =
 
1846
          | MuMutable | MuNil | MuAnt of string
 
1847
          and private_flag =
 
1848
          | PrPrivate | PrNil | PrAnt of string
 
1849
          and virtual_flag =
 
1850
          | ViVirtual | ViNil | ViAnt of string
 
1851
          and override_flag =
 
1852
          | OvOverride | OvNil | OvAnt of string
 
1853
          and row_var_flag =
 
1854
          | RvRowVar | RvNil | RvAnt of string
1706
1855
          and 'a meta_option =
1707
1856
          | ONone | OSome of 'a | OAnt of string
1708
1857
          and 'a meta_list =
1724
1873
          | TyId of loc * ident
1725
1874
          | TyMan of loc * ctyp * ctyp
1726
1875
          | TyDcl of loc * string * ctyp list * ctyp * (ctyp * ctyp) list
1727
 
          | TyObj of loc * ctyp * meta_bool
 
1876
          | TyObj of loc * ctyp * row_var_flag
1728
1877
          | TyOlb of loc * string * ctyp
1729
1878
          | TyPol of loc * ctyp * ctyp
1730
1879
          | TyQuo of loc * string
1749
1898
          | TyVrnInfSup of loc * ctyp * ctyp
1750
1899
          | TyAmp of loc * ctyp * ctyp
1751
1900
          | TyOfAmp of loc * ctyp * ctyp
 
1901
          | TyPkg of loc * module_type
1752
1902
          | TyAnt of loc * string
1753
1903
          and patt =
1754
1904
          | PaNil of loc
1794
1944
          | ExChr of loc * string
1795
1945
          | ExCoe of loc * expr * ctyp * ctyp
1796
1946
          | ExFlo of loc * string
1797
 
          | ExFor of loc * string * expr * expr * meta_bool * expr
 
1947
          | ExFor of loc * string * expr * expr * direction_flag * expr
1798
1948
          | ExFun of loc * match_case
1799
1949
          | ExIfe of loc * expr * expr * expr
1800
1950
          | ExInt of loc * string
1803
1953
          | ExNativeInt of loc * string
1804
1954
          | ExLab of loc * string * expr
1805
1955
          | ExLaz of loc * expr
1806
 
          | ExLet of loc * meta_bool * binding * expr
 
1956
          | ExLet of loc * rec_flag * binding * expr
1807
1957
          | ExLmd of loc * string * module_expr * expr
1808
1958
          | ExMat of loc * expr * match_case
1809
1959
          | ExNew of loc * ident
1821
1971
          | ExTyc of loc * expr * ctyp
1822
1972
          | ExVrn of loc * string
1823
1973
          | ExWhi of loc * expr * expr
 
1974
          | ExOpI of loc * ident * expr
 
1975
          | ExFUN of loc * string * expr
 
1976
          | ExPkg of loc * module_expr
1824
1977
          and module_type =
1825
1978
          | MtNil of loc
1826
1979
          | MtId of loc * ident
1849
2002
          | WcNil of loc
1850
2003
          | WcTyp of loc * ctyp * ctyp
1851
2004
          | WcMod of loc * ident * ident
 
2005
          | WcTyS of loc * ctyp * ctyp
 
2006
          | WcMoS of loc * ident * ident
1852
2007
          | WcAnd of loc * with_constr * with_constr
1853
2008
          | WcAnt of loc * string
1854
2009
          and binding =
1879
2034
          | MeFun of loc * string * module_type * module_expr
1880
2035
          | MeStr of loc * str_item
1881
2036
          | MeTyc of loc * module_expr * module_type
 
2037
          | MePkg of loc * expr
1882
2038
          | MeAnt of loc * string
1883
2039
          and str_item =
1884
2040
          | StNil of loc
1895
2051
          | StMty of loc * string * module_type
1896
2052
          | StOpn of loc * ident
1897
2053
          | StTyp of loc * ctyp
1898
 
          | StVal of loc * meta_bool * binding
 
2054
          | StVal of loc * rec_flag * binding
1899
2055
          | StAnt of loc * string
1900
2056
          and class_type =
1901
2057
          | CtNil of loc
1902
 
          | CtCon of loc * meta_bool * ident * ctyp
 
2058
          | CtCon of loc * virtual_flag * ident * ctyp
1903
2059
          | CtFun of loc * ctyp * class_type
1904
2060
          | CtSig of loc * ctyp * class_sig_item
1905
2061
          | CtAnd of loc * class_type * class_type
1911
2067
          | CgCtr of loc * ctyp * ctyp
1912
2068
          | CgSem of loc * class_sig_item * class_sig_item
1913
2069
          | CgInh of loc * class_type
1914
 
          | CgMth of loc * string * meta_bool * ctyp
1915
 
          | CgVal of loc * string * meta_bool * meta_bool * ctyp
1916
 
          | CgVir of loc * string * meta_bool * ctyp
 
2070
          | CgMth of loc * string * private_flag * ctyp
 
2071
          | CgVal of loc * string * mutable_flag * virtual_flag * ctyp
 
2072
          | CgVir of loc * string * private_flag * ctyp
1917
2073
          | CgAnt of loc * string
1918
2074
          and class_expr =
1919
2075
          | CeNil of loc
1920
2076
          | CeApp of loc * class_expr * expr
1921
 
          | CeCon of loc * meta_bool * ident * ctyp
 
2077
          | CeCon of loc * virtual_flag * ident * ctyp
1922
2078
          | CeFun of loc * patt * class_expr
1923
 
          | CeLet of loc * meta_bool * binding * class_expr
 
2079
          | CeLet of loc * rec_flag * binding * class_expr
1924
2080
          | CeStr of loc * patt * class_str_item
1925
2081
          | CeTyc of loc * class_expr * class_type
1926
2082
          | CeAnd of loc * class_expr * class_expr
1930
2086
          | CrNil of loc
1931
2087
          | CrSem of loc * class_str_item * class_str_item
1932
2088
          | CrCtr of loc * ctyp * ctyp
1933
 
          | CrInh of loc * class_expr * string
 
2089
          | CrInh of loc * override_flag * class_expr * string
1934
2090
          | CrIni of loc * expr
1935
 
          | CrMth of loc * string * meta_bool * expr * ctyp
1936
 
          | CrVal of loc * string * meta_bool * expr
1937
 
          | CrVir of loc * string * meta_bool * ctyp
1938
 
          | CrVvr of loc * string * meta_bool * ctyp
 
2091
          | CrMth of loc * string * override_flag * private_flag * expr
 
2092
                     * ctyp
 
2093
          | CrVal of loc * string * override_flag * mutable_flag * expr
 
2094
          | CrVir of loc * string * private_flag * ctyp
 
2095
          | CrVvr of loc * string * mutable_flag * ctyp
1939
2096
          | CrAnt of loc * string
1940
2097
        
1941
2098
      end
2178
2335
            
2179
2336
            type token_pattern = ((Token.t -> bool) * string)
2180
2337
            
 
2338
            type token_info
 
2339
            
 
2340
            type token_stream = (Token.t * token_info) Stream.t
 
2341
            
 
2342
            val token_location : token_info -> Loc.t
 
2343
              
2181
2344
            type symbol =
2182
2345
              | Smeta of string * symbol list * Action.t
2183
2346
              | Snterm of internal_entry
2187
2350
              | Slist1 of symbol
2188
2351
              | Slist1sep of symbol * symbol
2189
2352
              | Sopt of symbol
 
2353
              | Stry of symbol
2190
2354
              | Sself
2191
2355
              | Snext
2192
2356
              | Stoken of token_pattern
2228
2392
                val mk : gram -> string -> 'a t
2229
2393
                  
2230
2394
                val of_parser :
2231
 
                  gram ->
2232
 
                    string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t
 
2395
                  gram -> string -> (token_stream -> 'a) -> 'a t
2233
2396
                  
2234
 
                val setup_parser :
2235
 
                  'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit
 
2397
                val setup_parser : 'a t -> (token_stream -> 'a) -> unit
2236
2398
                  
2237
2399
                val name : 'a t -> string
2238
2400
                  
2274
2436
              
2275
2437
            val filter :
2276
2438
              gram ->
2277
 
                ((Token.t * Loc.t) Stream.t) not_filtered ->
2278
 
                  (Token.t * Loc.t) Stream.t
 
2439
                ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream
2279
2440
              
2280
2441
            val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a
2281
2442
              
2284
2445
            val parse_tokens_before_filter :
2285
2446
              'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a
2286
2447
              
2287
 
            val parse_tokens_after_filter :
2288
 
              'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a
 
2448
            val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a
2289
2449
              
2290
2450
          end
2291
2451
          
2299
2459
                
2300
2460
                val mk : string -> 'a t
2301
2461
                  
2302
 
                val of_parser :
2303
 
                  string -> ((Token.t * Loc.t) Stream.t -> 'a) -> 'a t
 
2462
                val of_parser : string -> (token_stream -> 'a) -> 'a t
2304
2463
                  
2305
 
                val setup_parser :
2306
 
                  'a t -> ((Token.t * Loc.t) Stream.t -> 'a) -> unit
 
2464
                val setup_parser : 'a t -> (token_stream -> 'a) -> unit
2307
2465
                  
2308
2466
                val name : 'a t -> string
2309
2467
                  
2342
2500
              Loc.t -> string -> ((Token.t * Loc.t) Stream.t) not_filtered
2343
2501
              
2344
2502
            val filter :
2345
 
              ((Token.t * Loc.t) Stream.t) not_filtered ->
2346
 
                (Token.t * Loc.t) Stream.t
 
2503
              ((Token.t * Loc.t) Stream.t) not_filtered -> token_stream
2347
2504
              
2348
2505
            val parse : 'a Entry.t -> Loc.t -> char Stream.t -> 'a
2349
2506
              
2352
2509
            val parse_tokens_before_filter :
2353
2510
              'a Entry.t -> ((Token.t * Loc.t) Stream.t) not_filtered -> 'a
2354
2511
              
2355
 
            val parse_tokens_after_filter :
2356
 
              'a Entry.t -> (Token.t * Loc.t) Stream.t -> 'a
 
2512
            val parse_tokens_after_filter : 'a Entry.t -> token_stream -> 'a
2357
2513
              
2358
2514
          end
2359
2515
          
2573
2729
          
2574
2730
        val cvalue_binding : Ast.expr Gram.Entry.t
2575
2731
          
2576
 
        val direction_flag : Ast.meta_bool Gram.Entry.t
 
2732
        val direction_flag : Ast.direction_flag Gram.Entry.t
 
2733
          
 
2734
        val direction_flag_quot : Ast.direction_flag Gram.Entry.t
2577
2735
          
2578
2736
        val dummy : unit Gram.Entry.t
2579
2737
          
2625
2783
          
2626
2784
        val let_binding : Ast.binding Gram.Entry.t
2627
2785
          
2628
 
        val meth_list : (Ast.ctyp * Ast.meta_bool) Gram.Entry.t
 
2786
        val meth_list : (Ast.ctyp * Ast.row_var_flag) Gram.Entry.t
2629
2787
          
2630
2788
        val meth_decl : Ast.ctyp Gram.Entry.t
2631
2789
          
2649
2807
          
2650
2808
        val module_type : Ast.module_type Gram.Entry.t
2651
2809
          
 
2810
        val package_type : Ast.module_type Gram.Entry.t
 
2811
          
2652
2812
        val module_type_quot : Ast.module_type Gram.Entry.t
2653
2813
          
2654
2814
        val more_ctyp : Ast.ctyp Gram.Entry.t
2663
2823
          
2664
2824
        val opt_comma_ctyp : Ast.ctyp Gram.Entry.t
2665
2825
          
2666
 
        val opt_dot_dot : Ast.meta_bool Gram.Entry.t
 
2826
        val opt_dot_dot : Ast.row_var_flag Gram.Entry.t
 
2827
          
 
2828
        val row_var_flag_quot : Ast.row_var_flag Gram.Entry.t
2667
2829
          
2668
2830
        val opt_eq_ctyp : Ast.ctyp Gram.Entry.t
2669
2831
          
2671
2833
          
2672
2834
        val opt_meth_list : Ast.ctyp Gram.Entry.t
2673
2835
          
2674
 
        val opt_mutable : Ast.meta_bool Gram.Entry.t
 
2836
        val opt_mutable : Ast.mutable_flag Gram.Entry.t
 
2837
          
 
2838
        val mutable_flag_quot : Ast.mutable_flag Gram.Entry.t
 
2839
          
 
2840
        val opt_override : Ast.override_flag Gram.Entry.t
 
2841
          
 
2842
        val override_flag_quot : Ast.override_flag Gram.Entry.t
2675
2843
          
2676
2844
        val opt_polyt : Ast.ctyp Gram.Entry.t
2677
2845
          
2678
 
        val opt_private : Ast.meta_bool Gram.Entry.t
2679
 
          
2680
 
        val opt_rec : Ast.meta_bool Gram.Entry.t
2681
 
          
2682
 
        val opt_virtual : Ast.meta_bool Gram.Entry.t
 
2846
        val opt_private : Ast.private_flag Gram.Entry.t
 
2847
          
 
2848
        val private_flag_quot : Ast.private_flag Gram.Entry.t
 
2849
          
 
2850
        val opt_rec : Ast.rec_flag Gram.Entry.t
 
2851
          
 
2852
        val rec_flag_quot : Ast.rec_flag Gram.Entry.t
 
2853
          
 
2854
        val opt_virtual : Ast.virtual_flag Gram.Entry.t
 
2855
          
 
2856
        val virtual_flag_quot : Ast.virtual_flag Gram.Entry.t
2683
2857
          
2684
2858
        val opt_when_expr : Ast.expr Gram.Entry.t
2685
2859
          
3347
3521
                  }
3348
3522
                
3349
3523
                let err error loc =
3350
 
                  raise (Loc.Exc_located (loc, Error.E error))
 
3524
                  raise (Loc.Exc_located (loc, (Error.E error)))
3351
3525
                  
3352
3526
                let keyword_conversion tok is_kwd =
3353
3527
                  match tok with
3703
3877
                    pos_bol = pos.pos_cnum - chars;
3704
3878
                  }
3705
3879
              
3706
 
            let err error loc = raise (Loc.Exc_located (loc, Error.E error))
 
3880
            let err error loc =
 
3881
              raise (Loc.Exc_located (loc, (Error.E error)))
3707
3882
              
3708
3883
            let warn error loc =
3709
3884
              Format.eprintf "Warning: %a: %a@." Loc.print loc Error.print
3737
3912
    \240\018\051\019\018\020\048\020\255\255\015\021\238\021\015\022\
3738
3913
    \079\022\255\255\031\023\254\255\164\001\251\255\010\000\252\255\
3739
3914
    \253\255\128\000\079\001\255\255\095\023\030\024\238\024\190\025\
3740
 
    \254\255\154\026\253\255\254\255\201\000\116\027\077\028\255\255\
3741
 
    \028\001\029\029\206\001\251\255\080\001\013\000\253\255\254\255\
3742
 
    \255\255\252\255\093\029\028\030\236\030\188\031";
 
3915
    \254\255\190\026\253\255\254\255\153\001\143\027\110\028\255\255\
 
3916
    \167\001\062\029\206\001\251\255\080\001\013\000\253\255\254\255\
 
3917
    \255\255\252\255\126\029\061\030\013\031\221\031";
3743
3918
                Lexing.lex_backtrk =
3744
3919
                  "\255\255\255\255\255\255\030\000\255\255\028\000\030\000\030\000\
3745
3920
    \030\000\030\000\028\000\028\000\028\000\028\000\028\000\255\255\
3795
3970
    \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\
3796
3971
    \255\255\000\000\255\255\000\000\189\000\000\000\255\255\000\000\
3797
3972
    \000\000\255\255\255\255\000\000\255\255\255\255\255\255\255\255\
3798
 
    \000\000\202\000\000\000\000\000\255\255\255\255\255\255\000\000\
 
3973
    \000\000\205\000\000\000\000\000\255\255\255\255\255\255\000\000\
3799
3974
    \255\255\255\255\211\000\000\000\255\255\255\255\000\000\000\000\
3800
3975
    \000\000\000\000\255\255\255\255\255\255\255\255";
3801
3976
                Lexing.lex_trans =
3829
4004
    \024\000\024\000\024\000\024\000\024\000\024\000\024\000\025\000\
3830
4005
    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
3831
4006
    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
3832
 
    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\208\000\
 
4007
    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\000\000\
3833
4008
    \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\
3834
 
    \002\000\003\000\000\000\203\000\003\000\003\000\003\000\051\000\
 
4009
    \002\000\003\000\000\000\000\000\003\000\003\000\003\000\051\000\
3835
4010
    \255\255\255\255\003\000\003\000\048\000\003\000\003\000\003\000\
3836
4011
    \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
3837
4012
    \039\000\039\000\003\000\144\000\003\000\003\000\003\000\003\000\
3840
4015
    \046\000\046\000\046\000\046\000\046\000\046\000\046\000\084\000\
3841
4016
    \147\000\084\000\084\000\084\000\003\000\096\000\003\000\039\000\
3842
4017
    \102\000\000\000\171\000\101\000\003\000\038\000\000\000\003\000\
3843
 
    \009\000\009\000\208\000\000\000\084\000\003\000\003\000\000\000\
3844
 
    \003\000\006\000\009\000\000\000\068\000\000\000\203\000\068\000\
 
4018
    \009\000\009\000\000\000\000\000\084\000\003\000\003\000\000\000\
 
4019
    \003\000\006\000\009\000\000\000\068\000\000\000\000\000\068\000\
3845
4020
    \106\000\171\000\084\000\096\000\003\000\085\000\003\000\006\000\
3846
4021
    \006\000\006\000\003\000\009\000\171\000\171\000\000\000\000\000\
3847
4022
    \000\000\003\000\000\000\068\000\003\000\121\000\121\000\000\000\
3854
4029
    \084\000\003\000\000\000\000\000\003\000\005\000\121\000\085\000\
3855
4030
    \000\000\006\000\006\000\006\000\003\000\009\000\191\000\000\000\
3856
4031
    \255\255\190\000\000\000\003\000\000\000\000\000\003\000\009\000\
3857
 
    \009\000\000\000\000\000\094\000\003\000\003\000\000\000\003\000\
3858
 
    \009\000\009\000\000\000\000\000\120\000\005\000\003\000\000\000\
3859
 
    \000\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\
3860
 
    \009\000\003\000\009\000\000\000\000\000\000\000\000\000\000\000\
 
4032
    \009\000\000\000\208\000\094\000\003\000\003\000\000\000\003\000\
 
4033
    \009\000\009\000\000\000\000\000\120\000\005\000\003\000\208\000\
 
4034
    \208\000\003\000\005\000\009\000\098\000\000\000\009\000\009\000\
 
4035
    \009\000\003\000\009\000\203\000\000\000\208\000\000\000\000\000\
3861
4036
    \214\000\000\000\000\000\213\000\117\000\117\000\000\000\000\000\
3862
 
    \194\000\000\000\193\000\111\000\111\000\115\000\117\000\005\000\
 
4037
    \194\000\203\000\193\000\111\000\111\000\115\000\117\000\005\000\
3863
4038
    \000\000\085\000\005\000\003\000\109\000\111\000\003\000\094\000\
3864
4039
    \009\000\116\000\216\000\116\000\115\000\115\000\000\000\117\000\
3865
4040
    \114\000\000\000\109\000\112\000\112\000\000\000\111\000\111\000\
4654
4829
    \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
4655
4830
    \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
4656
4831
    \199\000\199\000\199\000\199\000\199\000\000\000\199\000\199\000\
4657
 
    \199\000\199\000\199\000\199\000\199\000\199\000\207\000\000\000\
4658
 
    \000\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\
4659
 
    \204\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
4660
 
    \205\000\205\000\205\000\205\000\203\000\000\000\000\000\000\000\
4661
 
    \000\000\000\000\000\000\205\000\205\000\205\000\205\000\205\000\
4662
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4663
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4664
 
    \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\
4665
 
    \000\000\205\000\206\000\205\000\205\000\205\000\205\000\205\000\
4666
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4667
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4668
 
    \205\000\205\000\205\000\205\000\205\000\000\000\000\000\000\000\
4669
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4670
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4671
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4672
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4673
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4674
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4675
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4676
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4677
 
    \000\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
4678
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4679
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4680
 
    \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
4681
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4682
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4683
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
4684
 
    \205\000\000\000\205\000\205\000\205\000\205\000\205\000\205\000\
4685
 
    \205\000\205\000\255\255\209\000\000\000\000\000\000\000\000\000\
4686
 
    \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\
4687
 
    \209\000\209\000\209\000\209\000\209\000\209\000\203\000\000\000\
4688
 
    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
4689
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4690
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4691
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\
4692
 
    \000\000\000\000\000\000\209\000\000\000\209\000\209\000\209\000\
4693
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4694
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4695
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\000\000\
4696
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4697
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4698
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4699
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4700
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4701
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4702
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4703
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4704
 
    \000\000\000\000\000\000\000\000\209\000\209\000\209\000\209\000\
4705
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4706
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4707
 
    \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\
4708
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4709
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4710
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4711
 
    \209\000\209\000\209\000\000\000\209\000\209\000\209\000\209\000\
4712
 
    \209\000\209\000\209\000\209\000\209\000\000\000\000\000\000\000\
4713
 
    \000\000\000\000\000\000\208\000\000\000\209\000\209\000\209\000\
4714
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\
4715
 
    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
4716
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4717
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4718
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4719
 
    \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\
4720
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4721
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4722
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4723
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4724
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4725
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4726
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4727
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4728
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4729
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4730
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4731
 
    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
4732
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4733
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4734
 
    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
4735
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4736
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4737
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4738
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4739
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4740
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\203\000\
4741
 
    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
4742
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4743
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4744
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4745
 
    \000\000\000\000\000\000\000\000\209\000\000\000\209\000\209\000\
4746
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4747
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4748
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4749
 
    \000\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\
 
4832
    \199\000\199\000\199\000\199\000\199\000\199\000\202\000\202\000\
 
4833
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4834
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4835
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4836
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\204\000\
 
4837
    \202\000\202\000\207\000\202\000\202\000\000\000\202\000\202\000\
 
4838
    \202\000\202\000\202\000\202\000\204\000\202\000\000\000\000\000\
 
4839
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4840
    \203\000\202\000\202\000\202\000\202\000\202\000\202\000\000\000\
 
4841
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4842
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4843
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4844
    \000\000\202\000\202\000\202\000\202\000\000\000\206\000\000\000\
 
4845
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4846
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4847
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4848
    \000\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4849
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4850
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4851
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4852
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4853
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4854
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4855
    \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\
 
4856
    \202\000\202\000\202\000\202\000\202\000\202\000\000\000\000\000\
 
4857
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4858
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4859
    \000\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\
 
4860
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4861
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4862
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4863
    \000\000\000\000\000\000\000\000\000\000\202\000\209\000\000\000\
 
4864
    \000\000\000\000\000\000\000\000\000\000\000\000\255\255\209\000\
 
4865
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4866
    \209\000\203\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4867
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4868
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4869
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4870
    \209\000\209\000\000\000\000\000\000\000\000\000\209\000\000\000\
 
4871
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4872
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4873
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4874
    \209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4875
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4876
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4877
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4878
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4879
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4880
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4881
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4882
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
 
4883
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4884
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4885
    \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\
 
4886
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4887
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4888
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4889
    \209\000\209\000\209\000\209\000\209\000\209\000\000\000\209\000\
 
4890
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\208\000\
 
4891
    \000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\
 
4892
    \000\000\000\000\000\000\000\000\208\000\000\000\209\000\209\000\
 
4893
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4894
    \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
 
4895
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4896
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4897
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4898
    \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\
 
4899
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4900
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4901
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4902
    \209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4903
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4904
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4905
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4906
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4907
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4908
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4909
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4910
    \000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
 
4911
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4912
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4913
    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
 
4914
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4915
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4916
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4917
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4918
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4919
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4920
    \203\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\
 
4921
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4922
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4923
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4924
    \209\000\000\000\000\000\000\000\000\000\209\000\000\000\209\000\
 
4925
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4926
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4927
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4928
    \209\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\
 
4929
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4930
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4931
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4932
    \221\000\000\000\000\000\000\000\000\000\221\000\000\000\221\000\
 
4933
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4934
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4935
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4936
    \221\000\000\000\000\000\000\000\000\000\000\000\209\000\209\000\
 
4937
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4938
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4939
    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
 
4940
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4941
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4942
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
4943
    \209\000\209\000\209\000\209\000\209\000\000\000\209\000\209\000\
 
4944
    \209\000\209\000\209\000\209\000\209\000\209\000\221\000\221\000\
 
4945
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4946
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4947
    \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\
 
4948
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4949
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4950
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
4951
    \221\000\221\000\221\000\221\000\221\000\000\000\221\000\221\000\
 
4952
    \221\000\221\000\221\000\221\000\221\000\221\000\220\000\220\000\
 
4953
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4954
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4955
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4956
    \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\
 
4957
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4958
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4959
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4960
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4961
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4962
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4963
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4964
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4965
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4966
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4967
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4968
    \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\
 
4969
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4970
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4971
    \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\
 
4972
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4973
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4974
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4975
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4976
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4977
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
 
4978
    \000\000\217\000\000\000\000\000\000\000\218\000\220\000\220\000\
 
4979
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4980
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4981
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4982
    \000\000\000\000\000\000\000\000\220\000\000\000\220\000\220\000\
 
4983
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4984
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4985
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4986
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4987
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4988
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4989
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4990
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4991
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4992
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4993
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
4994
    \000\000\000\000\000\000\000\000\000\000\220\000\220\000\220\000\
 
4995
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4996
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4997
    \220\000\220\000\220\000\220\000\000\000\220\000\220\000\220\000\
 
4998
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
4999
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
5000
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
5001
    \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\
 
5002
    \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\
 
5003
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
 
5004
    \000\000\217\000\000\000\000\000\000\000\000\000\221\000\221\000\
4750
5005
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4751
5006
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4752
5007
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4754
5009
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4755
5010
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4756
5011
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4757
 
    \000\000\000\000\000\000\000\000\000\000\209\000\209\000\209\000\
4758
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4759
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4760
 
    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
4761
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4762
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4763
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
4764
 
    \209\000\209\000\209\000\209\000\000\000\209\000\209\000\209\000\
4765
 
    \209\000\209\000\209\000\209\000\209\000\221\000\221\000\221\000\
4766
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4767
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4768
 
    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
4769
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4770
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4771
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4772
 
    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
4773
 
    \221\000\221\000\221\000\221\000\221\000\220\000\220\000\220\000\
4774
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4775
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4776
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
4777
 
    \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\
4778
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4779
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4780
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
4781
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4782
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4783
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4784
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4785
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4786
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4787
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4788
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4789
 
    \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\
4790
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4791
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4792
 
    \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\
4793
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4794
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4795
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4796
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4797
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4798
 
    \220\000\220\000\220\000\220\000\220\000\220\000\000\000\000\000\
4799
 
    \217\000\000\000\000\000\000\000\218\000\220\000\220\000\220\000\
4800
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4801
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4802
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
4803
 
    \000\000\000\000\000\000\220\000\000\000\220\000\220\000\220\000\
4804
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4805
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4806
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\000\000\
4807
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4808
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4809
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4810
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4811
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4812
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4813
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4814
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4815
 
    \000\000\000\000\000\000\000\000\220\000\220\000\220\000\220\000\
4816
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4817
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4818
 
    \220\000\220\000\220\000\000\000\220\000\220\000\220\000\220\000\
4819
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4820
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4821
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
4822
 
    \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\
4823
 
    \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\
4824
 
    \221\000\221\000\221\000\221\000\221\000\221\000\000\000\000\000\
4825
 
    \217\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\
4826
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4827
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4828
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
4829
 
    \000\000\000\000\000\000\221\000\000\000\221\000\221\000\221\000\
4830
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4831
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4832
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\000\000\
4833
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4834
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4835
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4836
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4837
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4838
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4839
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4840
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4841
 
    \000\000\000\000\000\000\000\000\221\000\221\000\221\000\221\000\
4842
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4843
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4844
 
    \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\
4845
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4846
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4847
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
4848
 
    \221\000\221\000\221\000\000\000\221\000\221\000\221\000\221\000\
4849
 
    \221\000\221\000\221\000\221\000\000\000";
 
5012
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5013
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5014
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5015
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5016
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5017
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5018
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5019
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
 
5020
    \000\000\000\000\000\000\000\000\000\000\221\000\221\000\221\000\
 
5021
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
5022
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
5023
    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
 
5024
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
5025
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
5026
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
5027
    \221\000\221\000\221\000\221\000\000\000\221\000\221\000\221\000\
 
5028
    \221\000\221\000\221\000\221\000\221\000\000\000";
4850
5029
                Lexing.lex_check =
4851
5030
                  "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
4852
5031
    \255\255\000\000\000\000\029\000\000\000\000\000\101\000\107\000\
4878
5057
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4879
5058
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4880
5059
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4881
 
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\000\
 
5060
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\
4882
5061
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
4883
 
    \000\000\003\000\255\255\204\000\003\000\003\000\003\000\050\000\
 
5062
    \000\000\003\000\255\255\255\255\003\000\003\000\003\000\050\000\
4884
5063
    \103\000\106\000\003\000\003\000\020\000\003\000\003\000\003\000\
4885
5064
    \039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\
4886
5065
    \039\000\039\000\003\000\143\000\003\000\003\000\003\000\003\000\
4889
5068
    \038\000\038\000\038\000\038\000\038\000\038\000\038\000\005\000\
4890
5069
    \143\000\005\000\005\000\005\000\003\000\005\000\003\000\039\000\
4891
5070
    \104\000\255\255\171\000\104\000\006\000\039\000\255\255\006\000\
4892
 
    \006\000\006\000\208\000\255\255\006\000\006\000\006\000\255\255\
4893
 
    \006\000\006\000\006\000\255\255\068\000\255\255\208\000\068\000\
 
5071
    \006\000\006\000\255\255\255\255\006\000\006\000\006\000\255\255\
 
5072
    \006\000\006\000\006\000\255\255\068\000\255\255\255\255\068\000\
4894
5073
    \104\000\171\000\005\000\005\000\003\000\006\000\003\000\006\000\
4895
5074
    \006\000\006\000\006\000\006\000\170\000\170\000\255\255\255\255\
4896
5075
    \255\255\007\000\255\255\068\000\007\000\007\000\007\000\255\255\
4903
5082
    \006\000\006\000\255\255\255\255\007\000\007\000\007\000\008\000\
4904
5083
    \255\255\008\000\008\000\008\000\008\000\008\000\188\000\255\255\
4905
5084
    \020\000\188\000\255\255\009\000\255\255\255\255\009\000\009\000\
4906
 
    \009\000\255\255\255\255\009\000\009\000\009\000\255\255\009\000\
4907
 
    \009\000\009\000\255\255\255\255\007\000\007\000\007\000\255\255\
4908
 
    \255\255\008\000\008\000\008\000\009\000\255\255\009\000\009\000\
4909
 
    \009\000\009\000\009\000\255\255\255\255\255\255\255\255\255\255\
 
5085
    \009\000\255\255\204\000\009\000\009\000\009\000\255\255\009\000\
 
5086
    \009\000\009\000\255\255\255\255\007\000\007\000\007\000\204\000\
 
5087
    \208\000\008\000\008\000\008\000\009\000\255\255\009\000\009\000\
 
5088
    \009\000\009\000\009\000\204\000\255\255\208\000\255\255\255\255\
4910
5089
    \210\000\255\255\255\255\210\000\011\000\011\000\255\255\255\255\
4911
 
    \188\000\255\255\188\000\013\000\013\000\011\000\011\000\013\000\
 
5090
    \188\000\208\000\188\000\013\000\013\000\011\000\011\000\013\000\
4912
5091
    \255\255\008\000\008\000\008\000\013\000\013\000\009\000\009\000\
4913
5092
    \009\000\011\000\210\000\011\000\011\000\011\000\255\255\011\000\
4914
5093
    \013\000\255\255\013\000\013\000\013\000\255\255\013\000\014\000\
5703
5882
    \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
5704
5883
    \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\
5705
5884
    \199\000\199\000\199\000\199\000\199\000\255\255\199\000\199\000\
5706
 
    \199\000\199\000\199\000\199\000\199\000\199\000\201\000\255\255\
5707
 
    \255\255\201\000\255\255\255\255\255\255\255\255\255\255\255\255\
5708
 
    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
5709
 
    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
5710
 
    \255\255\255\255\255\255\201\000\201\000\201\000\201\000\201\000\
5711
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5712
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5713
 
    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
 
5885
    \199\000\199\000\199\000\199\000\199\000\199\000\201\000\201\000\
 
5886
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5887
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5888
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5889
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5890
    \201\000\201\000\201\000\201\000\201\000\255\255\201\000\201\000\
 
5891
    \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\
 
5892
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5893
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\255\255\
 
5894
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5895
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5896
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5897
    \255\255\201\000\201\000\201\000\201\000\255\255\201\000\255\255\
 
5898
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5899
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5900
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5714
5901
    \255\255\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5715
5902
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5716
5903
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5717
 
    \201\000\201\000\201\000\201\000\201\000\255\255\255\255\255\255\
5718
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5719
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5720
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5721
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5722
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5723
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5724
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5725
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5726
 
    \255\255\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
5727
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5728
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5729
 
    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
5730
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5731
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5732
 
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
5733
 
    \201\000\255\255\201\000\201\000\201\000\201\000\201\000\201\000\
5734
 
    \201\000\201\000\201\000\205\000\255\255\255\255\255\255\255\255\
5735
 
    \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\
5736
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
5737
 
    \255\255\255\255\255\255\255\255\255\255\205\000\205\000\205\000\
5738
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5739
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5740
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
5741
 
    \255\255\255\255\255\255\205\000\255\255\205\000\205\000\205\000\
5742
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5743
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5744
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\255\255\
5745
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5746
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5747
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5748
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5749
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5750
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5751
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5752
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5753
 
    \255\255\255\255\255\255\255\255\205\000\205\000\205\000\205\000\
5754
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5755
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5756
 
    \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\
5757
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5758
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5759
 
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
5760
 
    \205\000\205\000\205\000\255\255\205\000\205\000\205\000\205\000\
5761
 
    \205\000\205\000\205\000\205\000\206\000\255\255\255\255\255\255\
5762
 
    \255\255\255\255\255\255\206\000\255\255\206\000\206\000\206\000\
5763
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5904
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5905
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5906
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5907
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5908
    \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\
 
5909
    \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\
 
5910
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5911
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5912
    \255\255\255\255\255\255\255\255\255\255\201\000\255\255\255\255\
 
5913
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5914
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5915
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5916
    \255\255\255\255\255\255\255\255\255\255\201\000\205\000\255\255\
 
5917
    \255\255\255\255\255\255\255\255\255\255\255\255\201\000\205\000\
 
5918
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5919
    \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\
 
5920
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5921
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5922
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5923
    \205\000\205\000\255\255\255\255\255\255\255\255\205\000\255\255\
 
5924
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5925
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5926
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5927
    \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\
 
5928
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5929
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5930
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5931
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5932
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5933
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5934
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5935
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\205\000\
 
5936
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5937
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5938
    \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\
 
5939
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5940
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5941
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\
 
5942
    \205\000\205\000\205\000\205\000\205\000\205\000\255\255\205\000\
 
5943
    \205\000\205\000\205\000\205\000\205\000\205\000\205\000\206\000\
 
5944
    \255\255\255\255\255\255\255\255\255\255\206\000\255\255\255\255\
 
5945
    \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\
 
5946
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5947
    \206\000\255\255\255\255\255\255\255\255\255\255\255\255\206\000\
 
5948
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5949
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5950
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5951
    \206\000\255\255\255\255\255\255\255\255\206\000\255\255\206\000\
 
5952
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5953
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5954
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5955
    \206\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5956
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5957
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5958
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5959
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5960
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5961
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
5962
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5764
5963
    \255\255\255\255\255\255\255\255\255\255\255\255\206\000\206\000\
5765
5964
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5766
5965
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5767
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5768
 
    \255\255\255\255\255\255\255\255\206\000\255\255\206\000\206\000\
5769
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5770
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5771
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5772
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5773
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5774
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5775
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5776
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5777
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5778
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5779
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5780
 
    \255\255\255\255\255\255\255\255\255\255\206\000\206\000\206\000\
5781
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5782
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5783
 
    \206\000\206\000\206\000\206\000\255\255\206\000\206\000\206\000\
5784
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5785
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5786
 
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
5787
 
    \206\000\206\000\206\000\206\000\209\000\206\000\206\000\206\000\
5788
 
    \206\000\206\000\206\000\206\000\206\000\209\000\209\000\209\000\
5789
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5790
 
    \255\255\255\255\255\255\255\255\255\255\255\255\209\000\209\000\
5791
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5792
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5793
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5794
 
    \255\255\255\255\255\255\255\255\209\000\255\255\209\000\209\000\
5795
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5796
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5797
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5798
 
    \255\255\255\255\255\255\255\255\255\255\255\255\218\000\218\000\
5799
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5800
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5801
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5802
 
    \255\255\255\255\255\255\255\255\218\000\255\255\218\000\218\000\
5803
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5804
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5805
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5806
 
    \255\255\255\255\255\255\255\255\255\255\209\000\209\000\209\000\
5807
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5808
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5809
 
    \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\
5810
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5811
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5812
 
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
5813
 
    \209\000\209\000\209\000\209\000\255\255\209\000\209\000\209\000\
5814
 
    \209\000\209\000\209\000\209\000\209\000\218\000\218\000\218\000\
5815
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5816
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5817
 
    \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\
5818
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5819
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5820
 
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
5821
 
    \218\000\218\000\218\000\218\000\255\255\218\000\218\000\218\000\
5822
 
    \218\000\218\000\218\000\218\000\218\000\219\000\219\000\219\000\
5823
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5824
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5825
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\
5826
 
    \255\255\255\255\255\255\219\000\255\255\219\000\219\000\219\000\
5827
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5828
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5829
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\255\255\
5830
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5831
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5832
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5833
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5834
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5835
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5836
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5837
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5838
 
    \255\255\255\255\255\255\255\255\219\000\219\000\219\000\219\000\
5839
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5840
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5841
 
    \219\000\219\000\219\000\255\255\219\000\219\000\219\000\219\000\
5842
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5843
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5844
 
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
5845
 
    \219\000\219\000\219\000\220\000\219\000\219\000\219\000\219\000\
5846
 
    \219\000\219\000\219\000\219\000\220\000\220\000\220\000\220\000\
5847
 
    \220\000\220\000\220\000\220\000\220\000\220\000\255\255\255\255\
5848
 
    \220\000\255\255\255\255\255\255\220\000\220\000\220\000\220\000\
5849
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5850
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5851
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
5852
 
    \255\255\255\255\255\255\220\000\255\255\220\000\220\000\220\000\
5853
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5854
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5855
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
5856
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5857
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5858
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5859
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5860
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5861
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5862
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5863
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5864
 
    \255\255\255\255\255\255\255\255\220\000\220\000\220\000\220\000\
5865
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5866
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5867
 
    \220\000\220\000\220\000\255\255\220\000\220\000\220\000\220\000\
5868
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5869
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5870
 
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
5871
 
    \220\000\220\000\220\000\221\000\220\000\220\000\220\000\220\000\
5872
 
    \220\000\220\000\220\000\220\000\221\000\221\000\221\000\221\000\
5873
 
    \221\000\221\000\221\000\221\000\221\000\221\000\255\255\255\255\
5874
 
    \221\000\255\255\255\255\255\255\255\255\221\000\221\000\221\000\
5875
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5876
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5877
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
5878
 
    \255\255\255\255\255\255\221\000\255\255\221\000\221\000\221\000\
5879
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5880
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5881
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
5882
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5883
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5884
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5885
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5886
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5887
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5888
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5889
 
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
5890
 
    \255\255\255\255\255\255\255\255\221\000\221\000\221\000\221\000\
5891
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5892
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5893
 
    \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\
5894
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5895
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5896
 
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
5897
 
    \221\000\221\000\221\000\255\255\221\000\221\000\221\000\221\000\
5898
 
    \221\000\221\000\221\000\221\000\255\255";
 
5966
    \206\000\206\000\206\000\206\000\206\000\255\255\206\000\206\000\
 
5967
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5968
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5969
    \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\
 
5970
    \206\000\206\000\206\000\206\000\206\000\209\000\206\000\206\000\
 
5971
    \206\000\206\000\206\000\206\000\206\000\206\000\209\000\209\000\
 
5972
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5973
    \209\000\255\255\255\255\255\255\255\255\255\255\255\255\209\000\
 
5974
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5975
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5976
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5977
    \209\000\255\255\255\255\255\255\255\255\209\000\255\255\209\000\
 
5978
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5979
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5980
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5981
    \209\000\255\255\255\255\255\255\255\255\255\255\255\255\218\000\
 
5982
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5983
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5984
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5985
    \218\000\255\255\255\255\255\255\255\255\218\000\255\255\218\000\
 
5986
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5987
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5988
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5989
    \218\000\255\255\255\255\255\255\255\255\255\255\209\000\209\000\
 
5990
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5991
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5992
    \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\
 
5993
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5994
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5995
    \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\
 
5996
    \209\000\209\000\209\000\209\000\209\000\255\255\209\000\209\000\
 
5997
    \209\000\209\000\209\000\209\000\209\000\209\000\218\000\218\000\
 
5998
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
5999
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
6000
    \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\
 
6001
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
6002
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
6003
    \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\
 
6004
    \218\000\218\000\218\000\218\000\218\000\255\255\218\000\218\000\
 
6005
    \218\000\218\000\218\000\218\000\218\000\218\000\219\000\219\000\
 
6006
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6007
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6008
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6009
    \255\255\255\255\255\255\255\255\219\000\255\255\219\000\219\000\
 
6010
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6011
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6012
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6013
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6014
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6015
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6016
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6017
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6018
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6019
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6020
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6021
    \255\255\255\255\255\255\255\255\255\255\219\000\219\000\219\000\
 
6022
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6023
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6024
    \219\000\219\000\219\000\219\000\255\255\219\000\219\000\219\000\
 
6025
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6026
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6027
    \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\
 
6028
    \219\000\219\000\219\000\219\000\220\000\219\000\219\000\219\000\
 
6029
    \219\000\219\000\219\000\219\000\219\000\220\000\220\000\220\000\
 
6030
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\255\255\
 
6031
    \255\255\220\000\255\255\255\255\255\255\220\000\220\000\220\000\
 
6032
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6033
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6034
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6035
    \255\255\255\255\255\255\255\255\220\000\255\255\220\000\220\000\
 
6036
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6037
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6038
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6039
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6040
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6041
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6042
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6043
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6044
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6045
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6046
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6047
    \255\255\255\255\255\255\255\255\255\255\220\000\220\000\220\000\
 
6048
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6049
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6050
    \220\000\220\000\220\000\220\000\255\255\220\000\220\000\220\000\
 
6051
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6052
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6053
    \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\
 
6054
    \220\000\220\000\220\000\220\000\221\000\220\000\220\000\220\000\
 
6055
    \220\000\220\000\220\000\220\000\220\000\221\000\221\000\221\000\
 
6056
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\
 
6057
    \255\255\221\000\255\255\255\255\255\255\255\255\221\000\221\000\
 
6058
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6059
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6060
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6061
    \255\255\255\255\255\255\255\255\221\000\255\255\221\000\221\000\
 
6062
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6063
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6064
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6065
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6066
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6067
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6068
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6069
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6070
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6071
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6072
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
 
6073
    \255\255\255\255\255\255\255\255\255\255\221\000\221\000\221\000\
 
6074
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6075
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6076
    \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\
 
6077
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6078
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6079
    \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\
 
6080
    \221\000\221\000\221\000\221\000\255\255\221\000\221\000\221\000\
 
6081
    \221\000\221\000\221\000\221\000\221\000\255\255";
5899
6082
                Lexing.lex_base_code =
5900
6083
                  "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
5901
6084
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
6287
6470
                    Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
6288
6471
                      lexbuf.Lexing.lex_curr_pos
6289
6472
                  in
6290
 
                    (try INT (int_of_string i, i)
 
6473
                    (try INT ((int_of_string i), i)
6291
6474
                     with
6292
6475
                     | Failure _ ->
6293
6476
                         err (Literal_overflow "int") (Loc.of_lexbuf lexbuf))
6296
6479
                    Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
6297
6480
                      lexbuf.Lexing.lex_curr_pos
6298
6481
                  in
6299
 
                    (try FLOAT (float_of_string f, f)
 
6482
                    (try FLOAT ((float_of_string f), f)
6300
6483
                     with
6301
6484
                     | Failure _ ->
6302
6485
                         err (Literal_overflow "float")
6306
6489
                    Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
6307
6490
                      (lexbuf.Lexing.lex_curr_pos + (-1))
6308
6491
                  in
6309
 
                    (try INT32 (Int32.of_string i, i)
 
6492
                    (try INT32 ((Int32.of_string i), i)
6310
6493
                     with
6311
6494
                     | Failure _ ->
6312
6495
                         err (Literal_overflow "int32")
6316
6499
                    Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
6317
6500
                      (lexbuf.Lexing.lex_curr_pos + (-1))
6318
6501
                  in
6319
 
                    (try INT64 (Int64.of_string i, i)
 
6502
                    (try INT64 ((Int64.of_string i), i)
6320
6503
                     with
6321
6504
                     | Failure _ ->
6322
6505
                         err (Literal_overflow "int64")
6326
6509
                    Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos
6327
6510
                      (lexbuf.Lexing.lex_curr_pos + (-1))
6328
6511
                  in
6329
 
                    (try NATIVEINT (Nativeint.of_string i, i)
 
6512
                    (try NATIVEINT ((Nativeint.of_string i), i)
6330
6513
                     with
6331
6514
                     | Failure _ ->
6332
6515
                         err (Literal_overflow "nativeint")
6333
6516
                           (Loc.of_lexbuf lexbuf))
6334
6517
              | 11 ->
6335
6518
                  (with_curr_loc string c;
6336
 
                   let s = buff_contents c in STRING (TokenEval.string s, s))
 
6519
                   let s = buff_contents c
 
6520
                   in STRING ((TokenEval.string s), s))
6337
6521
              | 12 ->
6338
6522
                  let x =
6339
6523
                    Lexing.sub_lexeme lexbuf
6340
6524
                      (lexbuf.Lexing.lex_start_pos + 1)
6341
6525
                      (lexbuf.Lexing.lex_curr_pos + (-1))
6342
6526
                  in
6343
 
                    (update_loc c None 1 false 1; CHAR (TokenEval.char x, x))
 
6527
                    (update_loc c None 1 false 1;
 
6528
                     CHAR ((TokenEval.char x), x))
6344
6529
              | 13 ->
6345
6530
                  let x =
6346
6531
                    Lexing.sub_lexeme lexbuf
6347
6532
                      (lexbuf.Lexing.lex_start_pos + 1)
6348
6533
                      (lexbuf.Lexing.lex_curr_pos + (-1))
6349
 
                  in CHAR (TokenEval.char x, x)
 
6534
                  in CHAR ((TokenEval.char x), x)
6350
6535
              | 14 ->
6351
6536
                  let c =
6352
6537
                    Lexing.sub_lexeme_char lexbuf
6638
6823
            and __ocaml_lex_antiquot_rec name c lexbuf __ocaml_lex_state =
6639
6824
              match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf
6640
6825
              with
6641
 
              | 0 -> (set_start_p c; ANTIQUOT (name, buff_contents c))
 
6826
              | 0 -> (set_start_p c; ANTIQUOT (name, (buff_contents c)))
6642
6827
              | 1 -> err Unterminated_antiquot (loc c)
6643
6828
              | 2 ->
6644
6829
                  (update_loc c None 1 false 0;
6775
6960
              let rec self =
6776
6961
                function
6777
6962
                | Ast.ExApp (_loc, e1, e2) ->
6778
 
                    Ast.IdApp (_loc, self e1, self e2)
 
6963
                    Ast.IdApp (_loc, (self e1), (self e2))
6779
6964
                | Ast.ExAcc (_loc, e1, e2) ->
6780
 
                    Ast.IdAcc (_loc, self e1, self e2)
 
6965
                    Ast.IdAcc (_loc, (self e1), (self e2))
6781
6966
                | Ast.ExId (_, (Ast.IdLid (_, _))) -> error ()
6782
6967
                | Ast.ExId (_, i) ->
6783
6968
                    if is_module_longident i then i else error ()
6794
6979
              let rec self =
6795
6980
                function
6796
6981
                | Ast.TyApp (_loc, t1, t2) ->
6797
 
                    Ast.IdApp (_loc, self t1, self t2)
 
6982
                    Ast.IdApp (_loc, (self t1), (self t2))
6798
6983
                | Ast.TyId (_, (Ast.IdLid (_, _))) -> error ()
6799
6984
                | Ast.TyId (_, i) ->
6800
6985
                    if is_module_longident i then i else error ()
6808
6993
              let rec self =
6809
6994
                function
6810
6995
                | Ast.PaApp (_loc, p1, p2) ->
6811
 
                    Ast.IdApp (_loc, self p1, self p2)
 
6996
                    Ast.IdApp (_loc, (self p1), (self p2))
6812
6997
                | Ast.PaId (_, (Ast.IdLid (_, _))) -> error ()
6813
6998
                | Ast.PaId (_, i) ->
6814
6999
                    if is_module_longident i then i else error ()
6875
7060
              | [ t ] -> t
6876
7061
              | t :: ts ->
6877
7062
                  let _loc = loc_of_ctyp t
6878
 
                  in Ast.TyOr (_loc, t, tyOr_of_list ts)
 
7063
                  in Ast.TyOr (_loc, t, (tyOr_of_list ts))
6879
7064
              
6880
7065
            let rec tyAnd_of_list =
6881
7066
              function
6883
7068
              | [ t ] -> t
6884
7069
              | t :: ts ->
6885
7070
                  let _loc = loc_of_ctyp t
6886
 
                  in Ast.TyAnd (_loc, t, tyAnd_of_list ts)
 
7071
                  in Ast.TyAnd (_loc, t, (tyAnd_of_list ts))
6887
7072
              
6888
7073
            let rec tySem_of_list =
6889
7074
              function
6891
7076
              | [ t ] -> t
6892
7077
              | t :: ts ->
6893
7078
                  let _loc = loc_of_ctyp t
6894
 
                  in Ast.TySem (_loc, t, tySem_of_list ts)
 
7079
                  in Ast.TySem (_loc, t, (tySem_of_list ts))
6895
7080
              
6896
7081
            let rec tyCom_of_list =
6897
7082
              function
6899
7084
              | [ t ] -> t
6900
7085
              | t :: ts ->
6901
7086
                  let _loc = loc_of_ctyp t
6902
 
                  in Ast.TyCom (_loc, t, tyCom_of_list ts)
 
7087
                  in Ast.TyCom (_loc, t, (tyCom_of_list ts))
6903
7088
              
6904
7089
            let rec tyAmp_of_list =
6905
7090
              function
6907
7092
              | [ t ] -> t
6908
7093
              | t :: ts ->
6909
7094
                  let _loc = loc_of_ctyp t
6910
 
                  in Ast.TyAmp (_loc, t, tyAmp_of_list ts)
 
7095
                  in Ast.TyAmp (_loc, t, (tyAmp_of_list ts))
6911
7096
              
6912
7097
            let rec tySta_of_list =
6913
7098
              function
6915
7100
              | [ t ] -> t
6916
7101
              | t :: ts ->
6917
7102
                  let _loc = loc_of_ctyp t
6918
 
                  in Ast.TySta (_loc, t, tySta_of_list ts)
 
7103
                  in Ast.TySta (_loc, t, (tySta_of_list ts))
6919
7104
              
6920
7105
            let rec stSem_of_list =
6921
7106
              function
6923
7108
              | [ t ] -> t
6924
7109
              | t :: ts ->
6925
7110
                  let _loc = loc_of_str_item t
6926
 
                  in Ast.StSem (_loc, t, stSem_of_list ts)
 
7111
                  in Ast.StSem (_loc, t, (stSem_of_list ts))
6927
7112
              
6928
7113
            let rec sgSem_of_list =
6929
7114
              function
6931
7116
              | [ t ] -> t
6932
7117
              | t :: ts ->
6933
7118
                  let _loc = loc_of_sig_item t
6934
 
                  in Ast.SgSem (_loc, t, sgSem_of_list ts)
 
7119
                  in Ast.SgSem (_loc, t, (sgSem_of_list ts))
6935
7120
              
6936
7121
            let rec biAnd_of_list =
6937
7122
              function
6939
7124
              | [ b ] -> b
6940
7125
              | b :: bs ->
6941
7126
                  let _loc = loc_of_binding b
6942
 
                  in Ast.BiAnd (_loc, b, biAnd_of_list bs)
 
7127
                  in Ast.BiAnd (_loc, b, (biAnd_of_list bs))
6943
7128
              
6944
7129
            let rec rbSem_of_list =
6945
7130
              function
6947
7132
              | [ b ] -> b
6948
7133
              | b :: bs ->
6949
7134
                  let _loc = loc_of_rec_binding b
6950
 
                  in Ast.RbSem (_loc, b, rbSem_of_list bs)
 
7135
                  in Ast.RbSem (_loc, b, (rbSem_of_list bs))
6951
7136
              
6952
7137
            let rec wcAnd_of_list =
6953
7138
              function
6955
7140
              | [ w ] -> w
6956
7141
              | w :: ws ->
6957
7142
                  let _loc = loc_of_with_constr w
6958
 
                  in Ast.WcAnd (_loc, w, wcAnd_of_list ws)
 
7143
                  in Ast.WcAnd (_loc, w, (wcAnd_of_list ws))
6959
7144
              
6960
7145
            let rec idAcc_of_list =
6961
7146
              function
6963
7148
              | [ i ] -> i
6964
7149
              | i :: is ->
6965
7150
                  let _loc = loc_of_ident i
6966
 
                  in Ast.IdAcc (_loc, i, idAcc_of_list is)
 
7151
                  in Ast.IdAcc (_loc, i, (idAcc_of_list is))
6967
7152
              
6968
7153
            let rec idApp_of_list =
6969
7154
              function
6971
7156
              | [ i ] -> i
6972
7157
              | i :: is ->
6973
7158
                  let _loc = loc_of_ident i
6974
 
                  in Ast.IdApp (_loc, i, idApp_of_list is)
 
7159
                  in Ast.IdApp (_loc, i, (idApp_of_list is))
6975
7160
              
6976
7161
            let rec mcOr_of_list =
6977
7162
              function
6979
7164
              | [ x ] -> x
6980
7165
              | x :: xs ->
6981
7166
                  let _loc = loc_of_match_case x
6982
 
                  in Ast.McOr (_loc, x, mcOr_of_list xs)
 
7167
                  in Ast.McOr (_loc, x, (mcOr_of_list xs))
6983
7168
              
6984
7169
            let rec mbAnd_of_list =
6985
7170
              function
6987
7172
              | [ x ] -> x
6988
7173
              | x :: xs ->
6989
7174
                  let _loc = loc_of_module_binding x
6990
 
                  in Ast.MbAnd (_loc, x, mbAnd_of_list xs)
 
7175
                  in Ast.MbAnd (_loc, x, (mbAnd_of_list xs))
6991
7176
              
6992
7177
            let rec meApp_of_list =
6993
7178
              function
6995
7180
              | [ x ] -> x
6996
7181
              | x :: xs ->
6997
7182
                  let _loc = loc_of_module_expr x
6998
 
                  in Ast.MeApp (_loc, x, meApp_of_list xs)
 
7183
                  in Ast.MeApp (_loc, x, (meApp_of_list xs))
6999
7184
              
7000
7185
            let rec ceAnd_of_list =
7001
7186
              function
7003
7188
              | [ x ] -> x
7004
7189
              | x :: xs ->
7005
7190
                  let _loc = loc_of_class_expr x
7006
 
                  in Ast.CeAnd (_loc, x, ceAnd_of_list xs)
 
7191
                  in Ast.CeAnd (_loc, x, (ceAnd_of_list xs))
7007
7192
              
7008
7193
            let rec ctAnd_of_list =
7009
7194
              function
7011
7196
              | [ x ] -> x
7012
7197
              | x :: xs ->
7013
7198
                  let _loc = loc_of_class_type x
7014
 
                  in Ast.CtAnd (_loc, x, ctAnd_of_list xs)
 
7199
                  in Ast.CtAnd (_loc, x, (ctAnd_of_list xs))
7015
7200
              
7016
7201
            let rec cgSem_of_list =
7017
7202
              function
7019
7204
              | [ x ] -> x
7020
7205
              | x :: xs ->
7021
7206
                  let _loc = loc_of_class_sig_item x
7022
 
                  in Ast.CgSem (_loc, x, cgSem_of_list xs)
 
7207
                  in Ast.CgSem (_loc, x, (cgSem_of_list xs))
7023
7208
              
7024
7209
            let rec crSem_of_list =
7025
7210
              function
7027
7212
              | [ x ] -> x
7028
7213
              | x :: xs ->
7029
7214
                  let _loc = loc_of_class_str_item x
7030
 
                  in Ast.CrSem (_loc, x, crSem_of_list xs)
 
7215
                  in Ast.CrSem (_loc, x, (crSem_of_list xs))
7031
7216
              
7032
7217
            let rec paSem_of_list =
7033
7218
              function
7035
7220
              | [ x ] -> x
7036
7221
              | x :: xs ->
7037
7222
                  let _loc = loc_of_patt x
7038
 
                  in Ast.PaSem (_loc, x, paSem_of_list xs)
 
7223
                  in Ast.PaSem (_loc, x, (paSem_of_list xs))
7039
7224
              
7040
7225
            let rec paCom_of_list =
7041
7226
              function
7043
7228
              | [ x ] -> x
7044
7229
              | x :: xs ->
7045
7230
                  let _loc = loc_of_patt x
7046
 
                  in Ast.PaCom (_loc, x, paCom_of_list xs)
 
7231
                  in Ast.PaCom (_loc, x, (paCom_of_list xs))
7047
7232
              
7048
7233
            let rec exSem_of_list =
7049
7234
              function
7051
7236
              | [ x ] -> x
7052
7237
              | x :: xs ->
7053
7238
                  let _loc = loc_of_expr x
7054
 
                  in Ast.ExSem (_loc, x, exSem_of_list xs)
 
7239
                  in Ast.ExSem (_loc, x, (exSem_of_list xs))
7055
7240
              
7056
7241
            let rec exCom_of_list =
7057
7242
              function
7059
7244
              | [ x ] -> x
7060
7245
              | x :: xs ->
7061
7246
                  let _loc = loc_of_expr x
7062
 
                  in Ast.ExCom (_loc, x, exCom_of_list xs)
 
7247
                  in Ast.ExCom (_loc, x, (exCom_of_list xs))
7063
7248
              
7064
7249
            let ty_of_stl =
7065
7250
              function
7066
 
              | (_loc, s, []) -> Ast.TyId (_loc, Ast.IdUid (_loc, s))
 
7251
              | (_loc, s, []) -> Ast.TyId (_loc, (Ast.IdUid (_loc, s)))
7067
7252
              | (_loc, s, tl) ->
7068
 
                  Ast.TyOf (_loc, Ast.TyId (_loc, Ast.IdUid (_loc, s)),
7069
 
                    tyAnd_of_list tl)
 
7253
                  Ast.TyOf (_loc, (Ast.TyId (_loc, (Ast.IdUid (_loc, s)))),
 
7254
                    (tyAnd_of_list tl))
7070
7255
              
7071
7256
            let ty_of_sbt =
7072
7257
              function
7073
7258
              | (_loc, s, true, t) ->
7074
 
                  Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)),
7075
 
                    Ast.TyMut (_loc, t))
 
7259
                  Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
 
7260
                    (Ast.TyMut (_loc, t)))
7076
7261
              | (_loc, s, false, t) ->
7077
 
                  Ast.TyCol (_loc, Ast.TyId (_loc, Ast.IdLid (_loc, s)), t)
 
7262
                  Ast.TyCol (_loc, (Ast.TyId (_loc, (Ast.IdLid (_loc, s)))),
 
7263
                    t)
7078
7264
              
7079
7265
            let bi_of_pe (p, e) =
7080
7266
              let _loc = loc_of_patt p in Ast.BiEq (_loc, p, e)
7214
7400
                      let (a, b, c, d, e, f, g, h) = Loc.to_tuple location
7215
7401
                      in
7216
7402
                        Ast.PaApp (_loc,
7217
 
                          Ast.PaId (_loc,
7218
 
                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
7219
 
                              Ast.IdLid (_loc, "of_tuple"))),
7220
 
                          Ast.PaTup (_loc,
7221
 
                            Ast.PaCom (_loc,
7222
 
                              Ast.PaStr (_loc, Ast.safe_string_escaped a),
7223
 
                              Ast.PaCom (_loc,
7224
 
                                Ast.PaCom (_loc,
7225
 
                                  Ast.PaCom (_loc,
7226
 
                                    Ast.PaCom (_loc,
7227
 
                                      Ast.PaCom (_loc,
7228
 
                                        Ast.PaCom (_loc,
7229
 
                                          Ast.PaInt (_loc, string_of_int b),
7230
 
                                          Ast.PaInt (_loc, string_of_int c)),
7231
 
                                        Ast.PaInt (_loc, string_of_int d)),
7232
 
                                      Ast.PaInt (_loc, string_of_int e)),
7233
 
                                    Ast.PaInt (_loc, string_of_int f)),
7234
 
                                  Ast.PaInt (_loc, string_of_int g)),
7235
 
                                if h
7236
 
                                then
7237
 
                                  Ast.PaId (_loc, Ast.IdUid (_loc, "True"))
7238
 
                                else
7239
 
                                  Ast.PaId (_loc, Ast.IdUid (_loc, "False"))))))
 
7403
                          (Ast.PaId (_loc,
 
7404
                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
 
7405
                                (Ast.IdLid (_loc, "of_tuple")))))),
 
7406
                          (Ast.PaTup (_loc,
 
7407
                             (Ast.PaCom (_loc,
 
7408
                                (Ast.PaStr (_loc,
 
7409
                                   (Ast.safe_string_escaped a))),
 
7410
                                (Ast.PaCom (_loc,
 
7411
                                   (Ast.PaCom (_loc,
 
7412
                                      (Ast.PaCom (_loc,
 
7413
                                         (Ast.PaCom (_loc,
 
7414
                                            (Ast.PaCom (_loc,
 
7415
                                               (Ast.PaCom (_loc,
 
7416
                                                  (Ast.PaInt (_loc,
 
7417
                                                     (string_of_int b))),
 
7418
                                                  (Ast.PaInt (_loc,
 
7419
                                                     (string_of_int c))))),
 
7420
                                               (Ast.PaInt (_loc,
 
7421
                                                  (string_of_int d))))),
 
7422
                                            (Ast.PaInt (_loc,
 
7423
                                               (string_of_int e))))),
 
7424
                                         (Ast.PaInt (_loc, (string_of_int f))))),
 
7425
                                      (Ast.PaInt (_loc, (string_of_int g))))),
 
7426
                                   (if h
 
7427
                                    then
 
7428
                                      Ast.PaId (_loc,
 
7429
                                        (Ast.IdUid (_loc, "True")))
 
7430
                                    else
 
7431
                                      Ast.PaId (_loc,
 
7432
                                        (Ast.IdUid (_loc, "False")))))))))))
7240
7433
                      
7241
7434
                    let meta_loc_expr _loc location =
7242
7435
                      let (a, b, c, d, e, f, g, h) = Loc.to_tuple location
7243
7436
                      in
7244
7437
                        Ast.ExApp (_loc,
7245
 
                          Ast.ExId (_loc,
7246
 
                            Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
7247
 
                              Ast.IdLid (_loc, "of_tuple"))),
7248
 
                          Ast.ExTup (_loc,
7249
 
                            Ast.ExCom (_loc,
7250
 
                              Ast.ExStr (_loc, Ast.safe_string_escaped a),
7251
 
                              Ast.ExCom (_loc,
7252
 
                                Ast.ExCom (_loc,
7253
 
                                  Ast.ExCom (_loc,
7254
 
                                    Ast.ExCom (_loc,
7255
 
                                      Ast.ExCom (_loc,
7256
 
                                        Ast.ExCom (_loc,
7257
 
                                          Ast.ExInt (_loc, string_of_int b),
7258
 
                                          Ast.ExInt (_loc, string_of_int c)),
7259
 
                                        Ast.ExInt (_loc, string_of_int d)),
7260
 
                                      Ast.ExInt (_loc, string_of_int e)),
7261
 
                                    Ast.ExInt (_loc, string_of_int f)),
7262
 
                                  Ast.ExInt (_loc, string_of_int g)),
7263
 
                                if h
7264
 
                                then
7265
 
                                  Ast.ExId (_loc, Ast.IdUid (_loc, "True"))
7266
 
                                else
7267
 
                                  Ast.ExId (_loc, Ast.IdUid (_loc, "False"))))))
 
7438
                          (Ast.ExId (_loc,
 
7439
                             (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
 
7440
                                (Ast.IdLid (_loc, "of_tuple")))))),
 
7441
                          (Ast.ExTup (_loc,
 
7442
                             (Ast.ExCom (_loc,
 
7443
                                (Ast.ExStr (_loc,
 
7444
                                   (Ast.safe_string_escaped a))),
 
7445
                                (Ast.ExCom (_loc,
 
7446
                                   (Ast.ExCom (_loc,
 
7447
                                      (Ast.ExCom (_loc,
 
7448
                                         (Ast.ExCom (_loc,
 
7449
                                            (Ast.ExCom (_loc,
 
7450
                                               (Ast.ExCom (_loc,
 
7451
                                                  (Ast.ExInt (_loc,
 
7452
                                                     (string_of_int b))),
 
7453
                                                  (Ast.ExInt (_loc,
 
7454
                                                     (string_of_int c))))),
 
7455
                                               (Ast.ExInt (_loc,
 
7456
                                                  (string_of_int d))))),
 
7457
                                            (Ast.ExInt (_loc,
 
7458
                                               (string_of_int e))))),
 
7459
                                         (Ast.ExInt (_loc, (string_of_int f))))),
 
7460
                                      (Ast.ExInt (_loc, (string_of_int g))))),
 
7461
                                   (if h
 
7462
                                    then
 
7463
                                      Ast.ExId (_loc,
 
7464
                                        (Ast.IdUid (_loc, "True")))
 
7465
                                    else
 
7466
                                      Ast.ExId (_loc,
 
7467
                                        (Ast.IdUid (_loc, "False")))))))))))
7268
7468
                      
7269
7469
                  end
7270
7470
                  
7272
7472
                  struct
7273
7473
                    let meta_loc_patt _loc _ =
7274
7474
                      Ast.PaId (_loc,
7275
 
                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
7276
 
                          Ast.IdLid (_loc, "ghost")))
 
7475
                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
 
7476
                           (Ast.IdLid (_loc, "ghost")))))
7277
7477
                      
7278
7478
                    let meta_loc_expr _loc _ =
7279
7479
                      Ast.ExId (_loc,
7280
 
                        Ast.IdAcc (_loc, Ast.IdUid (_loc, "Loc"),
7281
 
                          Ast.IdLid (_loc, "ghost")))
 
7480
                        (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Loc")),
 
7481
                           (Ast.IdLid (_loc, "ghost")))))
7282
7482
                      
7283
7483
                  end
7284
7484
                  
7285
7485
                module MetaLocVar =
7286
7486
                  struct
7287
7487
                    let meta_loc_patt _loc _ =
7288
 
                      Ast.PaId (_loc, Ast.IdLid (_loc, !Loc.name))
 
7488
                      Ast.PaId (_loc, (Ast.IdLid (_loc, !Loc.name)))
7289
7489
                      
7290
7490
                    let meta_loc_expr _loc _ =
7291
 
                      Ast.ExId (_loc, Ast.IdLid (_loc, !Loc.name))
 
7491
                      Ast.ExId (_loc, (Ast.IdLid (_loc, !Loc.name)))
7292
7492
                      
7293
7493
                  end
7294
7494
                  
7311
7511
                        let meta_bool _loc =
7312
7512
                          function
7313
7513
                          | false ->
7314
 
                              Ast.ExId (_loc, Ast.IdUid (_loc, "False"))
7315
 
                          | true -> Ast.ExId (_loc, Ast.IdUid (_loc, "True"))
 
7514
                              Ast.ExId (_loc, (Ast.IdUid (_loc, "False")))
 
7515
                          | true ->
 
7516
                              Ast.ExId (_loc, (Ast.IdUid (_loc, "True")))
7316
7517
                          
7317
7518
                        let rec meta_list mf_a _loc =
7318
7519
                          function
7319
 
                          | [] -> Ast.ExId (_loc, Ast.IdUid (_loc, "[]"))
 
7520
                          | [] -> Ast.ExId (_loc, (Ast.IdUid (_loc, "[]")))
7320
7521
                          | x :: xs ->
7321
7522
                              Ast.ExApp (_loc,
7322
 
                                Ast.ExApp (_loc,
7323
 
                                  Ast.ExId (_loc, Ast.IdUid (_loc, "::")),
7324
 
                                  mf_a _loc x),
7325
 
                                meta_list mf_a _loc xs)
 
7523
                                (Ast.ExApp (_loc,
 
7524
                                   (Ast.ExId (_loc, (Ast.IdUid (_loc, "::")))),
 
7525
                                   (mf_a _loc x))),
 
7526
                                (meta_list mf_a _loc xs))
7326
7527
                          
7327
7528
                        let rec meta_binding _loc =
7328
7529
                          function
7329
7530
                          | Ast.BiAnt (x0, x1) -> Ast.ExAnt (x0, x1)
7330
7531
                          | Ast.BiEq (x0, x1, x2) ->
7331
7532
                              Ast.ExApp (_loc,
7332
 
                                Ast.ExApp (_loc,
7333
 
                                  Ast.ExApp (_loc,
7334
 
                                    Ast.ExId (_loc,
7335
 
                                      Ast.IdAcc (_loc,
7336
 
                                        Ast.IdUid (_loc, "Ast"),
7337
 
                                        Ast.IdUid (_loc, "BiEq"))),
7338
 
                                    meta_loc _loc x0),
7339
 
                                  meta_patt _loc x1),
7340
 
                                meta_expr _loc x2)
 
7533
                                (Ast.ExApp (_loc,
 
7534
                                   (Ast.ExApp (_loc,
 
7535
                                      (Ast.ExId (_loc,
 
7536
                                         (Ast.IdAcc (_loc,
 
7537
                                            (Ast.IdUid (_loc, "Ast")),
 
7538
                                            (Ast.IdUid (_loc, "BiEq")))))),
 
7539
                                      (meta_loc _loc x0))),
 
7540
                                   (meta_patt _loc x1))),
 
7541
                                (meta_expr _loc x2))
7341
7542
                          | Ast.BiAnd (x0, x1, x2) ->
7342
7543
                              Ast.ExApp (_loc,
7343
 
                                Ast.ExApp (_loc,
7344
 
                                  Ast.ExApp (_loc,
7345
 
                                    Ast.ExId (_loc,
7346
 
                                      Ast.IdAcc (_loc,
7347
 
                                        Ast.IdUid (_loc, "Ast"),
7348
 
                                        Ast.IdUid (_loc, "BiAnd"))),
7349
 
                                    meta_loc _loc x0),
7350
 
                                  meta_binding _loc x1),
7351
 
                                meta_binding _loc x2)
 
7544
                                (Ast.ExApp (_loc,
 
7545
                                   (Ast.ExApp (_loc,
 
7546
                                      (Ast.ExId (_loc,
 
7547
                                         (Ast.IdAcc (_loc,
 
7548
                                            (Ast.IdUid (_loc, "Ast")),
 
7549
                                            (Ast.IdUid (_loc, "BiAnd")))))),
 
7550
                                      (meta_loc _loc x0))),
 
7551
                                   (meta_binding _loc x1))),
 
7552
                                (meta_binding _loc x2))
7352
7553
                          | Ast.BiNil x0 ->
7353
7554
                              Ast.ExApp (_loc,
7354
 
                                Ast.ExId (_loc,
7355
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7356
 
                                    Ast.IdUid (_loc, "BiNil"))),
7357
 
                                meta_loc _loc x0)
 
7555
                                (Ast.ExId (_loc,
 
7556
                                   (Ast.IdAcc (_loc,
 
7557
                                      (Ast.IdUid (_loc, "Ast")),
 
7558
                                      (Ast.IdUid (_loc, "BiNil")))))),
 
7559
                                (meta_loc _loc x0))
7358
7560
                        and meta_class_expr _loc =
7359
7561
                          function
7360
7562
                          | Ast.CeAnt (x0, x1) -> Ast.ExAnt (x0, x1)
7361
7563
                          | Ast.CeEq (x0, x1, x2) ->
7362
7564
                              Ast.ExApp (_loc,
7363
 
                                Ast.ExApp (_loc,
7364
 
                                  Ast.ExApp (_loc,
7365
 
                                    Ast.ExId (_loc,
7366
 
                                      Ast.IdAcc (_loc,
7367
 
                                        Ast.IdUid (_loc, "Ast"),
7368
 
                                        Ast.IdUid (_loc, "CeEq"))),
7369
 
                                    meta_loc _loc x0),
7370
 
                                  meta_class_expr _loc x1),
7371
 
                                meta_class_expr _loc x2)
 
7565
                                (Ast.ExApp (_loc,
 
7566
                                   (Ast.ExApp (_loc,
 
7567
                                      (Ast.ExId (_loc,
 
7568
                                         (Ast.IdAcc (_loc,
 
7569
                                            (Ast.IdUid (_loc, "Ast")),
 
7570
                                            (Ast.IdUid (_loc, "CeEq")))))),
 
7571
                                      (meta_loc _loc x0))),
 
7572
                                   (meta_class_expr _loc x1))),
 
7573
                                (meta_class_expr _loc x2))
7372
7574
                          | Ast.CeAnd (x0, x1, x2) ->
7373
7575
                              Ast.ExApp (_loc,
7374
 
                                Ast.ExApp (_loc,
7375
 
                                  Ast.ExApp (_loc,
7376
 
                                    Ast.ExId (_loc,
7377
 
                                      Ast.IdAcc (_loc,
7378
 
                                        Ast.IdUid (_loc, "Ast"),
7379
 
                                        Ast.IdUid (_loc, "CeAnd"))),
7380
 
                                    meta_loc _loc x0),
7381
 
                                  meta_class_expr _loc x1),
7382
 
                                meta_class_expr _loc x2)
 
7576
                                (Ast.ExApp (_loc,
 
7577
                                   (Ast.ExApp (_loc,
 
7578
                                      (Ast.ExId (_loc,
 
7579
                                         (Ast.IdAcc (_loc,
 
7580
                                            (Ast.IdUid (_loc, "Ast")),
 
7581
                                            (Ast.IdUid (_loc, "CeAnd")))))),
 
7582
                                      (meta_loc _loc x0))),
 
7583
                                   (meta_class_expr _loc x1))),
 
7584
                                (meta_class_expr _loc x2))
7383
7585
                          | Ast.CeTyc (x0, x1, x2) ->
7384
7586
                              Ast.ExApp (_loc,
7385
 
                                Ast.ExApp (_loc,
7386
 
                                  Ast.ExApp (_loc,
7387
 
                                    Ast.ExId (_loc,
7388
 
                                      Ast.IdAcc (_loc,
7389
 
                                        Ast.IdUid (_loc, "Ast"),
7390
 
                                        Ast.IdUid (_loc, "CeTyc"))),
7391
 
                                    meta_loc _loc x0),
7392
 
                                  meta_class_expr _loc x1),
7393
 
                                meta_class_type _loc x2)
 
7587
                                (Ast.ExApp (_loc,
 
7588
                                   (Ast.ExApp (_loc,
 
7589
                                      (Ast.ExId (_loc,
 
7590
                                         (Ast.IdAcc (_loc,
 
7591
                                            (Ast.IdUid (_loc, "Ast")),
 
7592
                                            (Ast.IdUid (_loc, "CeTyc")))))),
 
7593
                                      (meta_loc _loc x0))),
 
7594
                                   (meta_class_expr _loc x1))),
 
7595
                                (meta_class_type _loc x2))
7394
7596
                          | Ast.CeStr (x0, x1, x2) ->
7395
7597
                              Ast.ExApp (_loc,
7396
 
                                Ast.ExApp (_loc,
7397
 
                                  Ast.ExApp (_loc,
7398
 
                                    Ast.ExId (_loc,
7399
 
                                      Ast.IdAcc (_loc,
7400
 
                                        Ast.IdUid (_loc, "Ast"),
7401
 
                                        Ast.IdUid (_loc, "CeStr"))),
7402
 
                                    meta_loc _loc x0),
7403
 
                                  meta_patt _loc x1),
7404
 
                                meta_class_str_item _loc x2)
 
7598
                                (Ast.ExApp (_loc,
 
7599
                                   (Ast.ExApp (_loc,
 
7600
                                      (Ast.ExId (_loc,
 
7601
                                         (Ast.IdAcc (_loc,
 
7602
                                            (Ast.IdUid (_loc, "Ast")),
 
7603
                                            (Ast.IdUid (_loc, "CeStr")))))),
 
7604
                                      (meta_loc _loc x0))),
 
7605
                                   (meta_patt _loc x1))),
 
7606
                                (meta_class_str_item _loc x2))
7405
7607
                          | Ast.CeLet (x0, x1, x2, x3) ->
7406
7608
                              Ast.ExApp (_loc,
7407
 
                                Ast.ExApp (_loc,
7408
 
                                  Ast.ExApp (_loc,
7409
 
                                    Ast.ExApp (_loc,
7410
 
                                      Ast.ExId (_loc,
7411
 
                                        Ast.IdAcc (_loc,
7412
 
                                          Ast.IdUid (_loc, "Ast"),
7413
 
                                          Ast.IdUid (_loc, "CeLet"))),
7414
 
                                      meta_loc _loc x0),
7415
 
                                    meta_meta_bool _loc x1),
7416
 
                                  meta_binding _loc x2),
7417
 
                                meta_class_expr _loc x3)
 
7609
                                (Ast.ExApp (_loc,
 
7610
                                   (Ast.ExApp (_loc,
 
7611
                                      (Ast.ExApp (_loc,
 
7612
                                         (Ast.ExId (_loc,
 
7613
                                            (Ast.IdAcc (_loc,
 
7614
                                               (Ast.IdUid (_loc, "Ast")),
 
7615
                                               (Ast.IdUid (_loc, "CeLet")))))),
 
7616
                                         (meta_loc _loc x0))),
 
7617
                                      (meta_rec_flag _loc x1))),
 
7618
                                   (meta_binding _loc x2))),
 
7619
                                (meta_class_expr _loc x3))
7418
7620
                          | Ast.CeFun (x0, x1, x2) ->
7419
7621
                              Ast.ExApp (_loc,
7420
 
                                Ast.ExApp (_loc,
7421
 
                                  Ast.ExApp (_loc,
7422
 
                                    Ast.ExId (_loc,
7423
 
                                      Ast.IdAcc (_loc,
7424
 
                                        Ast.IdUid (_loc, "Ast"),
7425
 
                                        Ast.IdUid (_loc, "CeFun"))),
7426
 
                                    meta_loc _loc x0),
7427
 
                                  meta_patt _loc x1),
7428
 
                                meta_class_expr _loc x2)
 
7622
                                (Ast.ExApp (_loc,
 
7623
                                   (Ast.ExApp (_loc,
 
7624
                                      (Ast.ExId (_loc,
 
7625
                                         (Ast.IdAcc (_loc,
 
7626
                                            (Ast.IdUid (_loc, "Ast")),
 
7627
                                            (Ast.IdUid (_loc, "CeFun")))))),
 
7628
                                      (meta_loc _loc x0))),
 
7629
                                   (meta_patt _loc x1))),
 
7630
                                (meta_class_expr _loc x2))
7429
7631
                          | Ast.CeCon (x0, x1, x2, x3) ->
7430
7632
                              Ast.ExApp (_loc,
7431
 
                                Ast.ExApp (_loc,
7432
 
                                  Ast.ExApp (_loc,
7433
 
                                    Ast.ExApp (_loc,
7434
 
                                      Ast.ExId (_loc,
7435
 
                                        Ast.IdAcc (_loc,
7436
 
                                          Ast.IdUid (_loc, "Ast"),
7437
 
                                          Ast.IdUid (_loc, "CeCon"))),
7438
 
                                      meta_loc _loc x0),
7439
 
                                    meta_meta_bool _loc x1),
7440
 
                                  meta_ident _loc x2),
7441
 
                                meta_ctyp _loc x3)
 
7633
                                (Ast.ExApp (_loc,
 
7634
                                   (Ast.ExApp (_loc,
 
7635
                                      (Ast.ExApp (_loc,
 
7636
                                         (Ast.ExId (_loc,
 
7637
                                            (Ast.IdAcc (_loc,
 
7638
                                               (Ast.IdUid (_loc, "Ast")),
 
7639
                                               (Ast.IdUid (_loc, "CeCon")))))),
 
7640
                                         (meta_loc _loc x0))),
 
7641
                                      (meta_virtual_flag _loc x1))),
 
7642
                                   (meta_ident _loc x2))),
 
7643
                                (meta_ctyp _loc x3))
7442
7644
                          | Ast.CeApp (x0, x1, x2) ->
7443
7645
                              Ast.ExApp (_loc,
7444
 
                                Ast.ExApp (_loc,
7445
 
                                  Ast.ExApp (_loc,
7446
 
                                    Ast.ExId (_loc,
7447
 
                                      Ast.IdAcc (_loc,
7448
 
                                        Ast.IdUid (_loc, "Ast"),
7449
 
                                        Ast.IdUid (_loc, "CeApp"))),
7450
 
                                    meta_loc _loc x0),
7451
 
                                  meta_class_expr _loc x1),
7452
 
                                meta_expr _loc x2)
 
7646
                                (Ast.ExApp (_loc,
 
7647
                                   (Ast.ExApp (_loc,
 
7648
                                      (Ast.ExId (_loc,
 
7649
                                         (Ast.IdAcc (_loc,
 
7650
                                            (Ast.IdUid (_loc, "Ast")),
 
7651
                                            (Ast.IdUid (_loc, "CeApp")))))),
 
7652
                                      (meta_loc _loc x0))),
 
7653
                                   (meta_class_expr _loc x1))),
 
7654
                                (meta_expr _loc x2))
7453
7655
                          | Ast.CeNil x0 ->
7454
7656
                              Ast.ExApp (_loc,
7455
 
                                Ast.ExId (_loc,
7456
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7457
 
                                    Ast.IdUid (_loc, "CeNil"))),
7458
 
                                meta_loc _loc x0)
 
7657
                                (Ast.ExId (_loc,
 
7658
                                   (Ast.IdAcc (_loc,
 
7659
                                      (Ast.IdUid (_loc, "Ast")),
 
7660
                                      (Ast.IdUid (_loc, "CeNil")))))),
 
7661
                                (meta_loc _loc x0))
7459
7662
                        and meta_class_sig_item _loc =
7460
7663
                          function
7461
7664
                          | Ast.CgAnt (x0, x1) -> Ast.ExAnt (x0, x1)
7462
7665
                          | Ast.CgVir (x0, x1, x2, x3) ->
7463
7666
                              Ast.ExApp (_loc,
7464
 
                                Ast.ExApp (_loc,
7465
 
                                  Ast.ExApp (_loc,
7466
 
                                    Ast.ExApp (_loc,
7467
 
                                      Ast.ExId (_loc,
7468
 
                                        Ast.IdAcc (_loc,
7469
 
                                          Ast.IdUid (_loc, "Ast"),
7470
 
                                          Ast.IdUid (_loc, "CgVir"))),
7471
 
                                      meta_loc _loc x0),
7472
 
                                    meta_string _loc x1),
7473
 
                                  meta_meta_bool _loc x2),
7474
 
                                meta_ctyp _loc x3)
 
7667
                                (Ast.ExApp (_loc,
 
7668
                                   (Ast.ExApp (_loc,
 
7669
                                      (Ast.ExApp (_loc,
 
7670
                                         (Ast.ExId (_loc,
 
7671
                                            (Ast.IdAcc (_loc,
 
7672
                                               (Ast.IdUid (_loc, "Ast")),
 
7673
                                               (Ast.IdUid (_loc, "CgVir")))))),
 
7674
                                         (meta_loc _loc x0))),
 
7675
                                      (meta_string _loc x1))),
 
7676
                                   (meta_private_flag _loc x2))),
 
7677
                                (meta_ctyp _loc x3))
7475
7678
                          | Ast.CgVal (x0, x1, x2, x3, x4) ->
7476
7679
                              Ast.ExApp (_loc,
7477
 
                                Ast.ExApp (_loc,
7478
 
                                  Ast.ExApp (_loc,
7479
 
                                    Ast.ExApp (_loc,
7480
 
                                      Ast.ExApp (_loc,
7481
 
                                        Ast.ExId (_loc,
7482
 
                                          Ast.IdAcc (_loc,
7483
 
                                            Ast.IdUid (_loc, "Ast"),
7484
 
                                            Ast.IdUid (_loc, "CgVal"))),
7485
 
                                        meta_loc _loc x0),
7486
 
                                      meta_string _loc x1),
7487
 
                                    meta_meta_bool _loc x2),
7488
 
                                  meta_meta_bool _loc x3),
7489
 
                                meta_ctyp _loc x4)
 
7680
                                (Ast.ExApp (_loc,
 
7681
                                   (Ast.ExApp (_loc,
 
7682
                                      (Ast.ExApp (_loc,
 
7683
                                         (Ast.ExApp (_loc,
 
7684
                                            (Ast.ExId (_loc,
 
7685
                                               (Ast.IdAcc (_loc,
 
7686
                                                  (Ast.IdUid (_loc, "Ast")),
 
7687
                                                  (Ast.IdUid (_loc, "CgVal")))))),
 
7688
                                            (meta_loc _loc x0))),
 
7689
                                         (meta_string _loc x1))),
 
7690
                                      (meta_mutable_flag _loc x2))),
 
7691
                                   (meta_virtual_flag _loc x3))),
 
7692
                                (meta_ctyp _loc x4))
7490
7693
                          | Ast.CgMth (x0, x1, x2, x3) ->
7491
7694
                              Ast.ExApp (_loc,
7492
 
                                Ast.ExApp (_loc,
7493
 
                                  Ast.ExApp (_loc,
7494
 
                                    Ast.ExApp (_loc,
7495
 
                                      Ast.ExId (_loc,
7496
 
                                        Ast.IdAcc (_loc,
7497
 
                                          Ast.IdUid (_loc, "Ast"),
7498
 
                                          Ast.IdUid (_loc, "CgMth"))),
7499
 
                                      meta_loc _loc x0),
7500
 
                                    meta_string _loc x1),
7501
 
                                  meta_meta_bool _loc x2),
7502
 
                                meta_ctyp _loc x3)
 
7695
                                (Ast.ExApp (_loc,
 
7696
                                   (Ast.ExApp (_loc,
 
7697
                                      (Ast.ExApp (_loc,
 
7698
                                         (Ast.ExId (_loc,
 
7699
                                            (Ast.IdAcc (_loc,
 
7700
                                               (Ast.IdUid (_loc, "Ast")),
 
7701
                                               (Ast.IdUid (_loc, "CgMth")))))),
 
7702
                                         (meta_loc _loc x0))),
 
7703
                                      (meta_string _loc x1))),
 
7704
                                   (meta_private_flag _loc x2))),
 
7705
                                (meta_ctyp _loc x3))
7503
7706
                          | Ast.CgInh (x0, x1) ->
7504
7707
                              Ast.ExApp (_loc,
7505
 
                                Ast.ExApp (_loc,
7506
 
                                  Ast.ExId (_loc,
7507
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7508
 
                                      Ast.IdUid (_loc, "CgInh"))),
7509
 
                                  meta_loc _loc x0),
7510
 
                                meta_class_type _loc x1)
 
7708
                                (Ast.ExApp (_loc,
 
7709
                                   (Ast.ExId (_loc,
 
7710
                                      (Ast.IdAcc (_loc,
 
7711
                                         (Ast.IdUid (_loc, "Ast")),
 
7712
                                         (Ast.IdUid (_loc, "CgInh")))))),
 
7713
                                   (meta_loc _loc x0))),
 
7714
                                (meta_class_type _loc x1))
7511
7715
                          | Ast.CgSem (x0, x1, x2) ->
7512
7716
                              Ast.ExApp (_loc,
7513
 
                                Ast.ExApp (_loc,
7514
 
                                  Ast.ExApp (_loc,
7515
 
                                    Ast.ExId (_loc,
7516
 
                                      Ast.IdAcc (_loc,
7517
 
                                        Ast.IdUid (_loc, "Ast"),
7518
 
                                        Ast.IdUid (_loc, "CgSem"))),
7519
 
                                    meta_loc _loc x0),
7520
 
                                  meta_class_sig_item _loc x1),
7521
 
                                meta_class_sig_item _loc x2)
 
7717
                                (Ast.ExApp (_loc,
 
7718
                                   (Ast.ExApp (_loc,
 
7719
                                      (Ast.ExId (_loc,
 
7720
                                         (Ast.IdAcc (_loc,
 
7721
                                            (Ast.IdUid (_loc, "Ast")),
 
7722
                                            (Ast.IdUid (_loc, "CgSem")))))),
 
7723
                                      (meta_loc _loc x0))),
 
7724
                                   (meta_class_sig_item _loc x1))),
 
7725
                                (meta_class_sig_item _loc x2))
7522
7726
                          | Ast.CgCtr (x0, x1, x2) ->
7523
7727
                              Ast.ExApp (_loc,
7524
 
                                Ast.ExApp (_loc,
7525
 
                                  Ast.ExApp (_loc,
7526
 
                                    Ast.ExId (_loc,
7527
 
                                      Ast.IdAcc (_loc,
7528
 
                                        Ast.IdUid (_loc, "Ast"),
7529
 
                                        Ast.IdUid (_loc, "CgCtr"))),
7530
 
                                    meta_loc _loc x0),
7531
 
                                  meta_ctyp _loc x1),
7532
 
                                meta_ctyp _loc x2)
 
7728
                                (Ast.ExApp (_loc,
 
7729
                                   (Ast.ExApp (_loc,
 
7730
                                      (Ast.ExId (_loc,
 
7731
                                         (Ast.IdAcc (_loc,
 
7732
                                            (Ast.IdUid (_loc, "Ast")),
 
7733
                                            (Ast.IdUid (_loc, "CgCtr")))))),
 
7734
                                      (meta_loc _loc x0))),
 
7735
                                   (meta_ctyp _loc x1))),
 
7736
                                (meta_ctyp _loc x2))
7533
7737
                          | Ast.CgNil x0 ->
7534
7738
                              Ast.ExApp (_loc,
7535
 
                                Ast.ExId (_loc,
7536
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7537
 
                                    Ast.IdUid (_loc, "CgNil"))),
7538
 
                                meta_loc _loc x0)
 
7739
                                (Ast.ExId (_loc,
 
7740
                                   (Ast.IdAcc (_loc,
 
7741
                                      (Ast.IdUid (_loc, "Ast")),
 
7742
                                      (Ast.IdUid (_loc, "CgNil")))))),
 
7743
                                (meta_loc _loc x0))
7539
7744
                        and meta_class_str_item _loc =
7540
7745
                          function
7541
7746
                          | Ast.CrAnt (x0, x1) -> Ast.ExAnt (x0, x1)
7542
7747
                          | Ast.CrVvr (x0, x1, x2, x3) ->
7543
7748
                              Ast.ExApp (_loc,
7544
 
                                Ast.ExApp (_loc,
7545
 
                                  Ast.ExApp (_loc,
7546
 
                                    Ast.ExApp (_loc,
7547
 
                                      Ast.ExId (_loc,
7548
 
                                        Ast.IdAcc (_loc,
7549
 
                                          Ast.IdUid (_loc, "Ast"),
7550
 
                                          Ast.IdUid (_loc, "CrVvr"))),
7551
 
                                      meta_loc _loc x0),
7552
 
                                    meta_string _loc x1),
7553
 
                                  meta_meta_bool _loc x2),
7554
 
                                meta_ctyp _loc x3)
 
7749
                                (Ast.ExApp (_loc,
 
7750
                                   (Ast.ExApp (_loc,
 
7751
                                      (Ast.ExApp (_loc,
 
7752
                                         (Ast.ExId (_loc,
 
7753
                                            (Ast.IdAcc (_loc,
 
7754
                                               (Ast.IdUid (_loc, "Ast")),
 
7755
                                               (Ast.IdUid (_loc, "CrVvr")))))),
 
7756
                                         (meta_loc _loc x0))),
 
7757
                                      (meta_string _loc x1))),
 
7758
                                   (meta_mutable_flag _loc x2))),
 
7759
                                (meta_ctyp _loc x3))
7555
7760
                          | Ast.CrVir (x0, x1, x2, x3) ->
7556
7761
                              Ast.ExApp (_loc,
7557
 
                                Ast.ExApp (_loc,
7558
 
                                  Ast.ExApp (_loc,
7559
 
                                    Ast.ExApp (_loc,
7560
 
                                      Ast.ExId (_loc,
7561
 
                                        Ast.IdAcc (_loc,
7562
 
                                          Ast.IdUid (_loc, "Ast"),
7563
 
                                          Ast.IdUid (_loc, "CrVir"))),
7564
 
                                      meta_loc _loc x0),
7565
 
                                    meta_string _loc x1),
7566
 
                                  meta_meta_bool _loc x2),
7567
 
                                meta_ctyp _loc x3)
7568
 
                          | Ast.CrVal (x0, x1, x2, x3) ->
7569
 
                              Ast.ExApp (_loc,
7570
 
                                Ast.ExApp (_loc,
7571
 
                                  Ast.ExApp (_loc,
7572
 
                                    Ast.ExApp (_loc,
7573
 
                                      Ast.ExId (_loc,
7574
 
                                        Ast.IdAcc (_loc,
7575
 
                                          Ast.IdUid (_loc, "Ast"),
7576
 
                                          Ast.IdUid (_loc, "CrVal"))),
7577
 
                                      meta_loc _loc x0),
7578
 
                                    meta_string _loc x1),
7579
 
                                  meta_meta_bool _loc x2),
7580
 
                                meta_expr _loc x3)
7581
 
                          | Ast.CrMth (x0, x1, x2, x3, x4) ->
7582
 
                              Ast.ExApp (_loc,
7583
 
                                Ast.ExApp (_loc,
7584
 
                                  Ast.ExApp (_loc,
7585
 
                                    Ast.ExApp (_loc,
7586
 
                                      Ast.ExApp (_loc,
7587
 
                                        Ast.ExId (_loc,
7588
 
                                          Ast.IdAcc (_loc,
7589
 
                                            Ast.IdUid (_loc, "Ast"),
7590
 
                                            Ast.IdUid (_loc, "CrMth"))),
7591
 
                                        meta_loc _loc x0),
7592
 
                                      meta_string _loc x1),
7593
 
                                    meta_meta_bool _loc x2),
7594
 
                                  meta_expr _loc x3),
7595
 
                                meta_ctyp _loc x4)
 
7762
                                (Ast.ExApp (_loc,
 
7763
                                   (Ast.ExApp (_loc,
 
7764
                                      (Ast.ExApp (_loc,
 
7765
                                         (Ast.ExId (_loc,
 
7766
                                            (Ast.IdAcc (_loc,
 
7767
                                               (Ast.IdUid (_loc, "Ast")),
 
7768
                                               (Ast.IdUid (_loc, "CrVir")))))),
 
7769
                                         (meta_loc _loc x0))),
 
7770
                                      (meta_string _loc x1))),
 
7771
                                   (meta_private_flag _loc x2))),
 
7772
                                (meta_ctyp _loc x3))
 
7773
                          | Ast.CrVal (x0, x1, x2, x3, x4) ->
 
7774
                              Ast.ExApp (_loc,
 
7775
                                (Ast.ExApp (_loc,
 
7776
                                   (Ast.ExApp (_loc,
 
7777
                                      (Ast.ExApp (_loc,
 
7778
                                         (Ast.ExApp (_loc,
 
7779
                                            (Ast.ExId (_loc,
 
7780
                                               (Ast.IdAcc (_loc,
 
7781
                                                  (Ast.IdUid (_loc, "Ast")),
 
7782
                                                  (Ast.IdUid (_loc, "CrVal")))))),
 
7783
                                            (meta_loc _loc x0))),
 
7784
                                         (meta_string _loc x1))),
 
7785
                                      (meta_override_flag _loc x2))),
 
7786
                                   (meta_mutable_flag _loc x3))),
 
7787
                                (meta_expr _loc x4))
 
7788
                          | Ast.CrMth (x0, x1, x2, x3, x4, x5) ->
 
7789
                              Ast.ExApp (_loc,
 
7790
                                (Ast.ExApp (_loc,
 
7791
                                   (Ast.ExApp (_loc,
 
7792
                                      (Ast.ExApp (_loc,
 
7793
                                         (Ast.ExApp (_loc,
 
7794
                                            (Ast.ExApp (_loc,
 
7795
                                               (Ast.ExId (_loc,
 
7796
                                                  (Ast.IdAcc (_loc,
 
7797
                                                     (Ast.IdUid (_loc, "Ast")),
 
7798
                                                     (Ast.IdUid (_loc,
 
7799
                                                        "CrMth")))))),
 
7800
                                               (meta_loc _loc x0))),
 
7801
                                            (meta_string _loc x1))),
 
7802
                                         (meta_override_flag _loc x2))),
 
7803
                                      (meta_private_flag _loc x3))),
 
7804
                                   (meta_expr _loc x4))),
 
7805
                                (meta_ctyp _loc x5))
7596
7806
                          | Ast.CrIni (x0, x1) ->
7597
7807
                              Ast.ExApp (_loc,
7598
 
                                Ast.ExApp (_loc,
7599
 
                                  Ast.ExId (_loc,
7600
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7601
 
                                      Ast.IdUid (_loc, "CrIni"))),
7602
 
                                  meta_loc _loc x0),
7603
 
                                meta_expr _loc x1)
7604
 
                          | Ast.CrInh (x0, x1, x2) ->
 
7808
                                (Ast.ExApp (_loc,
 
7809
                                   (Ast.ExId (_loc,
 
7810
                                      (Ast.IdAcc (_loc,
 
7811
                                         (Ast.IdUid (_loc, "Ast")),
 
7812
                                         (Ast.IdUid (_loc, "CrIni")))))),
 
7813
                                   (meta_loc _loc x0))),
 
7814
                                (meta_expr _loc x1))
 
7815
                          | Ast.CrInh (x0, x1, x2, x3) ->
7605
7816
                              Ast.ExApp (_loc,
7606
 
                                Ast.ExApp (_loc,
7607
 
                                  Ast.ExApp (_loc,
7608
 
                                    Ast.ExId (_loc,
7609
 
                                      Ast.IdAcc (_loc,
7610
 
                                        Ast.IdUid (_loc, "Ast"),
7611
 
                                        Ast.IdUid (_loc, "CrInh"))),
7612
 
                                    meta_loc _loc x0),
7613
 
                                  meta_class_expr _loc x1),
7614
 
                                meta_string _loc x2)
 
7817
                                (Ast.ExApp (_loc,
 
7818
                                   (Ast.ExApp (_loc,
 
7819
                                      (Ast.ExApp (_loc,
 
7820
                                         (Ast.ExId (_loc,
 
7821
                                            (Ast.IdAcc (_loc,
 
7822
                                               (Ast.IdUid (_loc, "Ast")),
 
7823
                                               (Ast.IdUid (_loc, "CrInh")))))),
 
7824
                                         (meta_loc _loc x0))),
 
7825
                                      (meta_override_flag _loc x1))),
 
7826
                                   (meta_class_expr _loc x2))),
 
7827
                                (meta_string _loc x3))
7615
7828
                          | Ast.CrCtr (x0, x1, x2) ->
7616
7829
                              Ast.ExApp (_loc,
7617
 
                                Ast.ExApp (_loc,
7618
 
                                  Ast.ExApp (_loc,
7619
 
                                    Ast.ExId (_loc,
7620
 
                                      Ast.IdAcc (_loc,
7621
 
                                        Ast.IdUid (_loc, "Ast"),
7622
 
                                        Ast.IdUid (_loc, "CrCtr"))),
7623
 
                                    meta_loc _loc x0),
7624
 
                                  meta_ctyp _loc x1),
7625
 
                                meta_ctyp _loc x2)
 
7830
                                (Ast.ExApp (_loc,
 
7831
                                   (Ast.ExApp (_loc,
 
7832
                                      (Ast.ExId (_loc,
 
7833
                                         (Ast.IdAcc (_loc,
 
7834
                                            (Ast.IdUid (_loc, "Ast")),
 
7835
                                            (Ast.IdUid (_loc, "CrCtr")))))),
 
7836
                                      (meta_loc _loc x0))),
 
7837
                                   (meta_ctyp _loc x1))),
 
7838
                                (meta_ctyp _loc x2))
7626
7839
                          | Ast.CrSem (x0, x1, x2) ->
7627
7840
                              Ast.ExApp (_loc,
7628
 
                                Ast.ExApp (_loc,
7629
 
                                  Ast.ExApp (_loc,
7630
 
                                    Ast.ExId (_loc,
7631
 
                                      Ast.IdAcc (_loc,
7632
 
                                        Ast.IdUid (_loc, "Ast"),
7633
 
                                        Ast.IdUid (_loc, "CrSem"))),
7634
 
                                    meta_loc _loc x0),
7635
 
                                  meta_class_str_item _loc x1),
7636
 
                                meta_class_str_item _loc x2)
 
7841
                                (Ast.ExApp (_loc,
 
7842
                                   (Ast.ExApp (_loc,
 
7843
                                      (Ast.ExId (_loc,
 
7844
                                         (Ast.IdAcc (_loc,
 
7845
                                            (Ast.IdUid (_loc, "Ast")),
 
7846
                                            (Ast.IdUid (_loc, "CrSem")))))),
 
7847
                                      (meta_loc _loc x0))),
 
7848
                                   (meta_class_str_item _loc x1))),
 
7849
                                (meta_class_str_item _loc x2))
7637
7850
                          | Ast.CrNil x0 ->
7638
7851
                              Ast.ExApp (_loc,
7639
 
                                Ast.ExId (_loc,
7640
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7641
 
                                    Ast.IdUid (_loc, "CrNil"))),
7642
 
                                meta_loc _loc x0)
 
7852
                                (Ast.ExId (_loc,
 
7853
                                   (Ast.IdAcc (_loc,
 
7854
                                      (Ast.IdUid (_loc, "Ast")),
 
7855
                                      (Ast.IdUid (_loc, "CrNil")))))),
 
7856
                                (meta_loc _loc x0))
7643
7857
                        and meta_class_type _loc =
7644
7858
                          function
7645
7859
                          | Ast.CtAnt (x0, x1) -> Ast.ExAnt (x0, x1)
7646
7860
                          | Ast.CtEq (x0, x1, x2) ->
7647
7861
                              Ast.ExApp (_loc,
7648
 
                                Ast.ExApp (_loc,
7649
 
                                  Ast.ExApp (_loc,
7650
 
                                    Ast.ExId (_loc,
7651
 
                                      Ast.IdAcc (_loc,
7652
 
                                        Ast.IdUid (_loc, "Ast"),
7653
 
                                        Ast.IdUid (_loc, "CtEq"))),
7654
 
                                    meta_loc _loc x0),
7655
 
                                  meta_class_type _loc x1),
7656
 
                                meta_class_type _loc x2)
 
7862
                                (Ast.ExApp (_loc,
 
7863
                                   (Ast.ExApp (_loc,
 
7864
                                      (Ast.ExId (_loc,
 
7865
                                         (Ast.IdAcc (_loc,
 
7866
                                            (Ast.IdUid (_loc, "Ast")),
 
7867
                                            (Ast.IdUid (_loc, "CtEq")))))),
 
7868
                                      (meta_loc _loc x0))),
 
7869
                                   (meta_class_type _loc x1))),
 
7870
                                (meta_class_type _loc x2))
7657
7871
                          | Ast.CtCol (x0, x1, x2) ->
7658
7872
                              Ast.ExApp (_loc,
7659
 
                                Ast.ExApp (_loc,
7660
 
                                  Ast.ExApp (_loc,
7661
 
                                    Ast.ExId (_loc,
7662
 
                                      Ast.IdAcc (_loc,
7663
 
                                        Ast.IdUid (_loc, "Ast"),
7664
 
                                        Ast.IdUid (_loc, "CtCol"))),
7665
 
                                    meta_loc _loc x0),
7666
 
                                  meta_class_type _loc x1),
7667
 
                                meta_class_type _loc x2)
 
7873
                                (Ast.ExApp (_loc,
 
7874
                                   (Ast.ExApp (_loc,
 
7875
                                      (Ast.ExId (_loc,
 
7876
                                         (Ast.IdAcc (_loc,
 
7877
                                            (Ast.IdUid (_loc, "Ast")),
 
7878
                                            (Ast.IdUid (_loc, "CtCol")))))),
 
7879
                                      (meta_loc _loc x0))),
 
7880
                                   (meta_class_type _loc x1))),
 
7881
                                (meta_class_type _loc x2))
7668
7882
                          | Ast.CtAnd (x0, x1, x2) ->
7669
7883
                              Ast.ExApp (_loc,
7670
 
                                Ast.ExApp (_loc,
7671
 
                                  Ast.ExApp (_loc,
7672
 
                                    Ast.ExId (_loc,
7673
 
                                      Ast.IdAcc (_loc,
7674
 
                                        Ast.IdUid (_loc, "Ast"),
7675
 
                                        Ast.IdUid (_loc, "CtAnd"))),
7676
 
                                    meta_loc _loc x0),
7677
 
                                  meta_class_type _loc x1),
7678
 
                                meta_class_type _loc x2)
 
7884
                                (Ast.ExApp (_loc,
 
7885
                                   (Ast.ExApp (_loc,
 
7886
                                      (Ast.ExId (_loc,
 
7887
                                         (Ast.IdAcc (_loc,
 
7888
                                            (Ast.IdUid (_loc, "Ast")),
 
7889
                                            (Ast.IdUid (_loc, "CtAnd")))))),
 
7890
                                      (meta_loc _loc x0))),
 
7891
                                   (meta_class_type _loc x1))),
 
7892
                                (meta_class_type _loc x2))
7679
7893
                          | Ast.CtSig (x0, x1, x2) ->
7680
7894
                              Ast.ExApp (_loc,
7681
 
                                Ast.ExApp (_loc,
7682
 
                                  Ast.ExApp (_loc,
7683
 
                                    Ast.ExId (_loc,
7684
 
                                      Ast.IdAcc (_loc,
7685
 
                                        Ast.IdUid (_loc, "Ast"),
7686
 
                                        Ast.IdUid (_loc, "CtSig"))),
7687
 
                                    meta_loc _loc x0),
7688
 
                                  meta_ctyp _loc x1),
7689
 
                                meta_class_sig_item _loc x2)
 
7895
                                (Ast.ExApp (_loc,
 
7896
                                   (Ast.ExApp (_loc,
 
7897
                                      (Ast.ExId (_loc,
 
7898
                                         (Ast.IdAcc (_loc,
 
7899
                                            (Ast.IdUid (_loc, "Ast")),
 
7900
                                            (Ast.IdUid (_loc, "CtSig")))))),
 
7901
                                      (meta_loc _loc x0))),
 
7902
                                   (meta_ctyp _loc x1))),
 
7903
                                (meta_class_sig_item _loc x2))
7690
7904
                          | Ast.CtFun (x0, x1, x2) ->
7691
7905
                              Ast.ExApp (_loc,
7692
 
                                Ast.ExApp (_loc,
7693
 
                                  Ast.ExApp (_loc,
7694
 
                                    Ast.ExId (_loc,
7695
 
                                      Ast.IdAcc (_loc,
7696
 
                                        Ast.IdUid (_loc, "Ast"),
7697
 
                                        Ast.IdUid (_loc, "CtFun"))),
7698
 
                                    meta_loc _loc x0),
7699
 
                                  meta_ctyp _loc x1),
7700
 
                                meta_class_type _loc x2)
 
7906
                                (Ast.ExApp (_loc,
 
7907
                                   (Ast.ExApp (_loc,
 
7908
                                      (Ast.ExId (_loc,
 
7909
                                         (Ast.IdAcc (_loc,
 
7910
                                            (Ast.IdUid (_loc, "Ast")),
 
7911
                                            (Ast.IdUid (_loc, "CtFun")))))),
 
7912
                                      (meta_loc _loc x0))),
 
7913
                                   (meta_ctyp _loc x1))),
 
7914
                                (meta_class_type _loc x2))
7701
7915
                          | Ast.CtCon (x0, x1, x2, x3) ->
7702
7916
                              Ast.ExApp (_loc,
7703
 
                                Ast.ExApp (_loc,
7704
 
                                  Ast.ExApp (_loc,
7705
 
                                    Ast.ExApp (_loc,
7706
 
                                      Ast.ExId (_loc,
7707
 
                                        Ast.IdAcc (_loc,
7708
 
                                          Ast.IdUid (_loc, "Ast"),
7709
 
                                          Ast.IdUid (_loc, "CtCon"))),
7710
 
                                      meta_loc _loc x0),
7711
 
                                    meta_meta_bool _loc x1),
7712
 
                                  meta_ident _loc x2),
7713
 
                                meta_ctyp _loc x3)
 
7917
                                (Ast.ExApp (_loc,
 
7918
                                   (Ast.ExApp (_loc,
 
7919
                                      (Ast.ExApp (_loc,
 
7920
                                         (Ast.ExId (_loc,
 
7921
                                            (Ast.IdAcc (_loc,
 
7922
                                               (Ast.IdUid (_loc, "Ast")),
 
7923
                                               (Ast.IdUid (_loc, "CtCon")))))),
 
7924
                                         (meta_loc _loc x0))),
 
7925
                                      (meta_virtual_flag _loc x1))),
 
7926
                                   (meta_ident _loc x2))),
 
7927
                                (meta_ctyp _loc x3))
7714
7928
                          | Ast.CtNil x0 ->
7715
7929
                              Ast.ExApp (_loc,
7716
 
                                Ast.ExId (_loc,
7717
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7718
 
                                    Ast.IdUid (_loc, "CtNil"))),
7719
 
                                meta_loc _loc x0)
 
7930
                                (Ast.ExId (_loc,
 
7931
                                   (Ast.IdAcc (_loc,
 
7932
                                      (Ast.IdUid (_loc, "Ast")),
 
7933
                                      (Ast.IdUid (_loc, "CtNil")))))),
 
7934
                                (meta_loc _loc x0))
7720
7935
                        and meta_ctyp _loc =
7721
7936
                          function
7722
7937
                          | Ast.TyAnt (x0, x1) -> Ast.ExAnt (x0, x1)
 
7938
                          | Ast.TyPkg (x0, x1) ->
 
7939
                              Ast.ExApp (_loc,
 
7940
                                (Ast.ExApp (_loc,
 
7941
                                   (Ast.ExId (_loc,
 
7942
                                      (Ast.IdAcc (_loc,
 
7943
                                         (Ast.IdUid (_loc, "Ast")),
 
7944
                                         (Ast.IdUid (_loc, "TyPkg")))))),
 
7945
                                   (meta_loc _loc x0))),
 
7946
                                (meta_module_type _loc x1))
7723
7947
                          | Ast.TyOfAmp (x0, x1, x2) ->
7724
7948
                              Ast.ExApp (_loc,
7725
 
                                Ast.ExApp (_loc,
7726
 
                                  Ast.ExApp (_loc,
7727
 
                                    Ast.ExId (_loc,
7728
 
                                      Ast.IdAcc (_loc,
7729
 
                                        Ast.IdUid (_loc, "Ast"),
7730
 
                                        Ast.IdUid (_loc, "TyOfAmp"))),
7731
 
                                    meta_loc _loc x0),
7732
 
                                  meta_ctyp _loc x1),
7733
 
                                meta_ctyp _loc x2)
 
7949
                                (Ast.ExApp (_loc,
 
7950
                                   (Ast.ExApp (_loc,
 
7951
                                      (Ast.ExId (_loc,
 
7952
                                         (Ast.IdAcc (_loc,
 
7953
                                            (Ast.IdUid (_loc, "Ast")),
 
7954
                                            (Ast.IdUid (_loc, "TyOfAmp")))))),
 
7955
                                      (meta_loc _loc x0))),
 
7956
                                   (meta_ctyp _loc x1))),
 
7957
                                (meta_ctyp _loc x2))
7734
7958
                          | Ast.TyAmp (x0, x1, x2) ->
7735
7959
                              Ast.ExApp (_loc,
7736
 
                                Ast.ExApp (_loc,
7737
 
                                  Ast.ExApp (_loc,
7738
 
                                    Ast.ExId (_loc,
7739
 
                                      Ast.IdAcc (_loc,
7740
 
                                        Ast.IdUid (_loc, "Ast"),
7741
 
                                        Ast.IdUid (_loc, "TyAmp"))),
7742
 
                                    meta_loc _loc x0),
7743
 
                                  meta_ctyp _loc x1),
7744
 
                                meta_ctyp _loc x2)
 
7960
                                (Ast.ExApp (_loc,
 
7961
                                   (Ast.ExApp (_loc,
 
7962
                                      (Ast.ExId (_loc,
 
7963
                                         (Ast.IdAcc (_loc,
 
7964
                                            (Ast.IdUid (_loc, "Ast")),
 
7965
                                            (Ast.IdUid (_loc, "TyAmp")))))),
 
7966
                                      (meta_loc _loc x0))),
 
7967
                                   (meta_ctyp _loc x1))),
 
7968
                                (meta_ctyp _loc x2))
7745
7969
                          | Ast.TyVrnInfSup (x0, x1, x2) ->
7746
7970
                              Ast.ExApp (_loc,
7747
 
                                Ast.ExApp (_loc,
7748
 
                                  Ast.ExApp (_loc,
7749
 
                                    Ast.ExId (_loc,
7750
 
                                      Ast.IdAcc (_loc,
7751
 
                                        Ast.IdUid (_loc, "Ast"),
7752
 
                                        Ast.IdUid (_loc, "TyVrnInfSup"))),
7753
 
                                    meta_loc _loc x0),
7754
 
                                  meta_ctyp _loc x1),
7755
 
                                meta_ctyp _loc x2)
 
7971
                                (Ast.ExApp (_loc,
 
7972
                                   (Ast.ExApp (_loc,
 
7973
                                      (Ast.ExId (_loc,
 
7974
                                         (Ast.IdAcc (_loc,
 
7975
                                            (Ast.IdUid (_loc, "Ast")),
 
7976
                                            (Ast.IdUid (_loc, "TyVrnInfSup")))))),
 
7977
                                      (meta_loc _loc x0))),
 
7978
                                   (meta_ctyp _loc x1))),
 
7979
                                (meta_ctyp _loc x2))
7756
7980
                          | Ast.TyVrnInf (x0, x1) ->
7757
7981
                              Ast.ExApp (_loc,
7758
 
                                Ast.ExApp (_loc,
7759
 
                                  Ast.ExId (_loc,
7760
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7761
 
                                      Ast.IdUid (_loc, "TyVrnInf"))),
7762
 
                                  meta_loc _loc x0),
7763
 
                                meta_ctyp _loc x1)
 
7982
                                (Ast.ExApp (_loc,
 
7983
                                   (Ast.ExId (_loc,
 
7984
                                      (Ast.IdAcc (_loc,
 
7985
                                         (Ast.IdUid (_loc, "Ast")),
 
7986
                                         (Ast.IdUid (_loc, "TyVrnInf")))))),
 
7987
                                   (meta_loc _loc x0))),
 
7988
                                (meta_ctyp _loc x1))
7764
7989
                          | Ast.TyVrnSup (x0, x1) ->
7765
7990
                              Ast.ExApp (_loc,
7766
 
                                Ast.ExApp (_loc,
7767
 
                                  Ast.ExId (_loc,
7768
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7769
 
                                      Ast.IdUid (_loc, "TyVrnSup"))),
7770
 
                                  meta_loc _loc x0),
7771
 
                                meta_ctyp _loc x1)
 
7991
                                (Ast.ExApp (_loc,
 
7992
                                   (Ast.ExId (_loc,
 
7993
                                      (Ast.IdAcc (_loc,
 
7994
                                         (Ast.IdUid (_loc, "Ast")),
 
7995
                                         (Ast.IdUid (_loc, "TyVrnSup")))))),
 
7996
                                   (meta_loc _loc x0))),
 
7997
                                (meta_ctyp _loc x1))
7772
7998
                          | Ast.TyVrnEq (x0, x1) ->
7773
7999
                              Ast.ExApp (_loc,
7774
 
                                Ast.ExApp (_loc,
7775
 
                                  Ast.ExId (_loc,
7776
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7777
 
                                      Ast.IdUid (_loc, "TyVrnEq"))),
7778
 
                                  meta_loc _loc x0),
7779
 
                                meta_ctyp _loc x1)
 
8000
                                (Ast.ExApp (_loc,
 
8001
                                   (Ast.ExId (_loc,
 
8002
                                      (Ast.IdAcc (_loc,
 
8003
                                         (Ast.IdUid (_loc, "Ast")),
 
8004
                                         (Ast.IdUid (_loc, "TyVrnEq")))))),
 
8005
                                   (meta_loc _loc x0))),
 
8006
                                (meta_ctyp _loc x1))
7780
8007
                          | Ast.TySta (x0, x1, x2) ->
7781
8008
                              Ast.ExApp (_loc,
7782
 
                                Ast.ExApp (_loc,
7783
 
                                  Ast.ExApp (_loc,
7784
 
                                    Ast.ExId (_loc,
7785
 
                                      Ast.IdAcc (_loc,
7786
 
                                        Ast.IdUid (_loc, "Ast"),
7787
 
                                        Ast.IdUid (_loc, "TySta"))),
7788
 
                                    meta_loc _loc x0),
7789
 
                                  meta_ctyp _loc x1),
7790
 
                                meta_ctyp _loc x2)
 
8009
                                (Ast.ExApp (_loc,
 
8010
                                   (Ast.ExApp (_loc,
 
8011
                                      (Ast.ExId (_loc,
 
8012
                                         (Ast.IdAcc (_loc,
 
8013
                                            (Ast.IdUid (_loc, "Ast")),
 
8014
                                            (Ast.IdUid (_loc, "TySta")))))),
 
8015
                                      (meta_loc _loc x0))),
 
8016
                                   (meta_ctyp _loc x1))),
 
8017
                                (meta_ctyp _loc x2))
7791
8018
                          | Ast.TyTup (x0, x1) ->
7792
8019
                              Ast.ExApp (_loc,
7793
 
                                Ast.ExApp (_loc,
7794
 
                                  Ast.ExId (_loc,
7795
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7796
 
                                      Ast.IdUid (_loc, "TyTup"))),
7797
 
                                  meta_loc _loc x0),
7798
 
                                meta_ctyp _loc x1)
 
8020
                                (Ast.ExApp (_loc,
 
8021
                                   (Ast.ExId (_loc,
 
8022
                                      (Ast.IdAcc (_loc,
 
8023
                                         (Ast.IdUid (_loc, "Ast")),
 
8024
                                         (Ast.IdUid (_loc, "TyTup")))))),
 
8025
                                   (meta_loc _loc x0))),
 
8026
                                (meta_ctyp _loc x1))
7799
8027
                          | Ast.TyMut (x0, x1) ->
7800
8028
                              Ast.ExApp (_loc,
7801
 
                                Ast.ExApp (_loc,
7802
 
                                  Ast.ExId (_loc,
7803
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7804
 
                                      Ast.IdUid (_loc, "TyMut"))),
7805
 
                                  meta_loc _loc x0),
7806
 
                                meta_ctyp _loc x1)
 
8029
                                (Ast.ExApp (_loc,
 
8030
                                   (Ast.ExId (_loc,
 
8031
                                      (Ast.IdAcc (_loc,
 
8032
                                         (Ast.IdUid (_loc, "Ast")),
 
8033
                                         (Ast.IdUid (_loc, "TyMut")))))),
 
8034
                                   (meta_loc _loc x0))),
 
8035
                                (meta_ctyp _loc x1))
7807
8036
                          | Ast.TyPrv (x0, x1) ->
7808
8037
                              Ast.ExApp (_loc,
7809
 
                                Ast.ExApp (_loc,
7810
 
                                  Ast.ExId (_loc,
7811
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7812
 
                                      Ast.IdUid (_loc, "TyPrv"))),
7813
 
                                  meta_loc _loc x0),
7814
 
                                meta_ctyp _loc x1)
 
8038
                                (Ast.ExApp (_loc,
 
8039
                                   (Ast.ExId (_loc,
 
8040
                                      (Ast.IdAcc (_loc,
 
8041
                                         (Ast.IdUid (_loc, "Ast")),
 
8042
                                         (Ast.IdUid (_loc, "TyPrv")))))),
 
8043
                                   (meta_loc _loc x0))),
 
8044
                                (meta_ctyp _loc x1))
7815
8045
                          | Ast.TyOr (x0, x1, x2) ->
7816
8046
                              Ast.ExApp (_loc,
7817
 
                                Ast.ExApp (_loc,
7818
 
                                  Ast.ExApp (_loc,
7819
 
                                    Ast.ExId (_loc,
7820
 
                                      Ast.IdAcc (_loc,
7821
 
                                        Ast.IdUid (_loc, "Ast"),
7822
 
                                        Ast.IdUid (_loc, "TyOr"))),
7823
 
                                    meta_loc _loc x0),
7824
 
                                  meta_ctyp _loc x1),
7825
 
                                meta_ctyp _loc x2)
 
8047
                                (Ast.ExApp (_loc,
 
8048
                                   (Ast.ExApp (_loc,
 
8049
                                      (Ast.ExId (_loc,
 
8050
                                         (Ast.IdAcc (_loc,
 
8051
                                            (Ast.IdUid (_loc, "Ast")),
 
8052
                                            (Ast.IdUid (_loc, "TyOr")))))),
 
8053
                                      (meta_loc _loc x0))),
 
8054
                                   (meta_ctyp _loc x1))),
 
8055
                                (meta_ctyp _loc x2))
7826
8056
                          | Ast.TyAnd (x0, x1, x2) ->
7827
8057
                              Ast.ExApp (_loc,
7828
 
                                Ast.ExApp (_loc,
7829
 
                                  Ast.ExApp (_loc,
7830
 
                                    Ast.ExId (_loc,
7831
 
                                      Ast.IdAcc (_loc,
7832
 
                                        Ast.IdUid (_loc, "Ast"),
7833
 
                                        Ast.IdUid (_loc, "TyAnd"))),
7834
 
                                    meta_loc _loc x0),
7835
 
                                  meta_ctyp _loc x1),
7836
 
                                meta_ctyp _loc x2)
 
8058
                                (Ast.ExApp (_loc,
 
8059
                                   (Ast.ExApp (_loc,
 
8060
                                      (Ast.ExId (_loc,
 
8061
                                         (Ast.IdAcc (_loc,
 
8062
                                            (Ast.IdUid (_loc, "Ast")),
 
8063
                                            (Ast.IdUid (_loc, "TyAnd")))))),
 
8064
                                      (meta_loc _loc x0))),
 
8065
                                   (meta_ctyp _loc x1))),
 
8066
                                (meta_ctyp _loc x2))
7837
8067
                          | Ast.TyOf (x0, x1, x2) ->
7838
8068
                              Ast.ExApp (_loc,
7839
 
                                Ast.ExApp (_loc,
7840
 
                                  Ast.ExApp (_loc,
7841
 
                                    Ast.ExId (_loc,
7842
 
                                      Ast.IdAcc (_loc,
7843
 
                                        Ast.IdUid (_loc, "Ast"),
7844
 
                                        Ast.IdUid (_loc, "TyOf"))),
7845
 
                                    meta_loc _loc x0),
7846
 
                                  meta_ctyp _loc x1),
7847
 
                                meta_ctyp _loc x2)
 
8069
                                (Ast.ExApp (_loc,
 
8070
                                   (Ast.ExApp (_loc,
 
8071
                                      (Ast.ExId (_loc,
 
8072
                                         (Ast.IdAcc (_loc,
 
8073
                                            (Ast.IdUid (_loc, "Ast")),
 
8074
                                            (Ast.IdUid (_loc, "TyOf")))))),
 
8075
                                      (meta_loc _loc x0))),
 
8076
                                   (meta_ctyp _loc x1))),
 
8077
                                (meta_ctyp _loc x2))
7848
8078
                          | Ast.TySum (x0, x1) ->
7849
8079
                              Ast.ExApp (_loc,
7850
 
                                Ast.ExApp (_loc,
7851
 
                                  Ast.ExId (_loc,
7852
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7853
 
                                      Ast.IdUid (_loc, "TySum"))),
7854
 
                                  meta_loc _loc x0),
7855
 
                                meta_ctyp _loc x1)
 
8080
                                (Ast.ExApp (_loc,
 
8081
                                   (Ast.ExId (_loc,
 
8082
                                      (Ast.IdAcc (_loc,
 
8083
                                         (Ast.IdUid (_loc, "Ast")),
 
8084
                                         (Ast.IdUid (_loc, "TySum")))))),
 
8085
                                   (meta_loc _loc x0))),
 
8086
                                (meta_ctyp _loc x1))
7856
8087
                          | Ast.TyCom (x0, x1, x2) ->
7857
8088
                              Ast.ExApp (_loc,
7858
 
                                Ast.ExApp (_loc,
7859
 
                                  Ast.ExApp (_loc,
7860
 
                                    Ast.ExId (_loc,
7861
 
                                      Ast.IdAcc (_loc,
7862
 
                                        Ast.IdUid (_loc, "Ast"),
7863
 
                                        Ast.IdUid (_loc, "TyCom"))),
7864
 
                                    meta_loc _loc x0),
7865
 
                                  meta_ctyp _loc x1),
7866
 
                                meta_ctyp _loc x2)
 
8089
                                (Ast.ExApp (_loc,
 
8090
                                   (Ast.ExApp (_loc,
 
8091
                                      (Ast.ExId (_loc,
 
8092
                                         (Ast.IdAcc (_loc,
 
8093
                                            (Ast.IdUid (_loc, "Ast")),
 
8094
                                            (Ast.IdUid (_loc, "TyCom")))))),
 
8095
                                      (meta_loc _loc x0))),
 
8096
                                   (meta_ctyp _loc x1))),
 
8097
                                (meta_ctyp _loc x2))
7867
8098
                          | Ast.TySem (x0, x1, x2) ->
7868
8099
                              Ast.ExApp (_loc,
7869
 
                                Ast.ExApp (_loc,
7870
 
                                  Ast.ExApp (_loc,
7871
 
                                    Ast.ExId (_loc,
7872
 
                                      Ast.IdAcc (_loc,
7873
 
                                        Ast.IdUid (_loc, "Ast"),
7874
 
                                        Ast.IdUid (_loc, "TySem"))),
7875
 
                                    meta_loc _loc x0),
7876
 
                                  meta_ctyp _loc x1),
7877
 
                                meta_ctyp _loc x2)
 
8100
                                (Ast.ExApp (_loc,
 
8101
                                   (Ast.ExApp (_loc,
 
8102
                                      (Ast.ExId (_loc,
 
8103
                                         (Ast.IdAcc (_loc,
 
8104
                                            (Ast.IdUid (_loc, "Ast")),
 
8105
                                            (Ast.IdUid (_loc, "TySem")))))),
 
8106
                                      (meta_loc _loc x0))),
 
8107
                                   (meta_ctyp _loc x1))),
 
8108
                                (meta_ctyp _loc x2))
7878
8109
                          | Ast.TyCol (x0, x1, x2) ->
7879
8110
                              Ast.ExApp (_loc,
7880
 
                                Ast.ExApp (_loc,
7881
 
                                  Ast.ExApp (_loc,
7882
 
                                    Ast.ExId (_loc,
7883
 
                                      Ast.IdAcc (_loc,
7884
 
                                        Ast.IdUid (_loc, "Ast"),
7885
 
                                        Ast.IdUid (_loc, "TyCol"))),
7886
 
                                    meta_loc _loc x0),
7887
 
                                  meta_ctyp _loc x1),
7888
 
                                meta_ctyp _loc x2)
 
8111
                                (Ast.ExApp (_loc,
 
8112
                                   (Ast.ExApp (_loc,
 
8113
                                      (Ast.ExId (_loc,
 
8114
                                         (Ast.IdAcc (_loc,
 
8115
                                            (Ast.IdUid (_loc, "Ast")),
 
8116
                                            (Ast.IdUid (_loc, "TyCol")))))),
 
8117
                                      (meta_loc _loc x0))),
 
8118
                                   (meta_ctyp _loc x1))),
 
8119
                                (meta_ctyp _loc x2))
7889
8120
                          | Ast.TyRec (x0, x1) ->
7890
8121
                              Ast.ExApp (_loc,
7891
 
                                Ast.ExApp (_loc,
7892
 
                                  Ast.ExId (_loc,
7893
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7894
 
                                      Ast.IdUid (_loc, "TyRec"))),
7895
 
                                  meta_loc _loc x0),
7896
 
                                meta_ctyp _loc x1)
 
8122
                                (Ast.ExApp (_loc,
 
8123
                                   (Ast.ExId (_loc,
 
8124
                                      (Ast.IdAcc (_loc,
 
8125
                                         (Ast.IdUid (_loc, "Ast")),
 
8126
                                         (Ast.IdUid (_loc, "TyRec")))))),
 
8127
                                   (meta_loc _loc x0))),
 
8128
                                (meta_ctyp _loc x1))
7897
8129
                          | Ast.TyVrn (x0, x1) ->
7898
8130
                              Ast.ExApp (_loc,
7899
 
                                Ast.ExApp (_loc,
7900
 
                                  Ast.ExId (_loc,
7901
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7902
 
                                      Ast.IdUid (_loc, "TyVrn"))),
7903
 
                                  meta_loc _loc x0),
7904
 
                                meta_string _loc x1)
 
8131
                                (Ast.ExApp (_loc,
 
8132
                                   (Ast.ExId (_loc,
 
8133
                                      (Ast.IdAcc (_loc,
 
8134
                                         (Ast.IdUid (_loc, "Ast")),
 
8135
                                         (Ast.IdUid (_loc, "TyVrn")))))),
 
8136
                                   (meta_loc _loc x0))),
 
8137
                                (meta_string _loc x1))
7905
8138
                          | Ast.TyQuM (x0, x1) ->
7906
8139
                              Ast.ExApp (_loc,
7907
 
                                Ast.ExApp (_loc,
7908
 
                                  Ast.ExId (_loc,
7909
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7910
 
                                      Ast.IdUid (_loc, "TyQuM"))),
7911
 
                                  meta_loc _loc x0),
7912
 
                                meta_string _loc x1)
 
8140
                                (Ast.ExApp (_loc,
 
8141
                                   (Ast.ExId (_loc,
 
8142
                                      (Ast.IdAcc (_loc,
 
8143
                                         (Ast.IdUid (_loc, "Ast")),
 
8144
                                         (Ast.IdUid (_loc, "TyQuM")))))),
 
8145
                                   (meta_loc _loc x0))),
 
8146
                                (meta_string _loc x1))
7913
8147
                          | Ast.TyQuP (x0, x1) ->
7914
8148
                              Ast.ExApp (_loc,
7915
 
                                Ast.ExApp (_loc,
7916
 
                                  Ast.ExId (_loc,
7917
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7918
 
                                      Ast.IdUid (_loc, "TyQuP"))),
7919
 
                                  meta_loc _loc x0),
7920
 
                                meta_string _loc x1)
 
8149
                                (Ast.ExApp (_loc,
 
8150
                                   (Ast.ExId (_loc,
 
8151
                                      (Ast.IdAcc (_loc,
 
8152
                                         (Ast.IdUid (_loc, "Ast")),
 
8153
                                         (Ast.IdUid (_loc, "TyQuP")))))),
 
8154
                                   (meta_loc _loc x0))),
 
8155
                                (meta_string _loc x1))
7921
8156
                          | Ast.TyQuo (x0, x1) ->
7922
8157
                              Ast.ExApp (_loc,
7923
 
                                Ast.ExApp (_loc,
7924
 
                                  Ast.ExId (_loc,
7925
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7926
 
                                      Ast.IdUid (_loc, "TyQuo"))),
7927
 
                                  meta_loc _loc x0),
7928
 
                                meta_string _loc x1)
 
8158
                                (Ast.ExApp (_loc,
 
8159
                                   (Ast.ExId (_loc,
 
8160
                                      (Ast.IdAcc (_loc,
 
8161
                                         (Ast.IdUid (_loc, "Ast")),
 
8162
                                         (Ast.IdUid (_loc, "TyQuo")))))),
 
8163
                                   (meta_loc _loc x0))),
 
8164
                                (meta_string _loc x1))
7929
8165
                          | Ast.TyPol (x0, x1, x2) ->
7930
8166
                              Ast.ExApp (_loc,
7931
 
                                Ast.ExApp (_loc,
7932
 
                                  Ast.ExApp (_loc,
7933
 
                                    Ast.ExId (_loc,
7934
 
                                      Ast.IdAcc (_loc,
7935
 
                                        Ast.IdUid (_loc, "Ast"),
7936
 
                                        Ast.IdUid (_loc, "TyPol"))),
7937
 
                                    meta_loc _loc x0),
7938
 
                                  meta_ctyp _loc x1),
7939
 
                                meta_ctyp _loc x2)
 
8167
                                (Ast.ExApp (_loc,
 
8168
                                   (Ast.ExApp (_loc,
 
8169
                                      (Ast.ExId (_loc,
 
8170
                                         (Ast.IdAcc (_loc,
 
8171
                                            (Ast.IdUid (_loc, "Ast")),
 
8172
                                            (Ast.IdUid (_loc, "TyPol")))))),
 
8173
                                      (meta_loc _loc x0))),
 
8174
                                   (meta_ctyp _loc x1))),
 
8175
                                (meta_ctyp _loc x2))
7940
8176
                          | Ast.TyOlb (x0, x1, x2) ->
7941
8177
                              Ast.ExApp (_loc,
7942
 
                                Ast.ExApp (_loc,
7943
 
                                  Ast.ExApp (_loc,
7944
 
                                    Ast.ExId (_loc,
7945
 
                                      Ast.IdAcc (_loc,
7946
 
                                        Ast.IdUid (_loc, "Ast"),
7947
 
                                        Ast.IdUid (_loc, "TyOlb"))),
7948
 
                                    meta_loc _loc x0),
7949
 
                                  meta_string _loc x1),
7950
 
                                meta_ctyp _loc x2)
 
8178
                                (Ast.ExApp (_loc,
 
8179
                                   (Ast.ExApp (_loc,
 
8180
                                      (Ast.ExId (_loc,
 
8181
                                         (Ast.IdAcc (_loc,
 
8182
                                            (Ast.IdUid (_loc, "Ast")),
 
8183
                                            (Ast.IdUid (_loc, "TyOlb")))))),
 
8184
                                      (meta_loc _loc x0))),
 
8185
                                   (meta_string _loc x1))),
 
8186
                                (meta_ctyp _loc x2))
7951
8187
                          | Ast.TyObj (x0, x1, x2) ->
7952
8188
                              Ast.ExApp (_loc,
7953
 
                                Ast.ExApp (_loc,
7954
 
                                  Ast.ExApp (_loc,
7955
 
                                    Ast.ExId (_loc,
7956
 
                                      Ast.IdAcc (_loc,
7957
 
                                        Ast.IdUid (_loc, "Ast"),
7958
 
                                        Ast.IdUid (_loc, "TyObj"))),
7959
 
                                    meta_loc _loc x0),
7960
 
                                  meta_ctyp _loc x1),
7961
 
                                meta_meta_bool _loc x2)
 
8189
                                (Ast.ExApp (_loc,
 
8190
                                   (Ast.ExApp (_loc,
 
8191
                                      (Ast.ExId (_loc,
 
8192
                                         (Ast.IdAcc (_loc,
 
8193
                                            (Ast.IdUid (_loc, "Ast")),
 
8194
                                            (Ast.IdUid (_loc, "TyObj")))))),
 
8195
                                      (meta_loc _loc x0))),
 
8196
                                   (meta_ctyp _loc x1))),
 
8197
                                (meta_row_var_flag _loc x2))
7962
8198
                          | Ast.TyDcl (x0, x1, x2, x3, x4) ->
7963
8199
                              Ast.ExApp (_loc,
7964
 
                                Ast.ExApp (_loc,
7965
 
                                  Ast.ExApp (_loc,
7966
 
                                    Ast.ExApp (_loc,
7967
 
                                      Ast.ExApp (_loc,
7968
 
                                        Ast.ExId (_loc,
7969
 
                                          Ast.IdAcc (_loc,
7970
 
                                            Ast.IdUid (_loc, "Ast"),
7971
 
                                            Ast.IdUid (_loc, "TyDcl"))),
7972
 
                                        meta_loc _loc x0),
7973
 
                                      meta_string _loc x1),
7974
 
                                    meta_list meta_ctyp _loc x2),
7975
 
                                  meta_ctyp _loc x3),
7976
 
                                meta_list
7977
 
                                  (fun _loc (x1, x2) ->
7978
 
                                     Ast.ExTup (_loc,
7979
 
                                       Ast.ExCom (_loc, meta_ctyp _loc x1,
7980
 
                                         meta_ctyp _loc x2)))
7981
 
                                  _loc x4)
 
8200
                                (Ast.ExApp (_loc,
 
8201
                                   (Ast.ExApp (_loc,
 
8202
                                      (Ast.ExApp (_loc,
 
8203
                                         (Ast.ExApp (_loc,
 
8204
                                            (Ast.ExId (_loc,
 
8205
                                               (Ast.IdAcc (_loc,
 
8206
                                                  (Ast.IdUid (_loc, "Ast")),
 
8207
                                                  (Ast.IdUid (_loc, "TyDcl")))))),
 
8208
                                            (meta_loc _loc x0))),
 
8209
                                         (meta_string _loc x1))),
 
8210
                                      (meta_list meta_ctyp _loc x2))),
 
8211
                                   (meta_ctyp _loc x3))),
 
8212
                                (meta_list
 
8213
                                   (fun _loc (x1, x2) ->
 
8214
                                      Ast.ExTup (_loc,
 
8215
                                        (Ast.ExCom (_loc,
 
8216
                                           (meta_ctyp _loc x1),
 
8217
                                           (meta_ctyp _loc x2)))))
 
8218
                                   _loc x4))
7982
8219
                          | Ast.TyMan (x0, x1, x2) ->
7983
8220
                              Ast.ExApp (_loc,
7984
 
                                Ast.ExApp (_loc,
7985
 
                                  Ast.ExApp (_loc,
7986
 
                                    Ast.ExId (_loc,
7987
 
                                      Ast.IdAcc (_loc,
7988
 
                                        Ast.IdUid (_loc, "Ast"),
7989
 
                                        Ast.IdUid (_loc, "TyMan"))),
7990
 
                                    meta_loc _loc x0),
7991
 
                                  meta_ctyp _loc x1),
7992
 
                                meta_ctyp _loc x2)
 
8221
                                (Ast.ExApp (_loc,
 
8222
                                   (Ast.ExApp (_loc,
 
8223
                                      (Ast.ExId (_loc,
 
8224
                                         (Ast.IdAcc (_loc,
 
8225
                                            (Ast.IdUid (_loc, "Ast")),
 
8226
                                            (Ast.IdUid (_loc, "TyMan")))))),
 
8227
                                      (meta_loc _loc x0))),
 
8228
                                   (meta_ctyp _loc x1))),
 
8229
                                (meta_ctyp _loc x2))
7993
8230
                          | Ast.TyId (x0, x1) ->
7994
8231
                              Ast.ExApp (_loc,
7995
 
                                Ast.ExApp (_loc,
7996
 
                                  Ast.ExId (_loc,
7997
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
7998
 
                                      Ast.IdUid (_loc, "TyId"))),
7999
 
                                  meta_loc _loc x0),
8000
 
                                meta_ident _loc x1)
 
8232
                                (Ast.ExApp (_loc,
 
8233
                                   (Ast.ExId (_loc,
 
8234
                                      (Ast.IdAcc (_loc,
 
8235
                                         (Ast.IdUid (_loc, "Ast")),
 
8236
                                         (Ast.IdUid (_loc, "TyId")))))),
 
8237
                                   (meta_loc _loc x0))),
 
8238
                                (meta_ident _loc x1))
8001
8239
                          | Ast.TyLab (x0, x1, x2) ->
8002
8240
                              Ast.ExApp (_loc,
8003
 
                                Ast.ExApp (_loc,
8004
 
                                  Ast.ExApp (_loc,
8005
 
                                    Ast.ExId (_loc,
8006
 
                                      Ast.IdAcc (_loc,
8007
 
                                        Ast.IdUid (_loc, "Ast"),
8008
 
                                        Ast.IdUid (_loc, "TyLab"))),
8009
 
                                    meta_loc _loc x0),
8010
 
                                  meta_string _loc x1),
8011
 
                                meta_ctyp _loc x2)
 
8241
                                (Ast.ExApp (_loc,
 
8242
                                   (Ast.ExApp (_loc,
 
8243
                                      (Ast.ExId (_loc,
 
8244
                                         (Ast.IdAcc (_loc,
 
8245
                                            (Ast.IdUid (_loc, "Ast")),
 
8246
                                            (Ast.IdUid (_loc, "TyLab")))))),
 
8247
                                      (meta_loc _loc x0))),
 
8248
                                   (meta_string _loc x1))),
 
8249
                                (meta_ctyp _loc x2))
8012
8250
                          | Ast.TyCls (x0, x1) ->
8013
8251
                              Ast.ExApp (_loc,
8014
 
                                Ast.ExApp (_loc,
8015
 
                                  Ast.ExId (_loc,
8016
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8017
 
                                      Ast.IdUid (_loc, "TyCls"))),
8018
 
                                  meta_loc _loc x0),
8019
 
                                meta_ident _loc x1)
 
8252
                                (Ast.ExApp (_loc,
 
8253
                                   (Ast.ExId (_loc,
 
8254
                                      (Ast.IdAcc (_loc,
 
8255
                                         (Ast.IdUid (_loc, "Ast")),
 
8256
                                         (Ast.IdUid (_loc, "TyCls")))))),
 
8257
                                   (meta_loc _loc x0))),
 
8258
                                (meta_ident _loc x1))
8020
8259
                          | Ast.TyArr (x0, x1, x2) ->
8021
8260
                              Ast.ExApp (_loc,
8022
 
                                Ast.ExApp (_loc,
8023
 
                                  Ast.ExApp (_loc,
8024
 
                                    Ast.ExId (_loc,
8025
 
                                      Ast.IdAcc (_loc,
8026
 
                                        Ast.IdUid (_loc, "Ast"),
8027
 
                                        Ast.IdUid (_loc, "TyArr"))),
8028
 
                                    meta_loc _loc x0),
8029
 
                                  meta_ctyp _loc x1),
8030
 
                                meta_ctyp _loc x2)
 
8261
                                (Ast.ExApp (_loc,
 
8262
                                   (Ast.ExApp (_loc,
 
8263
                                      (Ast.ExId (_loc,
 
8264
                                         (Ast.IdAcc (_loc,
 
8265
                                            (Ast.IdUid (_loc, "Ast")),
 
8266
                                            (Ast.IdUid (_loc, "TyArr")))))),
 
8267
                                      (meta_loc _loc x0))),
 
8268
                                   (meta_ctyp _loc x1))),
 
8269
                                (meta_ctyp _loc x2))
8031
8270
                          | Ast.TyApp (x0, x1, x2) ->
8032
8271
                              Ast.ExApp (_loc,
8033
 
                                Ast.ExApp (_loc,
8034
 
                                  Ast.ExApp (_loc,
8035
 
                                    Ast.ExId (_loc,
8036
 
                                      Ast.IdAcc (_loc,
8037
 
                                        Ast.IdUid (_loc, "Ast"),
8038
 
                                        Ast.IdUid (_loc, "TyApp"))),
8039
 
                                    meta_loc _loc x0),
8040
 
                                  meta_ctyp _loc x1),
8041
 
                                meta_ctyp _loc x2)
 
8272
                                (Ast.ExApp (_loc,
 
8273
                                   (Ast.ExApp (_loc,
 
8274
                                      (Ast.ExId (_loc,
 
8275
                                         (Ast.IdAcc (_loc,
 
8276
                                            (Ast.IdUid (_loc, "Ast")),
 
8277
                                            (Ast.IdUid (_loc, "TyApp")))))),
 
8278
                                      (meta_loc _loc x0))),
 
8279
                                   (meta_ctyp _loc x1))),
 
8280
                                (meta_ctyp _loc x2))
8042
8281
                          | Ast.TyAny x0 ->
8043
8282
                              Ast.ExApp (_loc,
8044
 
                                Ast.ExId (_loc,
8045
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8046
 
                                    Ast.IdUid (_loc, "TyAny"))),
8047
 
                                meta_loc _loc x0)
 
8283
                                (Ast.ExId (_loc,
 
8284
                                   (Ast.IdAcc (_loc,
 
8285
                                      (Ast.IdUid (_loc, "Ast")),
 
8286
                                      (Ast.IdUid (_loc, "TyAny")))))),
 
8287
                                (meta_loc _loc x0))
8048
8288
                          | Ast.TyAli (x0, x1, x2) ->
8049
8289
                              Ast.ExApp (_loc,
8050
 
                                Ast.ExApp (_loc,
8051
 
                                  Ast.ExApp (_loc,
8052
 
                                    Ast.ExId (_loc,
8053
 
                                      Ast.IdAcc (_loc,
8054
 
                                        Ast.IdUid (_loc, "Ast"),
8055
 
                                        Ast.IdUid (_loc, "TyAli"))),
8056
 
                                    meta_loc _loc x0),
8057
 
                                  meta_ctyp _loc x1),
8058
 
                                meta_ctyp _loc x2)
 
8290
                                (Ast.ExApp (_loc,
 
8291
                                   (Ast.ExApp (_loc,
 
8292
                                      (Ast.ExId (_loc,
 
8293
                                         (Ast.IdAcc (_loc,
 
8294
                                            (Ast.IdUid (_loc, "Ast")),
 
8295
                                            (Ast.IdUid (_loc, "TyAli")))))),
 
8296
                                      (meta_loc _loc x0))),
 
8297
                                   (meta_ctyp _loc x1))),
 
8298
                                (meta_ctyp _loc x2))
8059
8299
                          | Ast.TyNil x0 ->
8060
8300
                              Ast.ExApp (_loc,
8061
 
                                Ast.ExId (_loc,
8062
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8063
 
                                    Ast.IdUid (_loc, "TyNil"))),
8064
 
                                meta_loc _loc x0)
 
8301
                                (Ast.ExId (_loc,
 
8302
                                   (Ast.IdAcc (_loc,
 
8303
                                      (Ast.IdUid (_loc, "Ast")),
 
8304
                                      (Ast.IdUid (_loc, "TyNil")))))),
 
8305
                                (meta_loc _loc x0))
 
8306
                        and meta_direction_flag _loc =
 
8307
                          function
 
8308
                          | Ast.DiAnt x0 -> Ast.ExAnt (_loc, x0)
 
8309
                          | Ast.DiDownto ->
 
8310
                              Ast.ExId (_loc,
 
8311
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8312
                                   (Ast.IdUid (_loc, "DiDownto")))))
 
8313
                          | Ast.DiTo ->
 
8314
                              Ast.ExId (_loc,
 
8315
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8316
                                   (Ast.IdUid (_loc, "DiTo")))))
8065
8317
                        and meta_expr _loc =
8066
8318
                          function
 
8319
                          | Ast.ExPkg (x0, x1) ->
 
8320
                              Ast.ExApp (_loc,
 
8321
                                (Ast.ExApp (_loc,
 
8322
                                   (Ast.ExId (_loc,
 
8323
                                      (Ast.IdAcc (_loc,
 
8324
                                         (Ast.IdUid (_loc, "Ast")),
 
8325
                                         (Ast.IdUid (_loc, "ExPkg")))))),
 
8326
                                   (meta_loc _loc x0))),
 
8327
                                (meta_module_expr _loc x1))
 
8328
                          | Ast.ExFUN (x0, x1, x2) ->
 
8329
                              Ast.ExApp (_loc,
 
8330
                                (Ast.ExApp (_loc,
 
8331
                                   (Ast.ExApp (_loc,
 
8332
                                      (Ast.ExId (_loc,
 
8333
                                         (Ast.IdAcc (_loc,
 
8334
                                            (Ast.IdUid (_loc, "Ast")),
 
8335
                                            (Ast.IdUid (_loc, "ExFUN")))))),
 
8336
                                      (meta_loc _loc x0))),
 
8337
                                   (meta_string _loc x1))),
 
8338
                                (meta_expr _loc x2))
 
8339
                          | Ast.ExOpI (x0, x1, x2) ->
 
8340
                              Ast.ExApp (_loc,
 
8341
                                (Ast.ExApp (_loc,
 
8342
                                   (Ast.ExApp (_loc,
 
8343
                                      (Ast.ExId (_loc,
 
8344
                                         (Ast.IdAcc (_loc,
 
8345
                                            (Ast.IdUid (_loc, "Ast")),
 
8346
                                            (Ast.IdUid (_loc, "ExOpI")))))),
 
8347
                                      (meta_loc _loc x0))),
 
8348
                                   (meta_ident _loc x1))),
 
8349
                                (meta_expr _loc x2))
8067
8350
                          | Ast.ExWhi (x0, x1, x2) ->
8068
8351
                              Ast.ExApp (_loc,
8069
 
                                Ast.ExApp (_loc,
8070
 
                                  Ast.ExApp (_loc,
8071
 
                                    Ast.ExId (_loc,
8072
 
                                      Ast.IdAcc (_loc,
8073
 
                                        Ast.IdUid (_loc, "Ast"),
8074
 
                                        Ast.IdUid (_loc, "ExWhi"))),
8075
 
                                    meta_loc _loc x0),
8076
 
                                  meta_expr _loc x1),
8077
 
                                meta_expr _loc x2)
 
8352
                                (Ast.ExApp (_loc,
 
8353
                                   (Ast.ExApp (_loc,
 
8354
                                      (Ast.ExId (_loc,
 
8355
                                         (Ast.IdAcc (_loc,
 
8356
                                            (Ast.IdUid (_loc, "Ast")),
 
8357
                                            (Ast.IdUid (_loc, "ExWhi")))))),
 
8358
                                      (meta_loc _loc x0))),
 
8359
                                   (meta_expr _loc x1))),
 
8360
                                (meta_expr _loc x2))
8078
8361
                          | Ast.ExVrn (x0, x1) ->
8079
8362
                              Ast.ExApp (_loc,
8080
 
                                Ast.ExApp (_loc,
8081
 
                                  Ast.ExId (_loc,
8082
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8083
 
                                      Ast.IdUid (_loc, "ExVrn"))),
8084
 
                                  meta_loc _loc x0),
8085
 
                                meta_string _loc x1)
 
8363
                                (Ast.ExApp (_loc,
 
8364
                                   (Ast.ExId (_loc,
 
8365
                                      (Ast.IdAcc (_loc,
 
8366
                                         (Ast.IdUid (_loc, "Ast")),
 
8367
                                         (Ast.IdUid (_loc, "ExVrn")))))),
 
8368
                                   (meta_loc _loc x0))),
 
8369
                                (meta_string _loc x1))
8086
8370
                          | Ast.ExTyc (x0, x1, x2) ->
8087
8371
                              Ast.ExApp (_loc,
8088
 
                                Ast.ExApp (_loc,
8089
 
                                  Ast.ExApp (_loc,
8090
 
                                    Ast.ExId (_loc,
8091
 
                                      Ast.IdAcc (_loc,
8092
 
                                        Ast.IdUid (_loc, "Ast"),
8093
 
                                        Ast.IdUid (_loc, "ExTyc"))),
8094
 
                                    meta_loc _loc x0),
8095
 
                                  meta_expr _loc x1),
8096
 
                                meta_ctyp _loc x2)
 
8372
                                (Ast.ExApp (_loc,
 
8373
                                   (Ast.ExApp (_loc,
 
8374
                                      (Ast.ExId (_loc,
 
8375
                                         (Ast.IdAcc (_loc,
 
8376
                                            (Ast.IdUid (_loc, "Ast")),
 
8377
                                            (Ast.IdUid (_loc, "ExTyc")))))),
 
8378
                                      (meta_loc _loc x0))),
 
8379
                                   (meta_expr _loc x1))),
 
8380
                                (meta_ctyp _loc x2))
8097
8381
                          | Ast.ExCom (x0, x1, x2) ->
8098
8382
                              Ast.ExApp (_loc,
8099
 
                                Ast.ExApp (_loc,
8100
 
                                  Ast.ExApp (_loc,
8101
 
                                    Ast.ExId (_loc,
8102
 
                                      Ast.IdAcc (_loc,
8103
 
                                        Ast.IdUid (_loc, "Ast"),
8104
 
                                        Ast.IdUid (_loc, "ExCom"))),
8105
 
                                    meta_loc _loc x0),
8106
 
                                  meta_expr _loc x1),
8107
 
                                meta_expr _loc x2)
 
8383
                                (Ast.ExApp (_loc,
 
8384
                                   (Ast.ExApp (_loc,
 
8385
                                      (Ast.ExId (_loc,
 
8386
                                         (Ast.IdAcc (_loc,
 
8387
                                            (Ast.IdUid (_loc, "Ast")),
 
8388
                                            (Ast.IdUid (_loc, "ExCom")))))),
 
8389
                                      (meta_loc _loc x0))),
 
8390
                                   (meta_expr _loc x1))),
 
8391
                                (meta_expr _loc x2))
8108
8392
                          | Ast.ExTup (x0, x1) ->
8109
8393
                              Ast.ExApp (_loc,
8110
 
                                Ast.ExApp (_loc,
8111
 
                                  Ast.ExId (_loc,
8112
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8113
 
                                      Ast.IdUid (_loc, "ExTup"))),
8114
 
                                  meta_loc _loc x0),
8115
 
                                meta_expr _loc x1)
 
8394
                                (Ast.ExApp (_loc,
 
8395
                                   (Ast.ExId (_loc,
 
8396
                                      (Ast.IdAcc (_loc,
 
8397
                                         (Ast.IdUid (_loc, "Ast")),
 
8398
                                         (Ast.IdUid (_loc, "ExTup")))))),
 
8399
                                   (meta_loc _loc x0))),
 
8400
                                (meta_expr _loc x1))
8116
8401
                          | Ast.ExTry (x0, x1, x2) ->
8117
8402
                              Ast.ExApp (_loc,
8118
 
                                Ast.ExApp (_loc,
8119
 
                                  Ast.ExApp (_loc,
8120
 
                                    Ast.ExId (_loc,
8121
 
                                      Ast.IdAcc (_loc,
8122
 
                                        Ast.IdUid (_loc, "Ast"),
8123
 
                                        Ast.IdUid (_loc, "ExTry"))),
8124
 
                                    meta_loc _loc x0),
8125
 
                                  meta_expr _loc x1),
8126
 
                                meta_match_case _loc x2)
 
8403
                                (Ast.ExApp (_loc,
 
8404
                                   (Ast.ExApp (_loc,
 
8405
                                      (Ast.ExId (_loc,
 
8406
                                         (Ast.IdAcc (_loc,
 
8407
                                            (Ast.IdUid (_loc, "Ast")),
 
8408
                                            (Ast.IdUid (_loc, "ExTry")))))),
 
8409
                                      (meta_loc _loc x0))),
 
8410
                                   (meta_expr _loc x1))),
 
8411
                                (meta_match_case _loc x2))
8127
8412
                          | Ast.ExStr (x0, x1) ->
8128
8413
                              Ast.ExApp (_loc,
8129
 
                                Ast.ExApp (_loc,
8130
 
                                  Ast.ExId (_loc,
8131
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8132
 
                                      Ast.IdUid (_loc, "ExStr"))),
8133
 
                                  meta_loc _loc x0),
8134
 
                                meta_string _loc x1)
 
8414
                                (Ast.ExApp (_loc,
 
8415
                                   (Ast.ExId (_loc,
 
8416
                                      (Ast.IdAcc (_loc,
 
8417
                                         (Ast.IdUid (_loc, "Ast")),
 
8418
                                         (Ast.IdUid (_loc, "ExStr")))))),
 
8419
                                   (meta_loc _loc x0))),
 
8420
                                (meta_string _loc x1))
8135
8421
                          | Ast.ExSte (x0, x1, x2) ->
8136
8422
                              Ast.ExApp (_loc,
8137
 
                                Ast.ExApp (_loc,
8138
 
                                  Ast.ExApp (_loc,
8139
 
                                    Ast.ExId (_loc,
8140
 
                                      Ast.IdAcc (_loc,
8141
 
                                        Ast.IdUid (_loc, "Ast"),
8142
 
                                        Ast.IdUid (_loc, "ExSte"))),
8143
 
                                    meta_loc _loc x0),
8144
 
                                  meta_expr _loc x1),
8145
 
                                meta_expr _loc x2)
 
8423
                                (Ast.ExApp (_loc,
 
8424
                                   (Ast.ExApp (_loc,
 
8425
                                      (Ast.ExId (_loc,
 
8426
                                         (Ast.IdAcc (_loc,
 
8427
                                            (Ast.IdUid (_loc, "Ast")),
 
8428
                                            (Ast.IdUid (_loc, "ExSte")))))),
 
8429
                                      (meta_loc _loc x0))),
 
8430
                                   (meta_expr _loc x1))),
 
8431
                                (meta_expr _loc x2))
8146
8432
                          | Ast.ExSnd (x0, x1, x2) ->
8147
8433
                              Ast.ExApp (_loc,
8148
 
                                Ast.ExApp (_loc,
8149
 
                                  Ast.ExApp (_loc,
8150
 
                                    Ast.ExId (_loc,
8151
 
                                      Ast.IdAcc (_loc,
8152
 
                                        Ast.IdUid (_loc, "Ast"),
8153
 
                                        Ast.IdUid (_loc, "ExSnd"))),
8154
 
                                    meta_loc _loc x0),
8155
 
                                  meta_expr _loc x1),
8156
 
                                meta_string _loc x2)
 
8434
                                (Ast.ExApp (_loc,
 
8435
                                   (Ast.ExApp (_loc,
 
8436
                                      (Ast.ExId (_loc,
 
8437
                                         (Ast.IdAcc (_loc,
 
8438
                                            (Ast.IdUid (_loc, "Ast")),
 
8439
                                            (Ast.IdUid (_loc, "ExSnd")))))),
 
8440
                                      (meta_loc _loc x0))),
 
8441
                                   (meta_expr _loc x1))),
 
8442
                                (meta_string _loc x2))
8157
8443
                          | Ast.ExSeq (x0, x1) ->
8158
8444
                              Ast.ExApp (_loc,
8159
 
                                Ast.ExApp (_loc,
8160
 
                                  Ast.ExId (_loc,
8161
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8162
 
                                      Ast.IdUid (_loc, "ExSeq"))),
8163
 
                                  meta_loc _loc x0),
8164
 
                                meta_expr _loc x1)
 
8445
                                (Ast.ExApp (_loc,
 
8446
                                   (Ast.ExId (_loc,
 
8447
                                      (Ast.IdAcc (_loc,
 
8448
                                         (Ast.IdUid (_loc, "Ast")),
 
8449
                                         (Ast.IdUid (_loc, "ExSeq")))))),
 
8450
                                   (meta_loc _loc x0))),
 
8451
                                (meta_expr _loc x1))
8165
8452
                          | Ast.ExRec (x0, x1, x2) ->
8166
8453
                              Ast.ExApp (_loc,
8167
 
                                Ast.ExApp (_loc,
8168
 
                                  Ast.ExApp (_loc,
8169
 
                                    Ast.ExId (_loc,
8170
 
                                      Ast.IdAcc (_loc,
8171
 
                                        Ast.IdUid (_loc, "Ast"),
8172
 
                                        Ast.IdUid (_loc, "ExRec"))),
8173
 
                                    meta_loc _loc x0),
8174
 
                                  meta_rec_binding _loc x1),
8175
 
                                meta_expr _loc x2)
 
8454
                                (Ast.ExApp (_loc,
 
8455
                                   (Ast.ExApp (_loc,
 
8456
                                      (Ast.ExId (_loc,
 
8457
                                         (Ast.IdAcc (_loc,
 
8458
                                            (Ast.IdUid (_loc, "Ast")),
 
8459
                                            (Ast.IdUid (_loc, "ExRec")))))),
 
8460
                                      (meta_loc _loc x0))),
 
8461
                                   (meta_rec_binding _loc x1))),
 
8462
                                (meta_expr _loc x2))
8176
8463
                          | Ast.ExOvr (x0, x1) ->
8177
8464
                              Ast.ExApp (_loc,
8178
 
                                Ast.ExApp (_loc,
8179
 
                                  Ast.ExId (_loc,
8180
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8181
 
                                      Ast.IdUid (_loc, "ExOvr"))),
8182
 
                                  meta_loc _loc x0),
8183
 
                                meta_rec_binding _loc x1)
 
8465
                                (Ast.ExApp (_loc,
 
8466
                                   (Ast.ExId (_loc,
 
8467
                                      (Ast.IdAcc (_loc,
 
8468
                                         (Ast.IdUid (_loc, "Ast")),
 
8469
                                         (Ast.IdUid (_loc, "ExOvr")))))),
 
8470
                                   (meta_loc _loc x0))),
 
8471
                                (meta_rec_binding _loc x1))
8184
8472
                          | Ast.ExOlb (x0, x1, x2) ->
8185
8473
                              Ast.ExApp (_loc,
8186
 
                                Ast.ExApp (_loc,
8187
 
                                  Ast.ExApp (_loc,
8188
 
                                    Ast.ExId (_loc,
8189
 
                                      Ast.IdAcc (_loc,
8190
 
                                        Ast.IdUid (_loc, "Ast"),
8191
 
                                        Ast.IdUid (_loc, "ExOlb"))),
8192
 
                                    meta_loc _loc x0),
8193
 
                                  meta_string _loc x1),
8194
 
                                meta_expr _loc x2)
 
8474
                                (Ast.ExApp (_loc,
 
8475
                                   (Ast.ExApp (_loc,
 
8476
                                      (Ast.ExId (_loc,
 
8477
                                         (Ast.IdAcc (_loc,
 
8478
                                            (Ast.IdUid (_loc, "Ast")),
 
8479
                                            (Ast.IdUid (_loc, "ExOlb")))))),
 
8480
                                      (meta_loc _loc x0))),
 
8481
                                   (meta_string _loc x1))),
 
8482
                                (meta_expr _loc x2))
8195
8483
                          | Ast.ExObj (x0, x1, x2) ->
8196
8484
                              Ast.ExApp (_loc,
8197
 
                                Ast.ExApp (_loc,
8198
 
                                  Ast.ExApp (_loc,
8199
 
                                    Ast.ExId (_loc,
8200
 
                                      Ast.IdAcc (_loc,
8201
 
                                        Ast.IdUid (_loc, "Ast"),
8202
 
                                        Ast.IdUid (_loc, "ExObj"))),
8203
 
                                    meta_loc _loc x0),
8204
 
                                  meta_patt _loc x1),
8205
 
                                meta_class_str_item _loc x2)
 
8485
                                (Ast.ExApp (_loc,
 
8486
                                   (Ast.ExApp (_loc,
 
8487
                                      (Ast.ExId (_loc,
 
8488
                                         (Ast.IdAcc (_loc,
 
8489
                                            (Ast.IdUid (_loc, "Ast")),
 
8490
                                            (Ast.IdUid (_loc, "ExObj")))))),
 
8491
                                      (meta_loc _loc x0))),
 
8492
                                   (meta_patt _loc x1))),
 
8493
                                (meta_class_str_item _loc x2))
8206
8494
                          | Ast.ExNew (x0, x1) ->
8207
8495
                              Ast.ExApp (_loc,
8208
 
                                Ast.ExApp (_loc,
8209
 
                                  Ast.ExId (_loc,
8210
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8211
 
                                      Ast.IdUid (_loc, "ExNew"))),
8212
 
                                  meta_loc _loc x0),
8213
 
                                meta_ident _loc x1)
 
8496
                                (Ast.ExApp (_loc,
 
8497
                                   (Ast.ExId (_loc,
 
8498
                                      (Ast.IdAcc (_loc,
 
8499
                                         (Ast.IdUid (_loc, "Ast")),
 
8500
                                         (Ast.IdUid (_loc, "ExNew")))))),
 
8501
                                   (meta_loc _loc x0))),
 
8502
                                (meta_ident _loc x1))
8214
8503
                          | Ast.ExMat (x0, x1, x2) ->
8215
8504
                              Ast.ExApp (_loc,
8216
 
                                Ast.ExApp (_loc,
8217
 
                                  Ast.ExApp (_loc,
8218
 
                                    Ast.ExId (_loc,
8219
 
                                      Ast.IdAcc (_loc,
8220
 
                                        Ast.IdUid (_loc, "Ast"),
8221
 
                                        Ast.IdUid (_loc, "ExMat"))),
8222
 
                                    meta_loc _loc x0),
8223
 
                                  meta_expr _loc x1),
8224
 
                                meta_match_case _loc x2)
 
8505
                                (Ast.ExApp (_loc,
 
8506
                                   (Ast.ExApp (_loc,
 
8507
                                      (Ast.ExId (_loc,
 
8508
                                         (Ast.IdAcc (_loc,
 
8509
                                            (Ast.IdUid (_loc, "Ast")),
 
8510
                                            (Ast.IdUid (_loc, "ExMat")))))),
 
8511
                                      (meta_loc _loc x0))),
 
8512
                                   (meta_expr _loc x1))),
 
8513
                                (meta_match_case _loc x2))
8225
8514
                          | Ast.ExLmd (x0, x1, x2, x3) ->
8226
8515
                              Ast.ExApp (_loc,
8227
 
                                Ast.ExApp (_loc,
8228
 
                                  Ast.ExApp (_loc,
8229
 
                                    Ast.ExApp (_loc,
8230
 
                                      Ast.ExId (_loc,
8231
 
                                        Ast.IdAcc (_loc,
8232
 
                                          Ast.IdUid (_loc, "Ast"),
8233
 
                                          Ast.IdUid (_loc, "ExLmd"))),
8234
 
                                      meta_loc _loc x0),
8235
 
                                    meta_string _loc x1),
8236
 
                                  meta_module_expr _loc x2),
8237
 
                                meta_expr _loc x3)
 
8516
                                (Ast.ExApp (_loc,
 
8517
                                   (Ast.ExApp (_loc,
 
8518
                                      (Ast.ExApp (_loc,
 
8519
                                         (Ast.ExId (_loc,
 
8520
                                            (Ast.IdAcc (_loc,
 
8521
                                               (Ast.IdUid (_loc, "Ast")),
 
8522
                                               (Ast.IdUid (_loc, "ExLmd")))))),
 
8523
                                         (meta_loc _loc x0))),
 
8524
                                      (meta_string _loc x1))),
 
8525
                                   (meta_module_expr _loc x2))),
 
8526
                                (meta_expr _loc x3))
8238
8527
                          | Ast.ExLet (x0, x1, x2, x3) ->
8239
8528
                              Ast.ExApp (_loc,
8240
 
                                Ast.ExApp (_loc,
8241
 
                                  Ast.ExApp (_loc,
8242
 
                                    Ast.ExApp (_loc,
8243
 
                                      Ast.ExId (_loc,
8244
 
                                        Ast.IdAcc (_loc,
8245
 
                                          Ast.IdUid (_loc, "Ast"),
8246
 
                                          Ast.IdUid (_loc, "ExLet"))),
8247
 
                                      meta_loc _loc x0),
8248
 
                                    meta_meta_bool _loc x1),
8249
 
                                  meta_binding _loc x2),
8250
 
                                meta_expr _loc x3)
 
8529
                                (Ast.ExApp (_loc,
 
8530
                                   (Ast.ExApp (_loc,
 
8531
                                      (Ast.ExApp (_loc,
 
8532
                                         (Ast.ExId (_loc,
 
8533
                                            (Ast.IdAcc (_loc,
 
8534
                                               (Ast.IdUid (_loc, "Ast")),
 
8535
                                               (Ast.IdUid (_loc, "ExLet")))))),
 
8536
                                         (meta_loc _loc x0))),
 
8537
                                      (meta_rec_flag _loc x1))),
 
8538
                                   (meta_binding _loc x2))),
 
8539
                                (meta_expr _loc x3))
8251
8540
                          | Ast.ExLaz (x0, x1) ->
8252
8541
                              Ast.ExApp (_loc,
8253
 
                                Ast.ExApp (_loc,
8254
 
                                  Ast.ExId (_loc,
8255
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8256
 
                                      Ast.IdUid (_loc, "ExLaz"))),
8257
 
                                  meta_loc _loc x0),
8258
 
                                meta_expr _loc x1)
 
8542
                                (Ast.ExApp (_loc,
 
8543
                                   (Ast.ExId (_loc,
 
8544
                                      (Ast.IdAcc (_loc,
 
8545
                                         (Ast.IdUid (_loc, "Ast")),
 
8546
                                         (Ast.IdUid (_loc, "ExLaz")))))),
 
8547
                                   (meta_loc _loc x0))),
 
8548
                                (meta_expr _loc x1))
8259
8549
                          | Ast.ExLab (x0, x1, x2) ->
8260
8550
                              Ast.ExApp (_loc,
8261
 
                                Ast.ExApp (_loc,
8262
 
                                  Ast.ExApp (_loc,
8263
 
                                    Ast.ExId (_loc,
8264
 
                                      Ast.IdAcc (_loc,
8265
 
                                        Ast.IdUid (_loc, "Ast"),
8266
 
                                        Ast.IdUid (_loc, "ExLab"))),
8267
 
                                    meta_loc _loc x0),
8268
 
                                  meta_string _loc x1),
8269
 
                                meta_expr _loc x2)
 
8551
                                (Ast.ExApp (_loc,
 
8552
                                   (Ast.ExApp (_loc,
 
8553
                                      (Ast.ExId (_loc,
 
8554
                                         (Ast.IdAcc (_loc,
 
8555
                                            (Ast.IdUid (_loc, "Ast")),
 
8556
                                            (Ast.IdUid (_loc, "ExLab")))))),
 
8557
                                      (meta_loc _loc x0))),
 
8558
                                   (meta_string _loc x1))),
 
8559
                                (meta_expr _loc x2))
8270
8560
                          | Ast.ExNativeInt (x0, x1) ->
8271
8561
                              Ast.ExApp (_loc,
8272
 
                                Ast.ExApp (_loc,
8273
 
                                  Ast.ExId (_loc,
8274
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8275
 
                                      Ast.IdUid (_loc, "ExNativeInt"))),
8276
 
                                  meta_loc _loc x0),
8277
 
                                meta_string _loc x1)
 
8562
                                (Ast.ExApp (_loc,
 
8563
                                   (Ast.ExId (_loc,
 
8564
                                      (Ast.IdAcc (_loc,
 
8565
                                         (Ast.IdUid (_loc, "Ast")),
 
8566
                                         (Ast.IdUid (_loc, "ExNativeInt")))))),
 
8567
                                   (meta_loc _loc x0))),
 
8568
                                (meta_string _loc x1))
8278
8569
                          | Ast.ExInt64 (x0, x1) ->
8279
8570
                              Ast.ExApp (_loc,
8280
 
                                Ast.ExApp (_loc,
8281
 
                                  Ast.ExId (_loc,
8282
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8283
 
                                      Ast.IdUid (_loc, "ExInt64"))),
8284
 
                                  meta_loc _loc x0),
8285
 
                                meta_string _loc x1)
 
8571
                                (Ast.ExApp (_loc,
 
8572
                                   (Ast.ExId (_loc,
 
8573
                                      (Ast.IdAcc (_loc,
 
8574
                                         (Ast.IdUid (_loc, "Ast")),
 
8575
                                         (Ast.IdUid (_loc, "ExInt64")))))),
 
8576
                                   (meta_loc _loc x0))),
 
8577
                                (meta_string _loc x1))
8286
8578
                          | Ast.ExInt32 (x0, x1) ->
8287
8579
                              Ast.ExApp (_loc,
8288
 
                                Ast.ExApp (_loc,
8289
 
                                  Ast.ExId (_loc,
8290
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8291
 
                                      Ast.IdUid (_loc, "ExInt32"))),
8292
 
                                  meta_loc _loc x0),
8293
 
                                meta_string _loc x1)
 
8580
                                (Ast.ExApp (_loc,
 
8581
                                   (Ast.ExId (_loc,
 
8582
                                      (Ast.IdAcc (_loc,
 
8583
                                         (Ast.IdUid (_loc, "Ast")),
 
8584
                                         (Ast.IdUid (_loc, "ExInt32")))))),
 
8585
                                   (meta_loc _loc x0))),
 
8586
                                (meta_string _loc x1))
8294
8587
                          | Ast.ExInt (x0, x1) ->
8295
8588
                              Ast.ExApp (_loc,
8296
 
                                Ast.ExApp (_loc,
8297
 
                                  Ast.ExId (_loc,
8298
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8299
 
                                      Ast.IdUid (_loc, "ExInt"))),
8300
 
                                  meta_loc _loc x0),
8301
 
                                meta_string _loc x1)
 
8589
                                (Ast.ExApp (_loc,
 
8590
                                   (Ast.ExId (_loc,
 
8591
                                      (Ast.IdAcc (_loc,
 
8592
                                         (Ast.IdUid (_loc, "Ast")),
 
8593
                                         (Ast.IdUid (_loc, "ExInt")))))),
 
8594
                                   (meta_loc _loc x0))),
 
8595
                                (meta_string _loc x1))
8302
8596
                          | Ast.ExIfe (x0, x1, x2, x3) ->
8303
8597
                              Ast.ExApp (_loc,
8304
 
                                Ast.ExApp (_loc,
8305
 
                                  Ast.ExApp (_loc,
8306
 
                                    Ast.ExApp (_loc,
8307
 
                                      Ast.ExId (_loc,
8308
 
                                        Ast.IdAcc (_loc,
8309
 
                                          Ast.IdUid (_loc, "Ast"),
8310
 
                                          Ast.IdUid (_loc, "ExIfe"))),
8311
 
                                      meta_loc _loc x0),
8312
 
                                    meta_expr _loc x1),
8313
 
                                  meta_expr _loc x2),
8314
 
                                meta_expr _loc x3)
 
8598
                                (Ast.ExApp (_loc,
 
8599
                                   (Ast.ExApp (_loc,
 
8600
                                      (Ast.ExApp (_loc,
 
8601
                                         (Ast.ExId (_loc,
 
8602
                                            (Ast.IdAcc (_loc,
 
8603
                                               (Ast.IdUid (_loc, "Ast")),
 
8604
                                               (Ast.IdUid (_loc, "ExIfe")))))),
 
8605
                                         (meta_loc _loc x0))),
 
8606
                                      (meta_expr _loc x1))),
 
8607
                                   (meta_expr _loc x2))),
 
8608
                                (meta_expr _loc x3))
8315
8609
                          | Ast.ExFun (x0, x1) ->
8316
8610
                              Ast.ExApp (_loc,
8317
 
                                Ast.ExApp (_loc,
8318
 
                                  Ast.ExId (_loc,
8319
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8320
 
                                      Ast.IdUid (_loc, "ExFun"))),
8321
 
                                  meta_loc _loc x0),
8322
 
                                meta_match_case _loc x1)
 
8611
                                (Ast.ExApp (_loc,
 
8612
                                   (Ast.ExId (_loc,
 
8613
                                      (Ast.IdAcc (_loc,
 
8614
                                         (Ast.IdUid (_loc, "Ast")),
 
8615
                                         (Ast.IdUid (_loc, "ExFun")))))),
 
8616
                                   (meta_loc _loc x0))),
 
8617
                                (meta_match_case _loc x1))
8323
8618
                          | Ast.ExFor (x0, x1, x2, x3, x4, x5) ->
8324
8619
                              Ast.ExApp (_loc,
8325
 
                                Ast.ExApp (_loc,
8326
 
                                  Ast.ExApp (_loc,
8327
 
                                    Ast.ExApp (_loc,
8328
 
                                      Ast.ExApp (_loc,
8329
 
                                        Ast.ExApp (_loc,
8330
 
                                          Ast.ExId (_loc,
8331
 
                                            Ast.IdAcc (_loc,
8332
 
                                              Ast.IdUid (_loc, "Ast"),
8333
 
                                              Ast.IdUid (_loc, "ExFor"))),
8334
 
                                          meta_loc _loc x0),
8335
 
                                        meta_string _loc x1),
8336
 
                                      meta_expr _loc x2),
8337
 
                                    meta_expr _loc x3),
8338
 
                                  meta_meta_bool _loc x4),
8339
 
                                meta_expr _loc x5)
 
8620
                                (Ast.ExApp (_loc,
 
8621
                                   (Ast.ExApp (_loc,
 
8622
                                      (Ast.ExApp (_loc,
 
8623
                                         (Ast.ExApp (_loc,
 
8624
                                            (Ast.ExApp (_loc,
 
8625
                                               (Ast.ExId (_loc,
 
8626
                                                  (Ast.IdAcc (_loc,
 
8627
                                                     (Ast.IdUid (_loc, "Ast")),
 
8628
                                                     (Ast.IdUid (_loc,
 
8629
                                                        "ExFor")))))),
 
8630
                                               (meta_loc _loc x0))),
 
8631
                                            (meta_string _loc x1))),
 
8632
                                         (meta_expr _loc x2))),
 
8633
                                      (meta_expr _loc x3))),
 
8634
                                   (meta_direction_flag _loc x4))),
 
8635
                                (meta_expr _loc x5))
8340
8636
                          | Ast.ExFlo (x0, x1) ->
8341
8637
                              Ast.ExApp (_loc,
8342
 
                                Ast.ExApp (_loc,
8343
 
                                  Ast.ExId (_loc,
8344
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8345
 
                                      Ast.IdUid (_loc, "ExFlo"))),
8346
 
                                  meta_loc _loc x0),
8347
 
                                meta_string _loc x1)
 
8638
                                (Ast.ExApp (_loc,
 
8639
                                   (Ast.ExId (_loc,
 
8640
                                      (Ast.IdAcc (_loc,
 
8641
                                         (Ast.IdUid (_loc, "Ast")),
 
8642
                                         (Ast.IdUid (_loc, "ExFlo")))))),
 
8643
                                   (meta_loc _loc x0))),
 
8644
                                (meta_string _loc x1))
8348
8645
                          | Ast.ExCoe (x0, x1, x2, x3) ->
8349
8646
                              Ast.ExApp (_loc,
8350
 
                                Ast.ExApp (_loc,
8351
 
                                  Ast.ExApp (_loc,
8352
 
                                    Ast.ExApp (_loc,
8353
 
                                      Ast.ExId (_loc,
8354
 
                                        Ast.IdAcc (_loc,
8355
 
                                          Ast.IdUid (_loc, "Ast"),
8356
 
                                          Ast.IdUid (_loc, "ExCoe"))),
8357
 
                                      meta_loc _loc x0),
8358
 
                                    meta_expr _loc x1),
8359
 
                                  meta_ctyp _loc x2),
8360
 
                                meta_ctyp _loc x3)
 
8647
                                (Ast.ExApp (_loc,
 
8648
                                   (Ast.ExApp (_loc,
 
8649
                                      (Ast.ExApp (_loc,
 
8650
                                         (Ast.ExId (_loc,
 
8651
                                            (Ast.IdAcc (_loc,
 
8652
                                               (Ast.IdUid (_loc, "Ast")),
 
8653
                                               (Ast.IdUid (_loc, "ExCoe")))))),
 
8654
                                         (meta_loc _loc x0))),
 
8655
                                      (meta_expr _loc x1))),
 
8656
                                   (meta_ctyp _loc x2))),
 
8657
                                (meta_ctyp _loc x3))
8361
8658
                          | Ast.ExChr (x0, x1) ->
8362
8659
                              Ast.ExApp (_loc,
8363
 
                                Ast.ExApp (_loc,
8364
 
                                  Ast.ExId (_loc,
8365
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8366
 
                                      Ast.IdUid (_loc, "ExChr"))),
8367
 
                                  meta_loc _loc x0),
8368
 
                                meta_string _loc x1)
 
8660
                                (Ast.ExApp (_loc,
 
8661
                                   (Ast.ExId (_loc,
 
8662
                                      (Ast.IdAcc (_loc,
 
8663
                                         (Ast.IdUid (_loc, "Ast")),
 
8664
                                         (Ast.IdUid (_loc, "ExChr")))))),
 
8665
                                   (meta_loc _loc x0))),
 
8666
                                (meta_string _loc x1))
8369
8667
                          | Ast.ExAss (x0, x1, x2) ->
8370
8668
                              Ast.ExApp (_loc,
8371
 
                                Ast.ExApp (_loc,
8372
 
                                  Ast.ExApp (_loc,
8373
 
                                    Ast.ExId (_loc,
8374
 
                                      Ast.IdAcc (_loc,
8375
 
                                        Ast.IdUid (_loc, "Ast"),
8376
 
                                        Ast.IdUid (_loc, "ExAss"))),
8377
 
                                    meta_loc _loc x0),
8378
 
                                  meta_expr _loc x1),
8379
 
                                meta_expr _loc x2)
 
8669
                                (Ast.ExApp (_loc,
 
8670
                                   (Ast.ExApp (_loc,
 
8671
                                      (Ast.ExId (_loc,
 
8672
                                         (Ast.IdAcc (_loc,
 
8673
                                            (Ast.IdUid (_loc, "Ast")),
 
8674
                                            (Ast.IdUid (_loc, "ExAss")))))),
 
8675
                                      (meta_loc _loc x0))),
 
8676
                                   (meta_expr _loc x1))),
 
8677
                                (meta_expr _loc x2))
8380
8678
                          | Ast.ExAsr (x0, x1) ->
8381
8679
                              Ast.ExApp (_loc,
8382
 
                                Ast.ExApp (_loc,
8383
 
                                  Ast.ExId (_loc,
8384
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8385
 
                                      Ast.IdUid (_loc, "ExAsr"))),
8386
 
                                  meta_loc _loc x0),
8387
 
                                meta_expr _loc x1)
 
8680
                                (Ast.ExApp (_loc,
 
8681
                                   (Ast.ExId (_loc,
 
8682
                                      (Ast.IdAcc (_loc,
 
8683
                                         (Ast.IdUid (_loc, "Ast")),
 
8684
                                         (Ast.IdUid (_loc, "ExAsr")))))),
 
8685
                                   (meta_loc _loc x0))),
 
8686
                                (meta_expr _loc x1))
8388
8687
                          | Ast.ExAsf x0 ->
8389
8688
                              Ast.ExApp (_loc,
8390
 
                                Ast.ExId (_loc,
8391
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8392
 
                                    Ast.IdUid (_loc, "ExAsf"))),
8393
 
                                meta_loc _loc x0)
 
8689
                                (Ast.ExId (_loc,
 
8690
                                   (Ast.IdAcc (_loc,
 
8691
                                      (Ast.IdUid (_loc, "Ast")),
 
8692
                                      (Ast.IdUid (_loc, "ExAsf")))))),
 
8693
                                (meta_loc _loc x0))
8394
8694
                          | Ast.ExSem (x0, x1, x2) ->
8395
8695
                              Ast.ExApp (_loc,
8396
 
                                Ast.ExApp (_loc,
8397
 
                                  Ast.ExApp (_loc,
8398
 
                                    Ast.ExId (_loc,
8399
 
                                      Ast.IdAcc (_loc,
8400
 
                                        Ast.IdUid (_loc, "Ast"),
8401
 
                                        Ast.IdUid (_loc, "ExSem"))),
8402
 
                                    meta_loc _loc x0),
8403
 
                                  meta_expr _loc x1),
8404
 
                                meta_expr _loc x2)
 
8696
                                (Ast.ExApp (_loc,
 
8697
                                   (Ast.ExApp (_loc,
 
8698
                                      (Ast.ExId (_loc,
 
8699
                                         (Ast.IdAcc (_loc,
 
8700
                                            (Ast.IdUid (_loc, "Ast")),
 
8701
                                            (Ast.IdUid (_loc, "ExSem")))))),
 
8702
                                      (meta_loc _loc x0))),
 
8703
                                   (meta_expr _loc x1))),
 
8704
                                (meta_expr _loc x2))
8405
8705
                          | Ast.ExArr (x0, x1) ->
8406
8706
                              Ast.ExApp (_loc,
8407
 
                                Ast.ExApp (_loc,
8408
 
                                  Ast.ExId (_loc,
8409
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8410
 
                                      Ast.IdUid (_loc, "ExArr"))),
8411
 
                                  meta_loc _loc x0),
8412
 
                                meta_expr _loc x1)
 
8707
                                (Ast.ExApp (_loc,
 
8708
                                   (Ast.ExId (_loc,
 
8709
                                      (Ast.IdAcc (_loc,
 
8710
                                         (Ast.IdUid (_loc, "Ast")),
 
8711
                                         (Ast.IdUid (_loc, "ExArr")))))),
 
8712
                                   (meta_loc _loc x0))),
 
8713
                                (meta_expr _loc x1))
8413
8714
                          | Ast.ExAre (x0, x1, x2) ->
8414
8715
                              Ast.ExApp (_loc,
8415
 
                                Ast.ExApp (_loc,
8416
 
                                  Ast.ExApp (_loc,
8417
 
                                    Ast.ExId (_loc,
8418
 
                                      Ast.IdAcc (_loc,
8419
 
                                        Ast.IdUid (_loc, "Ast"),
8420
 
                                        Ast.IdUid (_loc, "ExAre"))),
8421
 
                                    meta_loc _loc x0),
8422
 
                                  meta_expr _loc x1),
8423
 
                                meta_expr _loc x2)
 
8716
                                (Ast.ExApp (_loc,
 
8717
                                   (Ast.ExApp (_loc,
 
8718
                                      (Ast.ExId (_loc,
 
8719
                                         (Ast.IdAcc (_loc,
 
8720
                                            (Ast.IdUid (_loc, "Ast")),
 
8721
                                            (Ast.IdUid (_loc, "ExAre")))))),
 
8722
                                      (meta_loc _loc x0))),
 
8723
                                   (meta_expr _loc x1))),
 
8724
                                (meta_expr _loc x2))
8424
8725
                          | Ast.ExApp (x0, x1, x2) ->
8425
8726
                              Ast.ExApp (_loc,
8426
 
                                Ast.ExApp (_loc,
8427
 
                                  Ast.ExApp (_loc,
8428
 
                                    Ast.ExId (_loc,
8429
 
                                      Ast.IdAcc (_loc,
8430
 
                                        Ast.IdUid (_loc, "Ast"),
8431
 
                                        Ast.IdUid (_loc, "ExApp"))),
8432
 
                                    meta_loc _loc x0),
8433
 
                                  meta_expr _loc x1),
8434
 
                                meta_expr _loc x2)
 
8727
                                (Ast.ExApp (_loc,
 
8728
                                   (Ast.ExApp (_loc,
 
8729
                                      (Ast.ExId (_loc,
 
8730
                                         (Ast.IdAcc (_loc,
 
8731
                                            (Ast.IdUid (_loc, "Ast")),
 
8732
                                            (Ast.IdUid (_loc, "ExApp")))))),
 
8733
                                      (meta_loc _loc x0))),
 
8734
                                   (meta_expr _loc x1))),
 
8735
                                (meta_expr _loc x2))
8435
8736
                          | Ast.ExAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8436
8737
                          | Ast.ExAcc (x0, x1, x2) ->
8437
8738
                              Ast.ExApp (_loc,
8438
 
                                Ast.ExApp (_loc,
8439
 
                                  Ast.ExApp (_loc,
8440
 
                                    Ast.ExId (_loc,
8441
 
                                      Ast.IdAcc (_loc,
8442
 
                                        Ast.IdUid (_loc, "Ast"),
8443
 
                                        Ast.IdUid (_loc, "ExAcc"))),
8444
 
                                    meta_loc _loc x0),
8445
 
                                  meta_expr _loc x1),
8446
 
                                meta_expr _loc x2)
 
8739
                                (Ast.ExApp (_loc,
 
8740
                                   (Ast.ExApp (_loc,
 
8741
                                      (Ast.ExId (_loc,
 
8742
                                         (Ast.IdAcc (_loc,
 
8743
                                            (Ast.IdUid (_loc, "Ast")),
 
8744
                                            (Ast.IdUid (_loc, "ExAcc")))))),
 
8745
                                      (meta_loc _loc x0))),
 
8746
                                   (meta_expr _loc x1))),
 
8747
                                (meta_expr _loc x2))
8447
8748
                          | Ast.ExId (x0, x1) ->
8448
8749
                              Ast.ExApp (_loc,
8449
 
                                Ast.ExApp (_loc,
8450
 
                                  Ast.ExId (_loc,
8451
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8452
 
                                      Ast.IdUid (_loc, "ExId"))),
8453
 
                                  meta_loc _loc x0),
8454
 
                                meta_ident _loc x1)
 
8750
                                (Ast.ExApp (_loc,
 
8751
                                   (Ast.ExId (_loc,
 
8752
                                      (Ast.IdAcc (_loc,
 
8753
                                         (Ast.IdUid (_loc, "Ast")),
 
8754
                                         (Ast.IdUid (_loc, "ExId")))))),
 
8755
                                   (meta_loc _loc x0))),
 
8756
                                (meta_ident _loc x1))
8455
8757
                          | Ast.ExNil x0 ->
8456
8758
                              Ast.ExApp (_loc,
8457
 
                                Ast.ExId (_loc,
8458
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8459
 
                                    Ast.IdUid (_loc, "ExNil"))),
8460
 
                                meta_loc _loc x0)
 
8759
                                (Ast.ExId (_loc,
 
8760
                                   (Ast.IdAcc (_loc,
 
8761
                                      (Ast.IdUid (_loc, "Ast")),
 
8762
                                      (Ast.IdUid (_loc, "ExNil")))))),
 
8763
                                (meta_loc _loc x0))
8461
8764
                        and meta_ident _loc =
8462
8765
                          function
8463
8766
                          | Ast.IdAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8464
8767
                          | Ast.IdUid (x0, x1) ->
8465
8768
                              Ast.ExApp (_loc,
8466
 
                                Ast.ExApp (_loc,
8467
 
                                  Ast.ExId (_loc,
8468
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8469
 
                                      Ast.IdUid (_loc, "IdUid"))),
8470
 
                                  meta_loc _loc x0),
8471
 
                                meta_string _loc x1)
 
8769
                                (Ast.ExApp (_loc,
 
8770
                                   (Ast.ExId (_loc,
 
8771
                                      (Ast.IdAcc (_loc,
 
8772
                                         (Ast.IdUid (_loc, "Ast")),
 
8773
                                         (Ast.IdUid (_loc, "IdUid")))))),
 
8774
                                   (meta_loc _loc x0))),
 
8775
                                (meta_string _loc x1))
8472
8776
                          | Ast.IdLid (x0, x1) ->
8473
8777
                              Ast.ExApp (_loc,
8474
 
                                Ast.ExApp (_loc,
8475
 
                                  Ast.ExId (_loc,
8476
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8477
 
                                      Ast.IdUid (_loc, "IdLid"))),
8478
 
                                  meta_loc _loc x0),
8479
 
                                meta_string _loc x1)
 
8778
                                (Ast.ExApp (_loc,
 
8779
                                   (Ast.ExId (_loc,
 
8780
                                      (Ast.IdAcc (_loc,
 
8781
                                         (Ast.IdUid (_loc, "Ast")),
 
8782
                                         (Ast.IdUid (_loc, "IdLid")))))),
 
8783
                                   (meta_loc _loc x0))),
 
8784
                                (meta_string _loc x1))
8480
8785
                          | Ast.IdApp (x0, x1, x2) ->
8481
8786
                              Ast.ExApp (_loc,
8482
 
                                Ast.ExApp (_loc,
8483
 
                                  Ast.ExApp (_loc,
8484
 
                                    Ast.ExId (_loc,
8485
 
                                      Ast.IdAcc (_loc,
8486
 
                                        Ast.IdUid (_loc, "Ast"),
8487
 
                                        Ast.IdUid (_loc, "IdApp"))),
8488
 
                                    meta_loc _loc x0),
8489
 
                                  meta_ident _loc x1),
8490
 
                                meta_ident _loc x2)
 
8787
                                (Ast.ExApp (_loc,
 
8788
                                   (Ast.ExApp (_loc,
 
8789
                                      (Ast.ExId (_loc,
 
8790
                                         (Ast.IdAcc (_loc,
 
8791
                                            (Ast.IdUid (_loc, "Ast")),
 
8792
                                            (Ast.IdUid (_loc, "IdApp")))))),
 
8793
                                      (meta_loc _loc x0))),
 
8794
                                   (meta_ident _loc x1))),
 
8795
                                (meta_ident _loc x2))
8491
8796
                          | Ast.IdAcc (x0, x1, x2) ->
8492
8797
                              Ast.ExApp (_loc,
8493
 
                                Ast.ExApp (_loc,
8494
 
                                  Ast.ExApp (_loc,
8495
 
                                    Ast.ExId (_loc,
8496
 
                                      Ast.IdAcc (_loc,
8497
 
                                        Ast.IdUid (_loc, "Ast"),
8498
 
                                        Ast.IdUid (_loc, "IdAcc"))),
8499
 
                                    meta_loc _loc x0),
8500
 
                                  meta_ident _loc x1),
8501
 
                                meta_ident _loc x2)
 
8798
                                (Ast.ExApp (_loc,
 
8799
                                   (Ast.ExApp (_loc,
 
8800
                                      (Ast.ExId (_loc,
 
8801
                                         (Ast.IdAcc (_loc,
 
8802
                                            (Ast.IdUid (_loc, "Ast")),
 
8803
                                            (Ast.IdUid (_loc, "IdAcc")))))),
 
8804
                                      (meta_loc _loc x0))),
 
8805
                                   (meta_ident _loc x1))),
 
8806
                                (meta_ident _loc x2))
8502
8807
                        and meta_match_case _loc =
8503
8808
                          function
8504
8809
                          | Ast.McAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8505
8810
                          | Ast.McArr (x0, x1, x2, x3) ->
8506
8811
                              Ast.ExApp (_loc,
8507
 
                                Ast.ExApp (_loc,
8508
 
                                  Ast.ExApp (_loc,
8509
 
                                    Ast.ExApp (_loc,
8510
 
                                      Ast.ExId (_loc,
8511
 
                                        Ast.IdAcc (_loc,
8512
 
                                          Ast.IdUid (_loc, "Ast"),
8513
 
                                          Ast.IdUid (_loc, "McArr"))),
8514
 
                                      meta_loc _loc x0),
8515
 
                                    meta_patt _loc x1),
8516
 
                                  meta_expr _loc x2),
8517
 
                                meta_expr _loc x3)
 
8812
                                (Ast.ExApp (_loc,
 
8813
                                   (Ast.ExApp (_loc,
 
8814
                                      (Ast.ExApp (_loc,
 
8815
                                         (Ast.ExId (_loc,
 
8816
                                            (Ast.IdAcc (_loc,
 
8817
                                               (Ast.IdUid (_loc, "Ast")),
 
8818
                                               (Ast.IdUid (_loc, "McArr")))))),
 
8819
                                         (meta_loc _loc x0))),
 
8820
                                      (meta_patt _loc x1))),
 
8821
                                   (meta_expr _loc x2))),
 
8822
                                (meta_expr _loc x3))
8518
8823
                          | Ast.McOr (x0, x1, x2) ->
8519
8824
                              Ast.ExApp (_loc,
8520
 
                                Ast.ExApp (_loc,
8521
 
                                  Ast.ExApp (_loc,
8522
 
                                    Ast.ExId (_loc,
8523
 
                                      Ast.IdAcc (_loc,
8524
 
                                        Ast.IdUid (_loc, "Ast"),
8525
 
                                        Ast.IdUid (_loc, "McOr"))),
8526
 
                                    meta_loc _loc x0),
8527
 
                                  meta_match_case _loc x1),
8528
 
                                meta_match_case _loc x2)
 
8825
                                (Ast.ExApp (_loc,
 
8826
                                   (Ast.ExApp (_loc,
 
8827
                                      (Ast.ExId (_loc,
 
8828
                                         (Ast.IdAcc (_loc,
 
8829
                                            (Ast.IdUid (_loc, "Ast")),
 
8830
                                            (Ast.IdUid (_loc, "McOr")))))),
 
8831
                                      (meta_loc _loc x0))),
 
8832
                                   (meta_match_case _loc x1))),
 
8833
                                (meta_match_case _loc x2))
8529
8834
                          | Ast.McNil x0 ->
8530
8835
                              Ast.ExApp (_loc,
8531
 
                                Ast.ExId (_loc,
8532
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8533
 
                                    Ast.IdUid (_loc, "McNil"))),
8534
 
                                meta_loc _loc x0)
 
8836
                                (Ast.ExId (_loc,
 
8837
                                   (Ast.IdAcc (_loc,
 
8838
                                      (Ast.IdUid (_loc, "Ast")),
 
8839
                                      (Ast.IdUid (_loc, "McNil")))))),
 
8840
                                (meta_loc _loc x0))
8535
8841
                        and meta_meta_bool _loc =
8536
8842
                          function
8537
8843
                          | Ast.BAnt x0 -> Ast.ExAnt (_loc, x0)
8538
8844
                          | Ast.BFalse ->
8539
8845
                              Ast.ExId (_loc,
8540
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8541
 
                                  Ast.IdUid (_loc, "BFalse")))
 
8846
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8847
                                   (Ast.IdUid (_loc, "BFalse")))))
8542
8848
                          | Ast.BTrue ->
8543
8849
                              Ast.ExId (_loc,
8544
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8545
 
                                  Ast.IdUid (_loc, "BTrue")))
 
8850
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8851
                                   (Ast.IdUid (_loc, "BTrue")))))
8546
8852
                        and meta_meta_list mf_a _loc =
8547
8853
                          function
8548
8854
                          | Ast.LAnt x0 -> Ast.ExAnt (_loc, x0)
8549
8855
                          | Ast.LCons (x0, x1) ->
8550
8856
                              Ast.ExApp (_loc,
8551
 
                                Ast.ExApp (_loc,
8552
 
                                  Ast.ExId (_loc,
8553
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8554
 
                                      Ast.IdUid (_loc, "LCons"))),
8555
 
                                  mf_a _loc x0),
8556
 
                                meta_meta_list mf_a _loc x1)
 
8857
                                (Ast.ExApp (_loc,
 
8858
                                   (Ast.ExId (_loc,
 
8859
                                      (Ast.IdAcc (_loc,
 
8860
                                         (Ast.IdUid (_loc, "Ast")),
 
8861
                                         (Ast.IdUid (_loc, "LCons")))))),
 
8862
                                   (mf_a _loc x0))),
 
8863
                                (meta_meta_list mf_a _loc x1))
8557
8864
                          | Ast.LNil ->
8558
8865
                              Ast.ExId (_loc,
8559
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8560
 
                                  Ast.IdUid (_loc, "LNil")))
 
8866
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8867
                                   (Ast.IdUid (_loc, "LNil")))))
8561
8868
                        and meta_meta_option mf_a _loc =
8562
8869
                          function
8563
8870
                          | Ast.OAnt x0 -> Ast.ExAnt (_loc, x0)
8564
8871
                          | Ast.OSome x0 ->
8565
8872
                              Ast.ExApp (_loc,
8566
 
                                Ast.ExId (_loc,
8567
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8568
 
                                    Ast.IdUid (_loc, "OSome"))),
8569
 
                                mf_a _loc x0)
 
8873
                                (Ast.ExId (_loc,
 
8874
                                   (Ast.IdAcc (_loc,
 
8875
                                      (Ast.IdUid (_loc, "Ast")),
 
8876
                                      (Ast.IdUid (_loc, "OSome")))))),
 
8877
                                (mf_a _loc x0))
8570
8878
                          | Ast.ONone ->
8571
8879
                              Ast.ExId (_loc,
8572
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8573
 
                                  Ast.IdUid (_loc, "ONone")))
 
8880
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
8881
                                   (Ast.IdUid (_loc, "ONone")))))
8574
8882
                        and meta_module_binding _loc =
8575
8883
                          function
8576
8884
                          | Ast.MbAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8577
8885
                          | Ast.MbCol (x0, x1, x2) ->
8578
8886
                              Ast.ExApp (_loc,
8579
 
                                Ast.ExApp (_loc,
8580
 
                                  Ast.ExApp (_loc,
8581
 
                                    Ast.ExId (_loc,
8582
 
                                      Ast.IdAcc (_loc,
8583
 
                                        Ast.IdUid (_loc, "Ast"),
8584
 
                                        Ast.IdUid (_loc, "MbCol"))),
8585
 
                                    meta_loc _loc x0),
8586
 
                                  meta_string _loc x1),
8587
 
                                meta_module_type _loc x2)
 
8887
                                (Ast.ExApp (_loc,
 
8888
                                   (Ast.ExApp (_loc,
 
8889
                                      (Ast.ExId (_loc,
 
8890
                                         (Ast.IdAcc (_loc,
 
8891
                                            (Ast.IdUid (_loc, "Ast")),
 
8892
                                            (Ast.IdUid (_loc, "MbCol")))))),
 
8893
                                      (meta_loc _loc x0))),
 
8894
                                   (meta_string _loc x1))),
 
8895
                                (meta_module_type _loc x2))
8588
8896
                          | Ast.MbColEq (x0, x1, x2, x3) ->
8589
8897
                              Ast.ExApp (_loc,
8590
 
                                Ast.ExApp (_loc,
8591
 
                                  Ast.ExApp (_loc,
8592
 
                                    Ast.ExApp (_loc,
8593
 
                                      Ast.ExId (_loc,
8594
 
                                        Ast.IdAcc (_loc,
8595
 
                                          Ast.IdUid (_loc, "Ast"),
8596
 
                                          Ast.IdUid (_loc, "MbColEq"))),
8597
 
                                      meta_loc _loc x0),
8598
 
                                    meta_string _loc x1),
8599
 
                                  meta_module_type _loc x2),
8600
 
                                meta_module_expr _loc x3)
 
8898
                                (Ast.ExApp (_loc,
 
8899
                                   (Ast.ExApp (_loc,
 
8900
                                      (Ast.ExApp (_loc,
 
8901
                                         (Ast.ExId (_loc,
 
8902
                                            (Ast.IdAcc (_loc,
 
8903
                                               (Ast.IdUid (_loc, "Ast")),
 
8904
                                               (Ast.IdUid (_loc, "MbColEq")))))),
 
8905
                                         (meta_loc _loc x0))),
 
8906
                                      (meta_string _loc x1))),
 
8907
                                   (meta_module_type _loc x2))),
 
8908
                                (meta_module_expr _loc x3))
8601
8909
                          | Ast.MbAnd (x0, x1, x2) ->
8602
8910
                              Ast.ExApp (_loc,
8603
 
                                Ast.ExApp (_loc,
8604
 
                                  Ast.ExApp (_loc,
8605
 
                                    Ast.ExId (_loc,
8606
 
                                      Ast.IdAcc (_loc,
8607
 
                                        Ast.IdUid (_loc, "Ast"),
8608
 
                                        Ast.IdUid (_loc, "MbAnd"))),
8609
 
                                    meta_loc _loc x0),
8610
 
                                  meta_module_binding _loc x1),
8611
 
                                meta_module_binding _loc x2)
 
8911
                                (Ast.ExApp (_loc,
 
8912
                                   (Ast.ExApp (_loc,
 
8913
                                      (Ast.ExId (_loc,
 
8914
                                         (Ast.IdAcc (_loc,
 
8915
                                            (Ast.IdUid (_loc, "Ast")),
 
8916
                                            (Ast.IdUid (_loc, "MbAnd")))))),
 
8917
                                      (meta_loc _loc x0))),
 
8918
                                   (meta_module_binding _loc x1))),
 
8919
                                (meta_module_binding _loc x2))
8612
8920
                          | Ast.MbNil x0 ->
8613
8921
                              Ast.ExApp (_loc,
8614
 
                                Ast.ExId (_loc,
8615
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8616
 
                                    Ast.IdUid (_loc, "MbNil"))),
8617
 
                                meta_loc _loc x0)
 
8922
                                (Ast.ExId (_loc,
 
8923
                                   (Ast.IdAcc (_loc,
 
8924
                                      (Ast.IdUid (_loc, "Ast")),
 
8925
                                      (Ast.IdUid (_loc, "MbNil")))))),
 
8926
                                (meta_loc _loc x0))
8618
8927
                        and meta_module_expr _loc =
8619
8928
                          function
8620
8929
                          | Ast.MeAnt (x0, x1) -> Ast.ExAnt (x0, x1)
 
8930
                          | Ast.MePkg (x0, x1) ->
 
8931
                              Ast.ExApp (_loc,
 
8932
                                (Ast.ExApp (_loc,
 
8933
                                   (Ast.ExId (_loc,
 
8934
                                      (Ast.IdAcc (_loc,
 
8935
                                         (Ast.IdUid (_loc, "Ast")),
 
8936
                                         (Ast.IdUid (_loc, "MePkg")))))),
 
8937
                                   (meta_loc _loc x0))),
 
8938
                                (meta_expr _loc x1))
8621
8939
                          | Ast.MeTyc (x0, x1, x2) ->
8622
8940
                              Ast.ExApp (_loc,
8623
 
                                Ast.ExApp (_loc,
8624
 
                                  Ast.ExApp (_loc,
8625
 
                                    Ast.ExId (_loc,
8626
 
                                      Ast.IdAcc (_loc,
8627
 
                                        Ast.IdUid (_loc, "Ast"),
8628
 
                                        Ast.IdUid (_loc, "MeTyc"))),
8629
 
                                    meta_loc _loc x0),
8630
 
                                  meta_module_expr _loc x1),
8631
 
                                meta_module_type _loc x2)
 
8941
                                (Ast.ExApp (_loc,
 
8942
                                   (Ast.ExApp (_loc,
 
8943
                                      (Ast.ExId (_loc,
 
8944
                                         (Ast.IdAcc (_loc,
 
8945
                                            (Ast.IdUid (_loc, "Ast")),
 
8946
                                            (Ast.IdUid (_loc, "MeTyc")))))),
 
8947
                                      (meta_loc _loc x0))),
 
8948
                                   (meta_module_expr _loc x1))),
 
8949
                                (meta_module_type _loc x2))
8632
8950
                          | Ast.MeStr (x0, x1) ->
8633
8951
                              Ast.ExApp (_loc,
8634
 
                                Ast.ExApp (_loc,
8635
 
                                  Ast.ExId (_loc,
8636
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8637
 
                                      Ast.IdUid (_loc, "MeStr"))),
8638
 
                                  meta_loc _loc x0),
8639
 
                                meta_str_item _loc x1)
 
8952
                                (Ast.ExApp (_loc,
 
8953
                                   (Ast.ExId (_loc,
 
8954
                                      (Ast.IdAcc (_loc,
 
8955
                                         (Ast.IdUid (_loc, "Ast")),
 
8956
                                         (Ast.IdUid (_loc, "MeStr")))))),
 
8957
                                   (meta_loc _loc x0))),
 
8958
                                (meta_str_item _loc x1))
8640
8959
                          | Ast.MeFun (x0, x1, x2, x3) ->
8641
8960
                              Ast.ExApp (_loc,
8642
 
                                Ast.ExApp (_loc,
8643
 
                                  Ast.ExApp (_loc,
8644
 
                                    Ast.ExApp (_loc,
8645
 
                                      Ast.ExId (_loc,
8646
 
                                        Ast.IdAcc (_loc,
8647
 
                                          Ast.IdUid (_loc, "Ast"),
8648
 
                                          Ast.IdUid (_loc, "MeFun"))),
8649
 
                                      meta_loc _loc x0),
8650
 
                                    meta_string _loc x1),
8651
 
                                  meta_module_type _loc x2),
8652
 
                                meta_module_expr _loc x3)
 
8961
                                (Ast.ExApp (_loc,
 
8962
                                   (Ast.ExApp (_loc,
 
8963
                                      (Ast.ExApp (_loc,
 
8964
                                         (Ast.ExId (_loc,
 
8965
                                            (Ast.IdAcc (_loc,
 
8966
                                               (Ast.IdUid (_loc, "Ast")),
 
8967
                                               (Ast.IdUid (_loc, "MeFun")))))),
 
8968
                                         (meta_loc _loc x0))),
 
8969
                                      (meta_string _loc x1))),
 
8970
                                   (meta_module_type _loc x2))),
 
8971
                                (meta_module_expr _loc x3))
8653
8972
                          | Ast.MeApp (x0, x1, x2) ->
8654
8973
                              Ast.ExApp (_loc,
8655
 
                                Ast.ExApp (_loc,
8656
 
                                  Ast.ExApp (_loc,
8657
 
                                    Ast.ExId (_loc,
8658
 
                                      Ast.IdAcc (_loc,
8659
 
                                        Ast.IdUid (_loc, "Ast"),
8660
 
                                        Ast.IdUid (_loc, "MeApp"))),
8661
 
                                    meta_loc _loc x0),
8662
 
                                  meta_module_expr _loc x1),
8663
 
                                meta_module_expr _loc x2)
 
8974
                                (Ast.ExApp (_loc,
 
8975
                                   (Ast.ExApp (_loc,
 
8976
                                      (Ast.ExId (_loc,
 
8977
                                         (Ast.IdAcc (_loc,
 
8978
                                            (Ast.IdUid (_loc, "Ast")),
 
8979
                                            (Ast.IdUid (_loc, "MeApp")))))),
 
8980
                                      (meta_loc _loc x0))),
 
8981
                                   (meta_module_expr _loc x1))),
 
8982
                                (meta_module_expr _loc x2))
8664
8983
                          | Ast.MeId (x0, x1) ->
8665
8984
                              Ast.ExApp (_loc,
8666
 
                                Ast.ExApp (_loc,
8667
 
                                  Ast.ExId (_loc,
8668
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8669
 
                                      Ast.IdUid (_loc, "MeId"))),
8670
 
                                  meta_loc _loc x0),
8671
 
                                meta_ident _loc x1)
 
8985
                                (Ast.ExApp (_loc,
 
8986
                                   (Ast.ExId (_loc,
 
8987
                                      (Ast.IdAcc (_loc,
 
8988
                                         (Ast.IdUid (_loc, "Ast")),
 
8989
                                         (Ast.IdUid (_loc, "MeId")))))),
 
8990
                                   (meta_loc _loc x0))),
 
8991
                                (meta_ident _loc x1))
8672
8992
                          | Ast.MeNil x0 ->
8673
8993
                              Ast.ExApp (_loc,
8674
 
                                Ast.ExId (_loc,
8675
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8676
 
                                    Ast.IdUid (_loc, "MeNil"))),
8677
 
                                meta_loc _loc x0)
 
8994
                                (Ast.ExId (_loc,
 
8995
                                   (Ast.IdAcc (_loc,
 
8996
                                      (Ast.IdUid (_loc, "Ast")),
 
8997
                                      (Ast.IdUid (_loc, "MeNil")))))),
 
8998
                                (meta_loc _loc x0))
8678
8999
                        and meta_module_type _loc =
8679
9000
                          function
8680
9001
                          | Ast.MtAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8681
9002
                          | Ast.MtWit (x0, x1, x2) ->
8682
9003
                              Ast.ExApp (_loc,
8683
 
                                Ast.ExApp (_loc,
8684
 
                                  Ast.ExApp (_loc,
8685
 
                                    Ast.ExId (_loc,
8686
 
                                      Ast.IdAcc (_loc,
8687
 
                                        Ast.IdUid (_loc, "Ast"),
8688
 
                                        Ast.IdUid (_loc, "MtWit"))),
8689
 
                                    meta_loc _loc x0),
8690
 
                                  meta_module_type _loc x1),
8691
 
                                meta_with_constr _loc x2)
 
9004
                                (Ast.ExApp (_loc,
 
9005
                                   (Ast.ExApp (_loc,
 
9006
                                      (Ast.ExId (_loc,
 
9007
                                         (Ast.IdAcc (_loc,
 
9008
                                            (Ast.IdUid (_loc, "Ast")),
 
9009
                                            (Ast.IdUid (_loc, "MtWit")))))),
 
9010
                                      (meta_loc _loc x0))),
 
9011
                                   (meta_module_type _loc x1))),
 
9012
                                (meta_with_constr _loc x2))
8692
9013
                          | Ast.MtSig (x0, x1) ->
8693
9014
                              Ast.ExApp (_loc,
8694
 
                                Ast.ExApp (_loc,
8695
 
                                  Ast.ExId (_loc,
8696
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8697
 
                                      Ast.IdUid (_loc, "MtSig"))),
8698
 
                                  meta_loc _loc x0),
8699
 
                                meta_sig_item _loc x1)
 
9015
                                (Ast.ExApp (_loc,
 
9016
                                   (Ast.ExId (_loc,
 
9017
                                      (Ast.IdAcc (_loc,
 
9018
                                         (Ast.IdUid (_loc, "Ast")),
 
9019
                                         (Ast.IdUid (_loc, "MtSig")))))),
 
9020
                                   (meta_loc _loc x0))),
 
9021
                                (meta_sig_item _loc x1))
8700
9022
                          | Ast.MtQuo (x0, x1) ->
8701
9023
                              Ast.ExApp (_loc,
8702
 
                                Ast.ExApp (_loc,
8703
 
                                  Ast.ExId (_loc,
8704
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8705
 
                                      Ast.IdUid (_loc, "MtQuo"))),
8706
 
                                  meta_loc _loc x0),
8707
 
                                meta_string _loc x1)
 
9024
                                (Ast.ExApp (_loc,
 
9025
                                   (Ast.ExId (_loc,
 
9026
                                      (Ast.IdAcc (_loc,
 
9027
                                         (Ast.IdUid (_loc, "Ast")),
 
9028
                                         (Ast.IdUid (_loc, "MtQuo")))))),
 
9029
                                   (meta_loc _loc x0))),
 
9030
                                (meta_string _loc x1))
8708
9031
                          | Ast.MtFun (x0, x1, x2, x3) ->
8709
9032
                              Ast.ExApp (_loc,
8710
 
                                Ast.ExApp (_loc,
8711
 
                                  Ast.ExApp (_loc,
8712
 
                                    Ast.ExApp (_loc,
8713
 
                                      Ast.ExId (_loc,
8714
 
                                        Ast.IdAcc (_loc,
8715
 
                                          Ast.IdUid (_loc, "Ast"),
8716
 
                                          Ast.IdUid (_loc, "MtFun"))),
8717
 
                                      meta_loc _loc x0),
8718
 
                                    meta_string _loc x1),
8719
 
                                  meta_module_type _loc x2),
8720
 
                                meta_module_type _loc x3)
 
9033
                                (Ast.ExApp (_loc,
 
9034
                                   (Ast.ExApp (_loc,
 
9035
                                      (Ast.ExApp (_loc,
 
9036
                                         (Ast.ExId (_loc,
 
9037
                                            (Ast.IdAcc (_loc,
 
9038
                                               (Ast.IdUid (_loc, "Ast")),
 
9039
                                               (Ast.IdUid (_loc, "MtFun")))))),
 
9040
                                         (meta_loc _loc x0))),
 
9041
                                      (meta_string _loc x1))),
 
9042
                                   (meta_module_type _loc x2))),
 
9043
                                (meta_module_type _loc x3))
8721
9044
                          | Ast.MtId (x0, x1) ->
8722
9045
                              Ast.ExApp (_loc,
8723
 
                                Ast.ExApp (_loc,
8724
 
                                  Ast.ExId (_loc,
8725
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8726
 
                                      Ast.IdUid (_loc, "MtId"))),
8727
 
                                  meta_loc _loc x0),
8728
 
                                meta_ident _loc x1)
 
9046
                                (Ast.ExApp (_loc,
 
9047
                                   (Ast.ExId (_loc,
 
9048
                                      (Ast.IdAcc (_loc,
 
9049
                                         (Ast.IdUid (_loc, "Ast")),
 
9050
                                         (Ast.IdUid (_loc, "MtId")))))),
 
9051
                                   (meta_loc _loc x0))),
 
9052
                                (meta_ident _loc x1))
8729
9053
                          | Ast.MtNil x0 ->
8730
9054
                              Ast.ExApp (_loc,
8731
 
                                Ast.ExId (_loc,
8732
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8733
 
                                    Ast.IdUid (_loc, "MtNil"))),
8734
 
                                meta_loc _loc x0)
 
9055
                                (Ast.ExId (_loc,
 
9056
                                   (Ast.IdAcc (_loc,
 
9057
                                      (Ast.IdUid (_loc, "Ast")),
 
9058
                                      (Ast.IdUid (_loc, "MtNil")))))),
 
9059
                                (meta_loc _loc x0))
 
9060
                        and meta_mutable_flag _loc =
 
9061
                          function
 
9062
                          | Ast.MuAnt x0 -> Ast.ExAnt (_loc, x0)
 
9063
                          | Ast.MuNil ->
 
9064
                              Ast.ExId (_loc,
 
9065
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9066
                                   (Ast.IdUid (_loc, "MuNil")))))
 
9067
                          | Ast.MuMutable ->
 
9068
                              Ast.ExId (_loc,
 
9069
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9070
                                   (Ast.IdUid (_loc, "MuMutable")))))
 
9071
                        and meta_override_flag _loc =
 
9072
                          function
 
9073
                          | Ast.OvAnt x0 -> Ast.ExAnt (_loc, x0)
 
9074
                          | Ast.OvNil ->
 
9075
                              Ast.ExId (_loc,
 
9076
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9077
                                   (Ast.IdUid (_loc, "OvNil")))))
 
9078
                          | Ast.OvOverride ->
 
9079
                              Ast.ExId (_loc,
 
9080
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9081
                                   (Ast.IdUid (_loc, "OvOverride")))))
8735
9082
                        and meta_patt _loc =
8736
9083
                          function
8737
9084
                          | Ast.PaLaz (x0, x1) ->
8738
9085
                              Ast.ExApp (_loc,
8739
 
                                Ast.ExApp (_loc,
8740
 
                                  Ast.ExId (_loc,
8741
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8742
 
                                      Ast.IdUid (_loc, "PaLaz"))),
8743
 
                                  meta_loc _loc x0),
8744
 
                                meta_patt _loc x1)
 
9086
                                (Ast.ExApp (_loc,
 
9087
                                   (Ast.ExId (_loc,
 
9088
                                      (Ast.IdAcc (_loc,
 
9089
                                         (Ast.IdUid (_loc, "Ast")),
 
9090
                                         (Ast.IdUid (_loc, "PaLaz")))))),
 
9091
                                   (meta_loc _loc x0))),
 
9092
                                (meta_patt _loc x1))
8745
9093
                          | Ast.PaVrn (x0, x1) ->
8746
9094
                              Ast.ExApp (_loc,
8747
 
                                Ast.ExApp (_loc,
8748
 
                                  Ast.ExId (_loc,
8749
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8750
 
                                      Ast.IdUid (_loc, "PaVrn"))),
8751
 
                                  meta_loc _loc x0),
8752
 
                                meta_string _loc x1)
 
9095
                                (Ast.ExApp (_loc,
 
9096
                                   (Ast.ExId (_loc,
 
9097
                                      (Ast.IdAcc (_loc,
 
9098
                                         (Ast.IdUid (_loc, "Ast")),
 
9099
                                         (Ast.IdUid (_loc, "PaVrn")))))),
 
9100
                                   (meta_loc _loc x0))),
 
9101
                                (meta_string _loc x1))
8753
9102
                          | Ast.PaTyp (x0, x1) ->
8754
9103
                              Ast.ExApp (_loc,
8755
 
                                Ast.ExApp (_loc,
8756
 
                                  Ast.ExId (_loc,
8757
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8758
 
                                      Ast.IdUid (_loc, "PaTyp"))),
8759
 
                                  meta_loc _loc x0),
8760
 
                                meta_ident _loc x1)
 
9104
                                (Ast.ExApp (_loc,
 
9105
                                   (Ast.ExId (_loc,
 
9106
                                      (Ast.IdAcc (_loc,
 
9107
                                         (Ast.IdUid (_loc, "Ast")),
 
9108
                                         (Ast.IdUid (_loc, "PaTyp")))))),
 
9109
                                   (meta_loc _loc x0))),
 
9110
                                (meta_ident _loc x1))
8761
9111
                          | Ast.PaTyc (x0, x1, x2) ->
8762
9112
                              Ast.ExApp (_loc,
8763
 
                                Ast.ExApp (_loc,
8764
 
                                  Ast.ExApp (_loc,
8765
 
                                    Ast.ExId (_loc,
8766
 
                                      Ast.IdAcc (_loc,
8767
 
                                        Ast.IdUid (_loc, "Ast"),
8768
 
                                        Ast.IdUid (_loc, "PaTyc"))),
8769
 
                                    meta_loc _loc x0),
8770
 
                                  meta_patt _loc x1),
8771
 
                                meta_ctyp _loc x2)
 
9113
                                (Ast.ExApp (_loc,
 
9114
                                   (Ast.ExApp (_loc,
 
9115
                                      (Ast.ExId (_loc,
 
9116
                                         (Ast.IdAcc (_loc,
 
9117
                                            (Ast.IdUid (_loc, "Ast")),
 
9118
                                            (Ast.IdUid (_loc, "PaTyc")))))),
 
9119
                                      (meta_loc _loc x0))),
 
9120
                                   (meta_patt _loc x1))),
 
9121
                                (meta_ctyp _loc x2))
8772
9122
                          | Ast.PaTup (x0, x1) ->
8773
9123
                              Ast.ExApp (_loc,
8774
 
                                Ast.ExApp (_loc,
8775
 
                                  Ast.ExId (_loc,
8776
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8777
 
                                      Ast.IdUid (_loc, "PaTup"))),
8778
 
                                  meta_loc _loc x0),
8779
 
                                meta_patt _loc x1)
 
9124
                                (Ast.ExApp (_loc,
 
9125
                                   (Ast.ExId (_loc,
 
9126
                                      (Ast.IdAcc (_loc,
 
9127
                                         (Ast.IdUid (_loc, "Ast")),
 
9128
                                         (Ast.IdUid (_loc, "PaTup")))))),
 
9129
                                   (meta_loc _loc x0))),
 
9130
                                (meta_patt _loc x1))
8780
9131
                          | Ast.PaStr (x0, x1) ->
8781
9132
                              Ast.ExApp (_loc,
8782
 
                                Ast.ExApp (_loc,
8783
 
                                  Ast.ExId (_loc,
8784
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8785
 
                                      Ast.IdUid (_loc, "PaStr"))),
8786
 
                                  meta_loc _loc x0),
8787
 
                                meta_string _loc x1)
 
9133
                                (Ast.ExApp (_loc,
 
9134
                                   (Ast.ExId (_loc,
 
9135
                                      (Ast.IdAcc (_loc,
 
9136
                                         (Ast.IdUid (_loc, "Ast")),
 
9137
                                         (Ast.IdUid (_loc, "PaStr")))))),
 
9138
                                   (meta_loc _loc x0))),
 
9139
                                (meta_string _loc x1))
8788
9140
                          | Ast.PaEq (x0, x1, x2) ->
8789
9141
                              Ast.ExApp (_loc,
8790
 
                                Ast.ExApp (_loc,
8791
 
                                  Ast.ExApp (_loc,
8792
 
                                    Ast.ExId (_loc,
8793
 
                                      Ast.IdAcc (_loc,
8794
 
                                        Ast.IdUid (_loc, "Ast"),
8795
 
                                        Ast.IdUid (_loc, "PaEq"))),
8796
 
                                    meta_loc _loc x0),
8797
 
                                  meta_ident _loc x1),
8798
 
                                meta_patt _loc x2)
 
9142
                                (Ast.ExApp (_loc,
 
9143
                                   (Ast.ExApp (_loc,
 
9144
                                      (Ast.ExId (_loc,
 
9145
                                         (Ast.IdAcc (_loc,
 
9146
                                            (Ast.IdUid (_loc, "Ast")),
 
9147
                                            (Ast.IdUid (_loc, "PaEq")))))),
 
9148
                                      (meta_loc _loc x0))),
 
9149
                                   (meta_ident _loc x1))),
 
9150
                                (meta_patt _loc x2))
8799
9151
                          | Ast.PaRec (x0, x1) ->
8800
9152
                              Ast.ExApp (_loc,
8801
 
                                Ast.ExApp (_loc,
8802
 
                                  Ast.ExId (_loc,
8803
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8804
 
                                      Ast.IdUid (_loc, "PaRec"))),
8805
 
                                  meta_loc _loc x0),
8806
 
                                meta_patt _loc x1)
 
9153
                                (Ast.ExApp (_loc,
 
9154
                                   (Ast.ExId (_loc,
 
9155
                                      (Ast.IdAcc (_loc,
 
9156
                                         (Ast.IdUid (_loc, "Ast")),
 
9157
                                         (Ast.IdUid (_loc, "PaRec")))))),
 
9158
                                   (meta_loc _loc x0))),
 
9159
                                (meta_patt _loc x1))
8807
9160
                          | Ast.PaRng (x0, x1, x2) ->
8808
9161
                              Ast.ExApp (_loc,
8809
 
                                Ast.ExApp (_loc,
8810
 
                                  Ast.ExApp (_loc,
8811
 
                                    Ast.ExId (_loc,
8812
 
                                      Ast.IdAcc (_loc,
8813
 
                                        Ast.IdUid (_loc, "Ast"),
8814
 
                                        Ast.IdUid (_loc, "PaRng"))),
8815
 
                                    meta_loc _loc x0),
8816
 
                                  meta_patt _loc x1),
8817
 
                                meta_patt _loc x2)
 
9162
                                (Ast.ExApp (_loc,
 
9163
                                   (Ast.ExApp (_loc,
 
9164
                                      (Ast.ExId (_loc,
 
9165
                                         (Ast.IdAcc (_loc,
 
9166
                                            (Ast.IdUid (_loc, "Ast")),
 
9167
                                            (Ast.IdUid (_loc, "PaRng")))))),
 
9168
                                      (meta_loc _loc x0))),
 
9169
                                   (meta_patt _loc x1))),
 
9170
                                (meta_patt _loc x2))
8818
9171
                          | Ast.PaOrp (x0, x1, x2) ->
8819
9172
                              Ast.ExApp (_loc,
8820
 
                                Ast.ExApp (_loc,
8821
 
                                  Ast.ExApp (_loc,
8822
 
                                    Ast.ExId (_loc,
8823
 
                                      Ast.IdAcc (_loc,
8824
 
                                        Ast.IdUid (_loc, "Ast"),
8825
 
                                        Ast.IdUid (_loc, "PaOrp"))),
8826
 
                                    meta_loc _loc x0),
8827
 
                                  meta_patt _loc x1),
8828
 
                                meta_patt _loc x2)
 
9173
                                (Ast.ExApp (_loc,
 
9174
                                   (Ast.ExApp (_loc,
 
9175
                                      (Ast.ExId (_loc,
 
9176
                                         (Ast.IdAcc (_loc,
 
9177
                                            (Ast.IdUid (_loc, "Ast")),
 
9178
                                            (Ast.IdUid (_loc, "PaOrp")))))),
 
9179
                                      (meta_loc _loc x0))),
 
9180
                                   (meta_patt _loc x1))),
 
9181
                                (meta_patt _loc x2))
8829
9182
                          | Ast.PaOlbi (x0, x1, x2, x3) ->
8830
9183
                              Ast.ExApp (_loc,
8831
 
                                Ast.ExApp (_loc,
8832
 
                                  Ast.ExApp (_loc,
8833
 
                                    Ast.ExApp (_loc,
8834
 
                                      Ast.ExId (_loc,
8835
 
                                        Ast.IdAcc (_loc,
8836
 
                                          Ast.IdUid (_loc, "Ast"),
8837
 
                                          Ast.IdUid (_loc, "PaOlbi"))),
8838
 
                                      meta_loc _loc x0),
8839
 
                                    meta_string _loc x1),
8840
 
                                  meta_patt _loc x2),
8841
 
                                meta_expr _loc x3)
 
9184
                                (Ast.ExApp (_loc,
 
9185
                                   (Ast.ExApp (_loc,
 
9186
                                      (Ast.ExApp (_loc,
 
9187
                                         (Ast.ExId (_loc,
 
9188
                                            (Ast.IdAcc (_loc,
 
9189
                                               (Ast.IdUid (_loc, "Ast")),
 
9190
                                               (Ast.IdUid (_loc, "PaOlbi")))))),
 
9191
                                         (meta_loc _loc x0))),
 
9192
                                      (meta_string _loc x1))),
 
9193
                                   (meta_patt _loc x2))),
 
9194
                                (meta_expr _loc x3))
8842
9195
                          | Ast.PaOlb (x0, x1, x2) ->
8843
9196
                              Ast.ExApp (_loc,
8844
 
                                Ast.ExApp (_loc,
8845
 
                                  Ast.ExApp (_loc,
8846
 
                                    Ast.ExId (_loc,
8847
 
                                      Ast.IdAcc (_loc,
8848
 
                                        Ast.IdUid (_loc, "Ast"),
8849
 
                                        Ast.IdUid (_loc, "PaOlb"))),
8850
 
                                    meta_loc _loc x0),
8851
 
                                  meta_string _loc x1),
8852
 
                                meta_patt _loc x2)
 
9197
                                (Ast.ExApp (_loc,
 
9198
                                   (Ast.ExApp (_loc,
 
9199
                                      (Ast.ExId (_loc,
 
9200
                                         (Ast.IdAcc (_loc,
 
9201
                                            (Ast.IdUid (_loc, "Ast")),
 
9202
                                            (Ast.IdUid (_loc, "PaOlb")))))),
 
9203
                                      (meta_loc _loc x0))),
 
9204
                                   (meta_string _loc x1))),
 
9205
                                (meta_patt _loc x2))
8853
9206
                          | Ast.PaLab (x0, x1, x2) ->
8854
9207
                              Ast.ExApp (_loc,
8855
 
                                Ast.ExApp (_loc,
8856
 
                                  Ast.ExApp (_loc,
8857
 
                                    Ast.ExId (_loc,
8858
 
                                      Ast.IdAcc (_loc,
8859
 
                                        Ast.IdUid (_loc, "Ast"),
8860
 
                                        Ast.IdUid (_loc, "PaLab"))),
8861
 
                                    meta_loc _loc x0),
8862
 
                                  meta_string _loc x1),
8863
 
                                meta_patt _loc x2)
 
9208
                                (Ast.ExApp (_loc,
 
9209
                                   (Ast.ExApp (_loc,
 
9210
                                      (Ast.ExId (_loc,
 
9211
                                         (Ast.IdAcc (_loc,
 
9212
                                            (Ast.IdUid (_loc, "Ast")),
 
9213
                                            (Ast.IdUid (_loc, "PaLab")))))),
 
9214
                                      (meta_loc _loc x0))),
 
9215
                                   (meta_string _loc x1))),
 
9216
                                (meta_patt _loc x2))
8864
9217
                          | Ast.PaFlo (x0, x1) ->
8865
9218
                              Ast.ExApp (_loc,
8866
 
                                Ast.ExApp (_loc,
8867
 
                                  Ast.ExId (_loc,
8868
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8869
 
                                      Ast.IdUid (_loc, "PaFlo"))),
8870
 
                                  meta_loc _loc x0),
8871
 
                                meta_string _loc x1)
 
9219
                                (Ast.ExApp (_loc,
 
9220
                                   (Ast.ExId (_loc,
 
9221
                                      (Ast.IdAcc (_loc,
 
9222
                                         (Ast.IdUid (_loc, "Ast")),
 
9223
                                         (Ast.IdUid (_loc, "PaFlo")))))),
 
9224
                                   (meta_loc _loc x0))),
 
9225
                                (meta_string _loc x1))
8872
9226
                          | Ast.PaNativeInt (x0, x1) ->
8873
9227
                              Ast.ExApp (_loc,
8874
 
                                Ast.ExApp (_loc,
8875
 
                                  Ast.ExId (_loc,
8876
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8877
 
                                      Ast.IdUid (_loc, "PaNativeInt"))),
8878
 
                                  meta_loc _loc x0),
8879
 
                                meta_string _loc x1)
 
9228
                                (Ast.ExApp (_loc,
 
9229
                                   (Ast.ExId (_loc,
 
9230
                                      (Ast.IdAcc (_loc,
 
9231
                                         (Ast.IdUid (_loc, "Ast")),
 
9232
                                         (Ast.IdUid (_loc, "PaNativeInt")))))),
 
9233
                                   (meta_loc _loc x0))),
 
9234
                                (meta_string _loc x1))
8880
9235
                          | Ast.PaInt64 (x0, x1) ->
8881
9236
                              Ast.ExApp (_loc,
8882
 
                                Ast.ExApp (_loc,
8883
 
                                  Ast.ExId (_loc,
8884
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8885
 
                                      Ast.IdUid (_loc, "PaInt64"))),
8886
 
                                  meta_loc _loc x0),
8887
 
                                meta_string _loc x1)
 
9237
                                (Ast.ExApp (_loc,
 
9238
                                   (Ast.ExId (_loc,
 
9239
                                      (Ast.IdAcc (_loc,
 
9240
                                         (Ast.IdUid (_loc, "Ast")),
 
9241
                                         (Ast.IdUid (_loc, "PaInt64")))))),
 
9242
                                   (meta_loc _loc x0))),
 
9243
                                (meta_string _loc x1))
8888
9244
                          | Ast.PaInt32 (x0, x1) ->
8889
9245
                              Ast.ExApp (_loc,
8890
 
                                Ast.ExApp (_loc,
8891
 
                                  Ast.ExId (_loc,
8892
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8893
 
                                      Ast.IdUid (_loc, "PaInt32"))),
8894
 
                                  meta_loc _loc x0),
8895
 
                                meta_string _loc x1)
 
9246
                                (Ast.ExApp (_loc,
 
9247
                                   (Ast.ExId (_loc,
 
9248
                                      (Ast.IdAcc (_loc,
 
9249
                                         (Ast.IdUid (_loc, "Ast")),
 
9250
                                         (Ast.IdUid (_loc, "PaInt32")))))),
 
9251
                                   (meta_loc _loc x0))),
 
9252
                                (meta_string _loc x1))
8896
9253
                          | Ast.PaInt (x0, x1) ->
8897
9254
                              Ast.ExApp (_loc,
8898
 
                                Ast.ExApp (_loc,
8899
 
                                  Ast.ExId (_loc,
8900
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8901
 
                                      Ast.IdUid (_loc, "PaInt"))),
8902
 
                                  meta_loc _loc x0),
8903
 
                                meta_string _loc x1)
 
9255
                                (Ast.ExApp (_loc,
 
9256
                                   (Ast.ExId (_loc,
 
9257
                                      (Ast.IdAcc (_loc,
 
9258
                                         (Ast.IdUid (_loc, "Ast")),
 
9259
                                         (Ast.IdUid (_loc, "PaInt")))))),
 
9260
                                   (meta_loc _loc x0))),
 
9261
                                (meta_string _loc x1))
8904
9262
                          | Ast.PaChr (x0, x1) ->
8905
9263
                              Ast.ExApp (_loc,
8906
 
                                Ast.ExApp (_loc,
8907
 
                                  Ast.ExId (_loc,
8908
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8909
 
                                      Ast.IdUid (_loc, "PaChr"))),
8910
 
                                  meta_loc _loc x0),
8911
 
                                meta_string _loc x1)
 
9264
                                (Ast.ExApp (_loc,
 
9265
                                   (Ast.ExId (_loc,
 
9266
                                      (Ast.IdAcc (_loc,
 
9267
                                         (Ast.IdUid (_loc, "Ast")),
 
9268
                                         (Ast.IdUid (_loc, "PaChr")))))),
 
9269
                                   (meta_loc _loc x0))),
 
9270
                                (meta_string _loc x1))
8912
9271
                          | Ast.PaSem (x0, x1, x2) ->
8913
9272
                              Ast.ExApp (_loc,
8914
 
                                Ast.ExApp (_loc,
8915
 
                                  Ast.ExApp (_loc,
8916
 
                                    Ast.ExId (_loc,
8917
 
                                      Ast.IdAcc (_loc,
8918
 
                                        Ast.IdUid (_loc, "Ast"),
8919
 
                                        Ast.IdUid (_loc, "PaSem"))),
8920
 
                                    meta_loc _loc x0),
8921
 
                                  meta_patt _loc x1),
8922
 
                                meta_patt _loc x2)
 
9273
                                (Ast.ExApp (_loc,
 
9274
                                   (Ast.ExApp (_loc,
 
9275
                                      (Ast.ExId (_loc,
 
9276
                                         (Ast.IdAcc (_loc,
 
9277
                                            (Ast.IdUid (_loc, "Ast")),
 
9278
                                            (Ast.IdUid (_loc, "PaSem")))))),
 
9279
                                      (meta_loc _loc x0))),
 
9280
                                   (meta_patt _loc x1))),
 
9281
                                (meta_patt _loc x2))
8923
9282
                          | Ast.PaCom (x0, x1, x2) ->
8924
9283
                              Ast.ExApp (_loc,
8925
 
                                Ast.ExApp (_loc,
8926
 
                                  Ast.ExApp (_loc,
8927
 
                                    Ast.ExId (_loc,
8928
 
                                      Ast.IdAcc (_loc,
8929
 
                                        Ast.IdUid (_loc, "Ast"),
8930
 
                                        Ast.IdUid (_loc, "PaCom"))),
8931
 
                                    meta_loc _loc x0),
8932
 
                                  meta_patt _loc x1),
8933
 
                                meta_patt _loc x2)
 
9284
                                (Ast.ExApp (_loc,
 
9285
                                   (Ast.ExApp (_loc,
 
9286
                                      (Ast.ExId (_loc,
 
9287
                                         (Ast.IdAcc (_loc,
 
9288
                                            (Ast.IdUid (_loc, "Ast")),
 
9289
                                            (Ast.IdUid (_loc, "PaCom")))))),
 
9290
                                      (meta_loc _loc x0))),
 
9291
                                   (meta_patt _loc x1))),
 
9292
                                (meta_patt _loc x2))
8934
9293
                          | Ast.PaArr (x0, x1) ->
8935
9294
                              Ast.ExApp (_loc,
8936
 
                                Ast.ExApp (_loc,
8937
 
                                  Ast.ExId (_loc,
8938
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8939
 
                                      Ast.IdUid (_loc, "PaArr"))),
8940
 
                                  meta_loc _loc x0),
8941
 
                                meta_patt _loc x1)
 
9295
                                (Ast.ExApp (_loc,
 
9296
                                   (Ast.ExId (_loc,
 
9297
                                      (Ast.IdAcc (_loc,
 
9298
                                         (Ast.IdUid (_loc, "Ast")),
 
9299
                                         (Ast.IdUid (_loc, "PaArr")))))),
 
9300
                                   (meta_loc _loc x0))),
 
9301
                                (meta_patt _loc x1))
8942
9302
                          | Ast.PaApp (x0, x1, x2) ->
8943
9303
                              Ast.ExApp (_loc,
8944
 
                                Ast.ExApp (_loc,
8945
 
                                  Ast.ExApp (_loc,
8946
 
                                    Ast.ExId (_loc,
8947
 
                                      Ast.IdAcc (_loc,
8948
 
                                        Ast.IdUid (_loc, "Ast"),
8949
 
                                        Ast.IdUid (_loc, "PaApp"))),
8950
 
                                    meta_loc _loc x0),
8951
 
                                  meta_patt _loc x1),
8952
 
                                meta_patt _loc x2)
 
9304
                                (Ast.ExApp (_loc,
 
9305
                                   (Ast.ExApp (_loc,
 
9306
                                      (Ast.ExId (_loc,
 
9307
                                         (Ast.IdAcc (_loc,
 
9308
                                            (Ast.IdUid (_loc, "Ast")),
 
9309
                                            (Ast.IdUid (_loc, "PaApp")))))),
 
9310
                                      (meta_loc _loc x0))),
 
9311
                                   (meta_patt _loc x1))),
 
9312
                                (meta_patt _loc x2))
8953
9313
                          | Ast.PaAny x0 ->
8954
9314
                              Ast.ExApp (_loc,
8955
 
                                Ast.ExId (_loc,
8956
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8957
 
                                    Ast.IdUid (_loc, "PaAny"))),
8958
 
                                meta_loc _loc x0)
 
9315
                                (Ast.ExId (_loc,
 
9316
                                   (Ast.IdAcc (_loc,
 
9317
                                      (Ast.IdUid (_loc, "Ast")),
 
9318
                                      (Ast.IdUid (_loc, "PaAny")))))),
 
9319
                                (meta_loc _loc x0))
8959
9320
                          | Ast.PaAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8960
9321
                          | Ast.PaAli (x0, x1, x2) ->
8961
9322
                              Ast.ExApp (_loc,
8962
 
                                Ast.ExApp (_loc,
8963
 
                                  Ast.ExApp (_loc,
8964
 
                                    Ast.ExId (_loc,
8965
 
                                      Ast.IdAcc (_loc,
8966
 
                                        Ast.IdUid (_loc, "Ast"),
8967
 
                                        Ast.IdUid (_loc, "PaAli"))),
8968
 
                                    meta_loc _loc x0),
8969
 
                                  meta_patt _loc x1),
8970
 
                                meta_patt _loc x2)
 
9323
                                (Ast.ExApp (_loc,
 
9324
                                   (Ast.ExApp (_loc,
 
9325
                                      (Ast.ExId (_loc,
 
9326
                                         (Ast.IdAcc (_loc,
 
9327
                                            (Ast.IdUid (_loc, "Ast")),
 
9328
                                            (Ast.IdUid (_loc, "PaAli")))))),
 
9329
                                      (meta_loc _loc x0))),
 
9330
                                   (meta_patt _loc x1))),
 
9331
                                (meta_patt _loc x2))
8971
9332
                          | Ast.PaId (x0, x1) ->
8972
9333
                              Ast.ExApp (_loc,
8973
 
                                Ast.ExApp (_loc,
8974
 
                                  Ast.ExId (_loc,
8975
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8976
 
                                      Ast.IdUid (_loc, "PaId"))),
8977
 
                                  meta_loc _loc x0),
8978
 
                                meta_ident _loc x1)
 
9334
                                (Ast.ExApp (_loc,
 
9335
                                   (Ast.ExId (_loc,
 
9336
                                      (Ast.IdAcc (_loc,
 
9337
                                         (Ast.IdUid (_loc, "Ast")),
 
9338
                                         (Ast.IdUid (_loc, "PaId")))))),
 
9339
                                   (meta_loc _loc x0))),
 
9340
                                (meta_ident _loc x1))
8979
9341
                          | Ast.PaNil x0 ->
8980
9342
                              Ast.ExApp (_loc,
8981
 
                                Ast.ExId (_loc,
8982
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
8983
 
                                    Ast.IdUid (_loc, "PaNil"))),
8984
 
                                meta_loc _loc x0)
 
9343
                                (Ast.ExId (_loc,
 
9344
                                   (Ast.IdAcc (_loc,
 
9345
                                      (Ast.IdUid (_loc, "Ast")),
 
9346
                                      (Ast.IdUid (_loc, "PaNil")))))),
 
9347
                                (meta_loc _loc x0))
 
9348
                        and meta_private_flag _loc =
 
9349
                          function
 
9350
                          | Ast.PrAnt x0 -> Ast.ExAnt (_loc, x0)
 
9351
                          | Ast.PrNil ->
 
9352
                              Ast.ExId (_loc,
 
9353
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9354
                                   (Ast.IdUid (_loc, "PrNil")))))
 
9355
                          | Ast.PrPrivate ->
 
9356
                              Ast.ExId (_loc,
 
9357
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9358
                                   (Ast.IdUid (_loc, "PrPrivate")))))
8985
9359
                        and meta_rec_binding _loc =
8986
9360
                          function
8987
9361
                          | Ast.RbAnt (x0, x1) -> Ast.ExAnt (x0, x1)
8988
9362
                          | Ast.RbEq (x0, x1, x2) ->
8989
9363
                              Ast.ExApp (_loc,
8990
 
                                Ast.ExApp (_loc,
8991
 
                                  Ast.ExApp (_loc,
8992
 
                                    Ast.ExId (_loc,
8993
 
                                      Ast.IdAcc (_loc,
8994
 
                                        Ast.IdUid (_loc, "Ast"),
8995
 
                                        Ast.IdUid (_loc, "RbEq"))),
8996
 
                                    meta_loc _loc x0),
8997
 
                                  meta_ident _loc x1),
8998
 
                                meta_expr _loc x2)
 
9364
                                (Ast.ExApp (_loc,
 
9365
                                   (Ast.ExApp (_loc,
 
9366
                                      (Ast.ExId (_loc,
 
9367
                                         (Ast.IdAcc (_loc,
 
9368
                                            (Ast.IdUid (_loc, "Ast")),
 
9369
                                            (Ast.IdUid (_loc, "RbEq")))))),
 
9370
                                      (meta_loc _loc x0))),
 
9371
                                   (meta_ident _loc x1))),
 
9372
                                (meta_expr _loc x2))
8999
9373
                          | Ast.RbSem (x0, x1, x2) ->
9000
9374
                              Ast.ExApp (_loc,
9001
 
                                Ast.ExApp (_loc,
9002
 
                                  Ast.ExApp (_loc,
9003
 
                                    Ast.ExId (_loc,
9004
 
                                      Ast.IdAcc (_loc,
9005
 
                                        Ast.IdUid (_loc, "Ast"),
9006
 
                                        Ast.IdUid (_loc, "RbSem"))),
9007
 
                                    meta_loc _loc x0),
9008
 
                                  meta_rec_binding _loc x1),
9009
 
                                meta_rec_binding _loc x2)
 
9375
                                (Ast.ExApp (_loc,
 
9376
                                   (Ast.ExApp (_loc,
 
9377
                                      (Ast.ExId (_loc,
 
9378
                                         (Ast.IdAcc (_loc,
 
9379
                                            (Ast.IdUid (_loc, "Ast")),
 
9380
                                            (Ast.IdUid (_loc, "RbSem")))))),
 
9381
                                      (meta_loc _loc x0))),
 
9382
                                   (meta_rec_binding _loc x1))),
 
9383
                                (meta_rec_binding _loc x2))
9010
9384
                          | Ast.RbNil x0 ->
9011
9385
                              Ast.ExApp (_loc,
9012
 
                                Ast.ExId (_loc,
9013
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9014
 
                                    Ast.IdUid (_loc, "RbNil"))),
9015
 
                                meta_loc _loc x0)
 
9386
                                (Ast.ExId (_loc,
 
9387
                                   (Ast.IdAcc (_loc,
 
9388
                                      (Ast.IdUid (_loc, "Ast")),
 
9389
                                      (Ast.IdUid (_loc, "RbNil")))))),
 
9390
                                (meta_loc _loc x0))
 
9391
                        and meta_rec_flag _loc =
 
9392
                          function
 
9393
                          | Ast.ReAnt x0 -> Ast.ExAnt (_loc, x0)
 
9394
                          | Ast.ReNil ->
 
9395
                              Ast.ExId (_loc,
 
9396
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9397
                                   (Ast.IdUid (_loc, "ReNil")))))
 
9398
                          | Ast.ReRecursive ->
 
9399
                              Ast.ExId (_loc,
 
9400
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9401
                                   (Ast.IdUid (_loc, "ReRecursive")))))
 
9402
                        and meta_row_var_flag _loc =
 
9403
                          function
 
9404
                          | Ast.RvAnt x0 -> Ast.ExAnt (_loc, x0)
 
9405
                          | Ast.RvNil ->
 
9406
                              Ast.ExId (_loc,
 
9407
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9408
                                   (Ast.IdUid (_loc, "RvNil")))))
 
9409
                          | Ast.RvRowVar ->
 
9410
                              Ast.ExId (_loc,
 
9411
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9412
                                   (Ast.IdUid (_loc, "RvRowVar")))))
9016
9413
                        and meta_sig_item _loc =
9017
9414
                          function
9018
9415
                          | Ast.SgAnt (x0, x1) -> Ast.ExAnt (x0, x1)
9019
9416
                          | Ast.SgVal (x0, x1, x2) ->
9020
9417
                              Ast.ExApp (_loc,
9021
 
                                Ast.ExApp (_loc,
9022
 
                                  Ast.ExApp (_loc,
9023
 
                                    Ast.ExId (_loc,
9024
 
                                      Ast.IdAcc (_loc,
9025
 
                                        Ast.IdUid (_loc, "Ast"),
9026
 
                                        Ast.IdUid (_loc, "SgVal"))),
9027
 
                                    meta_loc _loc x0),
9028
 
                                  meta_string _loc x1),
9029
 
                                meta_ctyp _loc x2)
 
9418
                                (Ast.ExApp (_loc,
 
9419
                                   (Ast.ExApp (_loc,
 
9420
                                      (Ast.ExId (_loc,
 
9421
                                         (Ast.IdAcc (_loc,
 
9422
                                            (Ast.IdUid (_loc, "Ast")),
 
9423
                                            (Ast.IdUid (_loc, "SgVal")))))),
 
9424
                                      (meta_loc _loc x0))),
 
9425
                                   (meta_string _loc x1))),
 
9426
                                (meta_ctyp _loc x2))
9030
9427
                          | Ast.SgTyp (x0, x1) ->
9031
9428
                              Ast.ExApp (_loc,
9032
 
                                Ast.ExApp (_loc,
9033
 
                                  Ast.ExId (_loc,
9034
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9035
 
                                      Ast.IdUid (_loc, "SgTyp"))),
9036
 
                                  meta_loc _loc x0),
9037
 
                                meta_ctyp _loc x1)
 
9429
                                (Ast.ExApp (_loc,
 
9430
                                   (Ast.ExId (_loc,
 
9431
                                      (Ast.IdAcc (_loc,
 
9432
                                         (Ast.IdUid (_loc, "Ast")),
 
9433
                                         (Ast.IdUid (_loc, "SgTyp")))))),
 
9434
                                   (meta_loc _loc x0))),
 
9435
                                (meta_ctyp _loc x1))
9038
9436
                          | Ast.SgOpn (x0, x1) ->
9039
9437
                              Ast.ExApp (_loc,
9040
 
                                Ast.ExApp (_loc,
9041
 
                                  Ast.ExId (_loc,
9042
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9043
 
                                      Ast.IdUid (_loc, "SgOpn"))),
9044
 
                                  meta_loc _loc x0),
9045
 
                                meta_ident _loc x1)
 
9438
                                (Ast.ExApp (_loc,
 
9439
                                   (Ast.ExId (_loc,
 
9440
                                      (Ast.IdAcc (_loc,
 
9441
                                         (Ast.IdUid (_loc, "Ast")),
 
9442
                                         (Ast.IdUid (_loc, "SgOpn")))))),
 
9443
                                   (meta_loc _loc x0))),
 
9444
                                (meta_ident _loc x1))
9046
9445
                          | Ast.SgMty (x0, x1, x2) ->
9047
9446
                              Ast.ExApp (_loc,
9048
 
                                Ast.ExApp (_loc,
9049
 
                                  Ast.ExApp (_loc,
9050
 
                                    Ast.ExId (_loc,
9051
 
                                      Ast.IdAcc (_loc,
9052
 
                                        Ast.IdUid (_loc, "Ast"),
9053
 
                                        Ast.IdUid (_loc, "SgMty"))),
9054
 
                                    meta_loc _loc x0),
9055
 
                                  meta_string _loc x1),
9056
 
                                meta_module_type _loc x2)
 
9447
                                (Ast.ExApp (_loc,
 
9448
                                   (Ast.ExApp (_loc,
 
9449
                                      (Ast.ExId (_loc,
 
9450
                                         (Ast.IdAcc (_loc,
 
9451
                                            (Ast.IdUid (_loc, "Ast")),
 
9452
                                            (Ast.IdUid (_loc, "SgMty")))))),
 
9453
                                      (meta_loc _loc x0))),
 
9454
                                   (meta_string _loc x1))),
 
9455
                                (meta_module_type _loc x2))
9057
9456
                          | Ast.SgRecMod (x0, x1) ->
9058
9457
                              Ast.ExApp (_loc,
9059
 
                                Ast.ExApp (_loc,
9060
 
                                  Ast.ExId (_loc,
9061
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9062
 
                                      Ast.IdUid (_loc, "SgRecMod"))),
9063
 
                                  meta_loc _loc x0),
9064
 
                                meta_module_binding _loc x1)
 
9458
                                (Ast.ExApp (_loc,
 
9459
                                   (Ast.ExId (_loc,
 
9460
                                      (Ast.IdAcc (_loc,
 
9461
                                         (Ast.IdUid (_loc, "Ast")),
 
9462
                                         (Ast.IdUid (_loc, "SgRecMod")))))),
 
9463
                                   (meta_loc _loc x0))),
 
9464
                                (meta_module_binding _loc x1))
9065
9465
                          | Ast.SgMod (x0, x1, x2) ->
9066
9466
                              Ast.ExApp (_loc,
9067
 
                                Ast.ExApp (_loc,
9068
 
                                  Ast.ExApp (_loc,
9069
 
                                    Ast.ExId (_loc,
9070
 
                                      Ast.IdAcc (_loc,
9071
 
                                        Ast.IdUid (_loc, "Ast"),
9072
 
                                        Ast.IdUid (_loc, "SgMod"))),
9073
 
                                    meta_loc _loc x0),
9074
 
                                  meta_string _loc x1),
9075
 
                                meta_module_type _loc x2)
 
9467
                                (Ast.ExApp (_loc,
 
9468
                                   (Ast.ExApp (_loc,
 
9469
                                      (Ast.ExId (_loc,
 
9470
                                         (Ast.IdAcc (_loc,
 
9471
                                            (Ast.IdUid (_loc, "Ast")),
 
9472
                                            (Ast.IdUid (_loc, "SgMod")))))),
 
9473
                                      (meta_loc _loc x0))),
 
9474
                                   (meta_string _loc x1))),
 
9475
                                (meta_module_type _loc x2))
9076
9476
                          | Ast.SgInc (x0, x1) ->
9077
9477
                              Ast.ExApp (_loc,
9078
 
                                Ast.ExApp (_loc,
9079
 
                                  Ast.ExId (_loc,
9080
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9081
 
                                      Ast.IdUid (_loc, "SgInc"))),
9082
 
                                  meta_loc _loc x0),
9083
 
                                meta_module_type _loc x1)
 
9478
                                (Ast.ExApp (_loc,
 
9479
                                   (Ast.ExId (_loc,
 
9480
                                      (Ast.IdAcc (_loc,
 
9481
                                         (Ast.IdUid (_loc, "Ast")),
 
9482
                                         (Ast.IdUid (_loc, "SgInc")))))),
 
9483
                                   (meta_loc _loc x0))),
 
9484
                                (meta_module_type _loc x1))
9084
9485
                          | Ast.SgExt (x0, x1, x2, x3) ->
9085
9486
                              Ast.ExApp (_loc,
9086
 
                                Ast.ExApp (_loc,
9087
 
                                  Ast.ExApp (_loc,
9088
 
                                    Ast.ExApp (_loc,
9089
 
                                      Ast.ExId (_loc,
9090
 
                                        Ast.IdAcc (_loc,
9091
 
                                          Ast.IdUid (_loc, "Ast"),
9092
 
                                          Ast.IdUid (_loc, "SgExt"))),
9093
 
                                      meta_loc _loc x0),
9094
 
                                    meta_string _loc x1),
9095
 
                                  meta_ctyp _loc x2),
9096
 
                                meta_meta_list meta_string _loc x3)
 
9487
                                (Ast.ExApp (_loc,
 
9488
                                   (Ast.ExApp (_loc,
 
9489
                                      (Ast.ExApp (_loc,
 
9490
                                         (Ast.ExId (_loc,
 
9491
                                            (Ast.IdAcc (_loc,
 
9492
                                               (Ast.IdUid (_loc, "Ast")),
 
9493
                                               (Ast.IdUid (_loc, "SgExt")))))),
 
9494
                                         (meta_loc _loc x0))),
 
9495
                                      (meta_string _loc x1))),
 
9496
                                   (meta_ctyp _loc x2))),
 
9497
                                (meta_meta_list meta_string _loc x3))
9097
9498
                          | Ast.SgExc (x0, x1) ->
9098
9499
                              Ast.ExApp (_loc,
9099
 
                                Ast.ExApp (_loc,
9100
 
                                  Ast.ExId (_loc,
9101
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9102
 
                                      Ast.IdUid (_loc, "SgExc"))),
9103
 
                                  meta_loc _loc x0),
9104
 
                                meta_ctyp _loc x1)
 
9500
                                (Ast.ExApp (_loc,
 
9501
                                   (Ast.ExId (_loc,
 
9502
                                      (Ast.IdAcc (_loc,
 
9503
                                         (Ast.IdUid (_loc, "Ast")),
 
9504
                                         (Ast.IdUid (_loc, "SgExc")))))),
 
9505
                                   (meta_loc _loc x0))),
 
9506
                                (meta_ctyp _loc x1))
9105
9507
                          | Ast.SgDir (x0, x1, x2) ->
9106
9508
                              Ast.ExApp (_loc,
9107
 
                                Ast.ExApp (_loc,
9108
 
                                  Ast.ExApp (_loc,
9109
 
                                    Ast.ExId (_loc,
9110
 
                                      Ast.IdAcc (_loc,
9111
 
                                        Ast.IdUid (_loc, "Ast"),
9112
 
                                        Ast.IdUid (_loc, "SgDir"))),
9113
 
                                    meta_loc _loc x0),
9114
 
                                  meta_string _loc x1),
9115
 
                                meta_expr _loc x2)
 
9509
                                (Ast.ExApp (_loc,
 
9510
                                   (Ast.ExApp (_loc,
 
9511
                                      (Ast.ExId (_loc,
 
9512
                                         (Ast.IdAcc (_loc,
 
9513
                                            (Ast.IdUid (_loc, "Ast")),
 
9514
                                            (Ast.IdUid (_loc, "SgDir")))))),
 
9515
                                      (meta_loc _loc x0))),
 
9516
                                   (meta_string _loc x1))),
 
9517
                                (meta_expr _loc x2))
9116
9518
                          | Ast.SgSem (x0, x1, x2) ->
9117
9519
                              Ast.ExApp (_loc,
9118
 
                                Ast.ExApp (_loc,
9119
 
                                  Ast.ExApp (_loc,
9120
 
                                    Ast.ExId (_loc,
9121
 
                                      Ast.IdAcc (_loc,
9122
 
                                        Ast.IdUid (_loc, "Ast"),
9123
 
                                        Ast.IdUid (_loc, "SgSem"))),
9124
 
                                    meta_loc _loc x0),
9125
 
                                  meta_sig_item _loc x1),
9126
 
                                meta_sig_item _loc x2)
 
9520
                                (Ast.ExApp (_loc,
 
9521
                                   (Ast.ExApp (_loc,
 
9522
                                      (Ast.ExId (_loc,
 
9523
                                         (Ast.IdAcc (_loc,
 
9524
                                            (Ast.IdUid (_loc, "Ast")),
 
9525
                                            (Ast.IdUid (_loc, "SgSem")))))),
 
9526
                                      (meta_loc _loc x0))),
 
9527
                                   (meta_sig_item _loc x1))),
 
9528
                                (meta_sig_item _loc x2))
9127
9529
                          | Ast.SgClt (x0, x1) ->
9128
9530
                              Ast.ExApp (_loc,
9129
 
                                Ast.ExApp (_loc,
9130
 
                                  Ast.ExId (_loc,
9131
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9132
 
                                      Ast.IdUid (_loc, "SgClt"))),
9133
 
                                  meta_loc _loc x0),
9134
 
                                meta_class_type _loc x1)
 
9531
                                (Ast.ExApp (_loc,
 
9532
                                   (Ast.ExId (_loc,
 
9533
                                      (Ast.IdAcc (_loc,
 
9534
                                         (Ast.IdUid (_loc, "Ast")),
 
9535
                                         (Ast.IdUid (_loc, "SgClt")))))),
 
9536
                                   (meta_loc _loc x0))),
 
9537
                                (meta_class_type _loc x1))
9135
9538
                          | Ast.SgCls (x0, x1) ->
9136
9539
                              Ast.ExApp (_loc,
9137
 
                                Ast.ExApp (_loc,
9138
 
                                  Ast.ExId (_loc,
9139
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9140
 
                                      Ast.IdUid (_loc, "SgCls"))),
9141
 
                                  meta_loc _loc x0),
9142
 
                                meta_class_type _loc x1)
 
9540
                                (Ast.ExApp (_loc,
 
9541
                                   (Ast.ExId (_loc,
 
9542
                                      (Ast.IdAcc (_loc,
 
9543
                                         (Ast.IdUid (_loc, "Ast")),
 
9544
                                         (Ast.IdUid (_loc, "SgCls")))))),
 
9545
                                   (meta_loc _loc x0))),
 
9546
                                (meta_class_type _loc x1))
9143
9547
                          | Ast.SgNil x0 ->
9144
9548
                              Ast.ExApp (_loc,
9145
 
                                Ast.ExId (_loc,
9146
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9147
 
                                    Ast.IdUid (_loc, "SgNil"))),
9148
 
                                meta_loc _loc x0)
 
9549
                                (Ast.ExId (_loc,
 
9550
                                   (Ast.IdAcc (_loc,
 
9551
                                      (Ast.IdUid (_loc, "Ast")),
 
9552
                                      (Ast.IdUid (_loc, "SgNil")))))),
 
9553
                                (meta_loc _loc x0))
9149
9554
                        and meta_str_item _loc =
9150
9555
                          function
9151
9556
                          | Ast.StAnt (x0, x1) -> Ast.ExAnt (x0, x1)
9152
9557
                          | Ast.StVal (x0, x1, x2) ->
9153
9558
                              Ast.ExApp (_loc,
9154
 
                                Ast.ExApp (_loc,
9155
 
                                  Ast.ExApp (_loc,
9156
 
                                    Ast.ExId (_loc,
9157
 
                                      Ast.IdAcc (_loc,
9158
 
                                        Ast.IdUid (_loc, "Ast"),
9159
 
                                        Ast.IdUid (_loc, "StVal"))),
9160
 
                                    meta_loc _loc x0),
9161
 
                                  meta_meta_bool _loc x1),
9162
 
                                meta_binding _loc x2)
 
9559
                                (Ast.ExApp (_loc,
 
9560
                                   (Ast.ExApp (_loc,
 
9561
                                      (Ast.ExId (_loc,
 
9562
                                         (Ast.IdAcc (_loc,
 
9563
                                            (Ast.IdUid (_loc, "Ast")),
 
9564
                                            (Ast.IdUid (_loc, "StVal")))))),
 
9565
                                      (meta_loc _loc x0))),
 
9566
                                   (meta_rec_flag _loc x1))),
 
9567
                                (meta_binding _loc x2))
9163
9568
                          | Ast.StTyp (x0, x1) ->
9164
9569
                              Ast.ExApp (_loc,
9165
 
                                Ast.ExApp (_loc,
9166
 
                                  Ast.ExId (_loc,
9167
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9168
 
                                      Ast.IdUid (_loc, "StTyp"))),
9169
 
                                  meta_loc _loc x0),
9170
 
                                meta_ctyp _loc x1)
 
9570
                                (Ast.ExApp (_loc,
 
9571
                                   (Ast.ExId (_loc,
 
9572
                                      (Ast.IdAcc (_loc,
 
9573
                                         (Ast.IdUid (_loc, "Ast")),
 
9574
                                         (Ast.IdUid (_loc, "StTyp")))))),
 
9575
                                   (meta_loc _loc x0))),
 
9576
                                (meta_ctyp _loc x1))
9171
9577
                          | Ast.StOpn (x0, x1) ->
9172
9578
                              Ast.ExApp (_loc,
9173
 
                                Ast.ExApp (_loc,
9174
 
                                  Ast.ExId (_loc,
9175
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9176
 
                                      Ast.IdUid (_loc, "StOpn"))),
9177
 
                                  meta_loc _loc x0),
9178
 
                                meta_ident _loc x1)
 
9579
                                (Ast.ExApp (_loc,
 
9580
                                   (Ast.ExId (_loc,
 
9581
                                      (Ast.IdAcc (_loc,
 
9582
                                         (Ast.IdUid (_loc, "Ast")),
 
9583
                                         (Ast.IdUid (_loc, "StOpn")))))),
 
9584
                                   (meta_loc _loc x0))),
 
9585
                                (meta_ident _loc x1))
9179
9586
                          | Ast.StMty (x0, x1, x2) ->
9180
9587
                              Ast.ExApp (_loc,
9181
 
                                Ast.ExApp (_loc,
9182
 
                                  Ast.ExApp (_loc,
9183
 
                                    Ast.ExId (_loc,
9184
 
                                      Ast.IdAcc (_loc,
9185
 
                                        Ast.IdUid (_loc, "Ast"),
9186
 
                                        Ast.IdUid (_loc, "StMty"))),
9187
 
                                    meta_loc _loc x0),
9188
 
                                  meta_string _loc x1),
9189
 
                                meta_module_type _loc x2)
 
9588
                                (Ast.ExApp (_loc,
 
9589
                                   (Ast.ExApp (_loc,
 
9590
                                      (Ast.ExId (_loc,
 
9591
                                         (Ast.IdAcc (_loc,
 
9592
                                            (Ast.IdUid (_loc, "Ast")),
 
9593
                                            (Ast.IdUid (_loc, "StMty")))))),
 
9594
                                      (meta_loc _loc x0))),
 
9595
                                   (meta_string _loc x1))),
 
9596
                                (meta_module_type _loc x2))
9190
9597
                          | Ast.StRecMod (x0, x1) ->
9191
9598
                              Ast.ExApp (_loc,
9192
 
                                Ast.ExApp (_loc,
9193
 
                                  Ast.ExId (_loc,
9194
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9195
 
                                      Ast.IdUid (_loc, "StRecMod"))),
9196
 
                                  meta_loc _loc x0),
9197
 
                                meta_module_binding _loc x1)
 
9599
                                (Ast.ExApp (_loc,
 
9600
                                   (Ast.ExId (_loc,
 
9601
                                      (Ast.IdAcc (_loc,
 
9602
                                         (Ast.IdUid (_loc, "Ast")),
 
9603
                                         (Ast.IdUid (_loc, "StRecMod")))))),
 
9604
                                   (meta_loc _loc x0))),
 
9605
                                (meta_module_binding _loc x1))
9198
9606
                          | Ast.StMod (x0, x1, x2) ->
9199
9607
                              Ast.ExApp (_loc,
9200
 
                                Ast.ExApp (_loc,
9201
 
                                  Ast.ExApp (_loc,
9202
 
                                    Ast.ExId (_loc,
9203
 
                                      Ast.IdAcc (_loc,
9204
 
                                        Ast.IdUid (_loc, "Ast"),
9205
 
                                        Ast.IdUid (_loc, "StMod"))),
9206
 
                                    meta_loc _loc x0),
9207
 
                                  meta_string _loc x1),
9208
 
                                meta_module_expr _loc x2)
 
9608
                                (Ast.ExApp (_loc,
 
9609
                                   (Ast.ExApp (_loc,
 
9610
                                      (Ast.ExId (_loc,
 
9611
                                         (Ast.IdAcc (_loc,
 
9612
                                            (Ast.IdUid (_loc, "Ast")),
 
9613
                                            (Ast.IdUid (_loc, "StMod")))))),
 
9614
                                      (meta_loc _loc x0))),
 
9615
                                   (meta_string _loc x1))),
 
9616
                                (meta_module_expr _loc x2))
9209
9617
                          | Ast.StInc (x0, x1) ->
9210
9618
                              Ast.ExApp (_loc,
9211
 
                                Ast.ExApp (_loc,
9212
 
                                  Ast.ExId (_loc,
9213
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9214
 
                                      Ast.IdUid (_loc, "StInc"))),
9215
 
                                  meta_loc _loc x0),
9216
 
                                meta_module_expr _loc x1)
 
9619
                                (Ast.ExApp (_loc,
 
9620
                                   (Ast.ExId (_loc,
 
9621
                                      (Ast.IdAcc (_loc,
 
9622
                                         (Ast.IdUid (_loc, "Ast")),
 
9623
                                         (Ast.IdUid (_loc, "StInc")))))),
 
9624
                                   (meta_loc _loc x0))),
 
9625
                                (meta_module_expr _loc x1))
9217
9626
                          | Ast.StExt (x0, x1, x2, x3) ->
9218
9627
                              Ast.ExApp (_loc,
9219
 
                                Ast.ExApp (_loc,
9220
 
                                  Ast.ExApp (_loc,
9221
 
                                    Ast.ExApp (_loc,
9222
 
                                      Ast.ExId (_loc,
9223
 
                                        Ast.IdAcc (_loc,
9224
 
                                          Ast.IdUid (_loc, "Ast"),
9225
 
                                          Ast.IdUid (_loc, "StExt"))),
9226
 
                                      meta_loc _loc x0),
9227
 
                                    meta_string _loc x1),
9228
 
                                  meta_ctyp _loc x2),
9229
 
                                meta_meta_list meta_string _loc x3)
 
9628
                                (Ast.ExApp (_loc,
 
9629
                                   (Ast.ExApp (_loc,
 
9630
                                      (Ast.ExApp (_loc,
 
9631
                                         (Ast.ExId (_loc,
 
9632
                                            (Ast.IdAcc (_loc,
 
9633
                                               (Ast.IdUid (_loc, "Ast")),
 
9634
                                               (Ast.IdUid (_loc, "StExt")))))),
 
9635
                                         (meta_loc _loc x0))),
 
9636
                                      (meta_string _loc x1))),
 
9637
                                   (meta_ctyp _loc x2))),
 
9638
                                (meta_meta_list meta_string _loc x3))
9230
9639
                          | Ast.StExp (x0, x1) ->
9231
9640
                              Ast.ExApp (_loc,
9232
 
                                Ast.ExApp (_loc,
9233
 
                                  Ast.ExId (_loc,
9234
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9235
 
                                      Ast.IdUid (_loc, "StExp"))),
9236
 
                                  meta_loc _loc x0),
9237
 
                                meta_expr _loc x1)
 
9641
                                (Ast.ExApp (_loc,
 
9642
                                   (Ast.ExId (_loc,
 
9643
                                      (Ast.IdAcc (_loc,
 
9644
                                         (Ast.IdUid (_loc, "Ast")),
 
9645
                                         (Ast.IdUid (_loc, "StExp")))))),
 
9646
                                   (meta_loc _loc x0))),
 
9647
                                (meta_expr _loc x1))
9238
9648
                          | Ast.StExc (x0, x1, x2) ->
9239
9649
                              Ast.ExApp (_loc,
9240
 
                                Ast.ExApp (_loc,
9241
 
                                  Ast.ExApp (_loc,
9242
 
                                    Ast.ExId (_loc,
9243
 
                                      Ast.IdAcc (_loc,
9244
 
                                        Ast.IdUid (_loc, "Ast"),
9245
 
                                        Ast.IdUid (_loc, "StExc"))),
9246
 
                                    meta_loc _loc x0),
9247
 
                                  meta_ctyp _loc x1),
9248
 
                                meta_meta_option meta_ident _loc x2)
 
9650
                                (Ast.ExApp (_loc,
 
9651
                                   (Ast.ExApp (_loc,
 
9652
                                      (Ast.ExId (_loc,
 
9653
                                         (Ast.IdAcc (_loc,
 
9654
                                            (Ast.IdUid (_loc, "Ast")),
 
9655
                                            (Ast.IdUid (_loc, "StExc")))))),
 
9656
                                      (meta_loc _loc x0))),
 
9657
                                   (meta_ctyp _loc x1))),
 
9658
                                (meta_meta_option meta_ident _loc x2))
9249
9659
                          | Ast.StDir (x0, x1, x2) ->
9250
9660
                              Ast.ExApp (_loc,
9251
 
                                Ast.ExApp (_loc,
9252
 
                                  Ast.ExApp (_loc,
9253
 
                                    Ast.ExId (_loc,
9254
 
                                      Ast.IdAcc (_loc,
9255
 
                                        Ast.IdUid (_loc, "Ast"),
9256
 
                                        Ast.IdUid (_loc, "StDir"))),
9257
 
                                    meta_loc _loc x0),
9258
 
                                  meta_string _loc x1),
9259
 
                                meta_expr _loc x2)
 
9661
                                (Ast.ExApp (_loc,
 
9662
                                   (Ast.ExApp (_loc,
 
9663
                                      (Ast.ExId (_loc,
 
9664
                                         (Ast.IdAcc (_loc,
 
9665
                                            (Ast.IdUid (_loc, "Ast")),
 
9666
                                            (Ast.IdUid (_loc, "StDir")))))),
 
9667
                                      (meta_loc _loc x0))),
 
9668
                                   (meta_string _loc x1))),
 
9669
                                (meta_expr _loc x2))
9260
9670
                          | Ast.StSem (x0, x1, x2) ->
9261
9671
                              Ast.ExApp (_loc,
9262
 
                                Ast.ExApp (_loc,
9263
 
                                  Ast.ExApp (_loc,
9264
 
                                    Ast.ExId (_loc,
9265
 
                                      Ast.IdAcc (_loc,
9266
 
                                        Ast.IdUid (_loc, "Ast"),
9267
 
                                        Ast.IdUid (_loc, "StSem"))),
9268
 
                                    meta_loc _loc x0),
9269
 
                                  meta_str_item _loc x1),
9270
 
                                meta_str_item _loc x2)
 
9672
                                (Ast.ExApp (_loc,
 
9673
                                   (Ast.ExApp (_loc,
 
9674
                                      (Ast.ExId (_loc,
 
9675
                                         (Ast.IdAcc (_loc,
 
9676
                                            (Ast.IdUid (_loc, "Ast")),
 
9677
                                            (Ast.IdUid (_loc, "StSem")))))),
 
9678
                                      (meta_loc _loc x0))),
 
9679
                                   (meta_str_item _loc x1))),
 
9680
                                (meta_str_item _loc x2))
9271
9681
                          | Ast.StClt (x0, x1) ->
9272
9682
                              Ast.ExApp (_loc,
9273
 
                                Ast.ExApp (_loc,
9274
 
                                  Ast.ExId (_loc,
9275
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9276
 
                                      Ast.IdUid (_loc, "StClt"))),
9277
 
                                  meta_loc _loc x0),
9278
 
                                meta_class_type _loc x1)
 
9683
                                (Ast.ExApp (_loc,
 
9684
                                   (Ast.ExId (_loc,
 
9685
                                      (Ast.IdAcc (_loc,
 
9686
                                         (Ast.IdUid (_loc, "Ast")),
 
9687
                                         (Ast.IdUid (_loc, "StClt")))))),
 
9688
                                   (meta_loc _loc x0))),
 
9689
                                (meta_class_type _loc x1))
9279
9690
                          | Ast.StCls (x0, x1) ->
9280
9691
                              Ast.ExApp (_loc,
9281
 
                                Ast.ExApp (_loc,
9282
 
                                  Ast.ExId (_loc,
9283
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9284
 
                                      Ast.IdUid (_loc, "StCls"))),
9285
 
                                  meta_loc _loc x0),
9286
 
                                meta_class_expr _loc x1)
 
9692
                                (Ast.ExApp (_loc,
 
9693
                                   (Ast.ExId (_loc,
 
9694
                                      (Ast.IdAcc (_loc,
 
9695
                                         (Ast.IdUid (_loc, "Ast")),
 
9696
                                         (Ast.IdUid (_loc, "StCls")))))),
 
9697
                                   (meta_loc _loc x0))),
 
9698
                                (meta_class_expr _loc x1))
9287
9699
                          | Ast.StNil x0 ->
9288
9700
                              Ast.ExApp (_loc,
9289
 
                                Ast.ExId (_loc,
9290
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9291
 
                                    Ast.IdUid (_loc, "StNil"))),
9292
 
                                meta_loc _loc x0)
 
9701
                                (Ast.ExId (_loc,
 
9702
                                   (Ast.IdAcc (_loc,
 
9703
                                      (Ast.IdUid (_loc, "Ast")),
 
9704
                                      (Ast.IdUid (_loc, "StNil")))))),
 
9705
                                (meta_loc _loc x0))
 
9706
                        and meta_virtual_flag _loc =
 
9707
                          function
 
9708
                          | Ast.ViAnt x0 -> Ast.ExAnt (_loc, x0)
 
9709
                          | Ast.ViNil ->
 
9710
                              Ast.ExId (_loc,
 
9711
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9712
                                   (Ast.IdUid (_loc, "ViNil")))))
 
9713
                          | Ast.ViVirtual ->
 
9714
                              Ast.ExId (_loc,
 
9715
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
9716
                                   (Ast.IdUid (_loc, "ViVirtual")))))
9293
9717
                        and meta_with_constr _loc =
9294
9718
                          function
9295
9719
                          | Ast.WcAnt (x0, x1) -> Ast.ExAnt (x0, x1)
9296
9720
                          | Ast.WcAnd (x0, x1, x2) ->
9297
9721
                              Ast.ExApp (_loc,
9298
 
                                Ast.ExApp (_loc,
9299
 
                                  Ast.ExApp (_loc,
9300
 
                                    Ast.ExId (_loc,
9301
 
                                      Ast.IdAcc (_loc,
9302
 
                                        Ast.IdUid (_loc, "Ast"),
9303
 
                                        Ast.IdUid (_loc, "WcAnd"))),
9304
 
                                    meta_loc _loc x0),
9305
 
                                  meta_with_constr _loc x1),
9306
 
                                meta_with_constr _loc x2)
 
9722
                                (Ast.ExApp (_loc,
 
9723
                                   (Ast.ExApp (_loc,
 
9724
                                      (Ast.ExId (_loc,
 
9725
                                         (Ast.IdAcc (_loc,
 
9726
                                            (Ast.IdUid (_loc, "Ast")),
 
9727
                                            (Ast.IdUid (_loc, "WcAnd")))))),
 
9728
                                      (meta_loc _loc x0))),
 
9729
                                   (meta_with_constr _loc x1))),
 
9730
                                (meta_with_constr _loc x2))
 
9731
                          | Ast.WcMoS (x0, x1, x2) ->
 
9732
                              Ast.ExApp (_loc,
 
9733
                                (Ast.ExApp (_loc,
 
9734
                                   (Ast.ExApp (_loc,
 
9735
                                      (Ast.ExId (_loc,
 
9736
                                         (Ast.IdAcc (_loc,
 
9737
                                            (Ast.IdUid (_loc, "Ast")),
 
9738
                                            (Ast.IdUid (_loc, "WcMoS")))))),
 
9739
                                      (meta_loc _loc x0))),
 
9740
                                   (meta_ident _loc x1))),
 
9741
                                (meta_ident _loc x2))
 
9742
                          | Ast.WcTyS (x0, x1, x2) ->
 
9743
                              Ast.ExApp (_loc,
 
9744
                                (Ast.ExApp (_loc,
 
9745
                                   (Ast.ExApp (_loc,
 
9746
                                      (Ast.ExId (_loc,
 
9747
                                         (Ast.IdAcc (_loc,
 
9748
                                            (Ast.IdUid (_loc, "Ast")),
 
9749
                                            (Ast.IdUid (_loc, "WcTyS")))))),
 
9750
                                      (meta_loc _loc x0))),
 
9751
                                   (meta_ctyp _loc x1))),
 
9752
                                (meta_ctyp _loc x2))
9307
9753
                          | Ast.WcMod (x0, x1, x2) ->
9308
9754
                              Ast.ExApp (_loc,
9309
 
                                Ast.ExApp (_loc,
9310
 
                                  Ast.ExApp (_loc,
9311
 
                                    Ast.ExId (_loc,
9312
 
                                      Ast.IdAcc (_loc,
9313
 
                                        Ast.IdUid (_loc, "Ast"),
9314
 
                                        Ast.IdUid (_loc, "WcMod"))),
9315
 
                                    meta_loc _loc x0),
9316
 
                                  meta_ident _loc x1),
9317
 
                                meta_ident _loc x2)
 
9755
                                (Ast.ExApp (_loc,
 
9756
                                   (Ast.ExApp (_loc,
 
9757
                                      (Ast.ExId (_loc,
 
9758
                                         (Ast.IdAcc (_loc,
 
9759
                                            (Ast.IdUid (_loc, "Ast")),
 
9760
                                            (Ast.IdUid (_loc, "WcMod")))))),
 
9761
                                      (meta_loc _loc x0))),
 
9762
                                   (meta_ident _loc x1))),
 
9763
                                (meta_ident _loc x2))
9318
9764
                          | Ast.WcTyp (x0, x1, x2) ->
9319
9765
                              Ast.ExApp (_loc,
9320
 
                                Ast.ExApp (_loc,
9321
 
                                  Ast.ExApp (_loc,
9322
 
                                    Ast.ExId (_loc,
9323
 
                                      Ast.IdAcc (_loc,
9324
 
                                        Ast.IdUid (_loc, "Ast"),
9325
 
                                        Ast.IdUid (_loc, "WcTyp"))),
9326
 
                                    meta_loc _loc x0),
9327
 
                                  meta_ctyp _loc x1),
9328
 
                                meta_ctyp _loc x2)
 
9766
                                (Ast.ExApp (_loc,
 
9767
                                   (Ast.ExApp (_loc,
 
9768
                                      (Ast.ExId (_loc,
 
9769
                                         (Ast.IdAcc (_loc,
 
9770
                                            (Ast.IdUid (_loc, "Ast")),
 
9771
                                            (Ast.IdUid (_loc, "WcTyp")))))),
 
9772
                                      (meta_loc _loc x0))),
 
9773
                                   (meta_ctyp _loc x1))),
 
9774
                                (meta_ctyp _loc x2))
9329
9775
                          | Ast.WcNil x0 ->
9330
9776
                              Ast.ExApp (_loc,
9331
 
                                Ast.ExId (_loc,
9332
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9333
 
                                    Ast.IdUid (_loc, "WcNil"))),
9334
 
                                meta_loc _loc x0)
 
9777
                                (Ast.ExId (_loc,
 
9778
                                   (Ast.IdAcc (_loc,
 
9779
                                      (Ast.IdUid (_loc, "Ast")),
 
9780
                                      (Ast.IdUid (_loc, "WcNil")))))),
 
9781
                                (meta_loc _loc x0))
9335
9782
                          
9336
9783
                      end
9337
9784
                      
9350
9797
                        let meta_bool _loc =
9351
9798
                          function
9352
9799
                          | false ->
9353
 
                              Ast.PaId (_loc, Ast.IdUid (_loc, "False"))
9354
 
                          | true -> Ast.PaId (_loc, Ast.IdUid (_loc, "True"))
 
9800
                              Ast.PaId (_loc, (Ast.IdUid (_loc, "False")))
 
9801
                          | true ->
 
9802
                              Ast.PaId (_loc, (Ast.IdUid (_loc, "True")))
9355
9803
                          
9356
9804
                        let rec meta_list mf_a _loc =
9357
9805
                          function
9358
 
                          | [] -> Ast.PaId (_loc, Ast.IdUid (_loc, "[]"))
 
9806
                          | [] -> Ast.PaId (_loc, (Ast.IdUid (_loc, "[]")))
9359
9807
                          | x :: xs ->
9360
9808
                              Ast.PaApp (_loc,
9361
 
                                Ast.PaApp (_loc,
9362
 
                                  Ast.PaId (_loc, Ast.IdUid (_loc, "::")),
9363
 
                                  mf_a _loc x),
9364
 
                                meta_list mf_a _loc xs)
 
9809
                                (Ast.PaApp (_loc,
 
9810
                                   (Ast.PaId (_loc, (Ast.IdUid (_loc, "::")))),
 
9811
                                   (mf_a _loc x))),
 
9812
                                (meta_list mf_a _loc xs))
9365
9813
                          
9366
9814
                        let rec meta_binding _loc =
9367
9815
                          function
9368
9816
                          | Ast.BiAnt (x0, x1) -> Ast.PaAnt (x0, x1)
9369
9817
                          | Ast.BiEq (x0, x1, x2) ->
9370
9818
                              Ast.PaApp (_loc,
9371
 
                                Ast.PaApp (_loc,
9372
 
                                  Ast.PaApp (_loc,
9373
 
                                    Ast.PaId (_loc,
9374
 
                                      Ast.IdAcc (_loc,
9375
 
                                        Ast.IdUid (_loc, "Ast"),
9376
 
                                        Ast.IdUid (_loc, "BiEq"))),
9377
 
                                    meta_loc _loc x0),
9378
 
                                  meta_patt _loc x1),
9379
 
                                meta_expr _loc x2)
 
9819
                                (Ast.PaApp (_loc,
 
9820
                                   (Ast.PaApp (_loc,
 
9821
                                      (Ast.PaId (_loc,
 
9822
                                         (Ast.IdAcc (_loc,
 
9823
                                            (Ast.IdUid (_loc, "Ast")),
 
9824
                                            (Ast.IdUid (_loc, "BiEq")))))),
 
9825
                                      (meta_loc _loc x0))),
 
9826
                                   (meta_patt _loc x1))),
 
9827
                                (meta_expr _loc x2))
9380
9828
                          | Ast.BiAnd (x0, x1, x2) ->
9381
9829
                              Ast.PaApp (_loc,
9382
 
                                Ast.PaApp (_loc,
9383
 
                                  Ast.PaApp (_loc,
9384
 
                                    Ast.PaId (_loc,
9385
 
                                      Ast.IdAcc (_loc,
9386
 
                                        Ast.IdUid (_loc, "Ast"),
9387
 
                                        Ast.IdUid (_loc, "BiAnd"))),
9388
 
                                    meta_loc _loc x0),
9389
 
                                  meta_binding _loc x1),
9390
 
                                meta_binding _loc x2)
 
9830
                                (Ast.PaApp (_loc,
 
9831
                                   (Ast.PaApp (_loc,
 
9832
                                      (Ast.PaId (_loc,
 
9833
                                         (Ast.IdAcc (_loc,
 
9834
                                            (Ast.IdUid (_loc, "Ast")),
 
9835
                                            (Ast.IdUid (_loc, "BiAnd")))))),
 
9836
                                      (meta_loc _loc x0))),
 
9837
                                   (meta_binding _loc x1))),
 
9838
                                (meta_binding _loc x2))
9391
9839
                          | Ast.BiNil x0 ->
9392
9840
                              Ast.PaApp (_loc,
9393
 
                                Ast.PaId (_loc,
9394
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9395
 
                                    Ast.IdUid (_loc, "BiNil"))),
9396
 
                                meta_loc _loc x0)
 
9841
                                (Ast.PaId (_loc,
 
9842
                                   (Ast.IdAcc (_loc,
 
9843
                                      (Ast.IdUid (_loc, "Ast")),
 
9844
                                      (Ast.IdUid (_loc, "BiNil")))))),
 
9845
                                (meta_loc _loc x0))
9397
9846
                        and meta_class_expr _loc =
9398
9847
                          function
9399
9848
                          | Ast.CeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
9400
9849
                          | Ast.CeEq (x0, x1, x2) ->
9401
9850
                              Ast.PaApp (_loc,
9402
 
                                Ast.PaApp (_loc,
9403
 
                                  Ast.PaApp (_loc,
9404
 
                                    Ast.PaId (_loc,
9405
 
                                      Ast.IdAcc (_loc,
9406
 
                                        Ast.IdUid (_loc, "Ast"),
9407
 
                                        Ast.IdUid (_loc, "CeEq"))),
9408
 
                                    meta_loc _loc x0),
9409
 
                                  meta_class_expr _loc x1),
9410
 
                                meta_class_expr _loc x2)
 
9851
                                (Ast.PaApp (_loc,
 
9852
                                   (Ast.PaApp (_loc,
 
9853
                                      (Ast.PaId (_loc,
 
9854
                                         (Ast.IdAcc (_loc,
 
9855
                                            (Ast.IdUid (_loc, "Ast")),
 
9856
                                            (Ast.IdUid (_loc, "CeEq")))))),
 
9857
                                      (meta_loc _loc x0))),
 
9858
                                   (meta_class_expr _loc x1))),
 
9859
                                (meta_class_expr _loc x2))
9411
9860
                          | Ast.CeAnd (x0, x1, x2) ->
9412
9861
                              Ast.PaApp (_loc,
9413
 
                                Ast.PaApp (_loc,
9414
 
                                  Ast.PaApp (_loc,
9415
 
                                    Ast.PaId (_loc,
9416
 
                                      Ast.IdAcc (_loc,
9417
 
                                        Ast.IdUid (_loc, "Ast"),
9418
 
                                        Ast.IdUid (_loc, "CeAnd"))),
9419
 
                                    meta_loc _loc x0),
9420
 
                                  meta_class_expr _loc x1),
9421
 
                                meta_class_expr _loc x2)
 
9862
                                (Ast.PaApp (_loc,
 
9863
                                   (Ast.PaApp (_loc,
 
9864
                                      (Ast.PaId (_loc,
 
9865
                                         (Ast.IdAcc (_loc,
 
9866
                                            (Ast.IdUid (_loc, "Ast")),
 
9867
                                            (Ast.IdUid (_loc, "CeAnd")))))),
 
9868
                                      (meta_loc _loc x0))),
 
9869
                                   (meta_class_expr _loc x1))),
 
9870
                                (meta_class_expr _loc x2))
9422
9871
                          | Ast.CeTyc (x0, x1, x2) ->
9423
9872
                              Ast.PaApp (_loc,
9424
 
                                Ast.PaApp (_loc,
9425
 
                                  Ast.PaApp (_loc,
9426
 
                                    Ast.PaId (_loc,
9427
 
                                      Ast.IdAcc (_loc,
9428
 
                                        Ast.IdUid (_loc, "Ast"),
9429
 
                                        Ast.IdUid (_loc, "CeTyc"))),
9430
 
                                    meta_loc _loc x0),
9431
 
                                  meta_class_expr _loc x1),
9432
 
                                meta_class_type _loc x2)
 
9873
                                (Ast.PaApp (_loc,
 
9874
                                   (Ast.PaApp (_loc,
 
9875
                                      (Ast.PaId (_loc,
 
9876
                                         (Ast.IdAcc (_loc,
 
9877
                                            (Ast.IdUid (_loc, "Ast")),
 
9878
                                            (Ast.IdUid (_loc, "CeTyc")))))),
 
9879
                                      (meta_loc _loc x0))),
 
9880
                                   (meta_class_expr _loc x1))),
 
9881
                                (meta_class_type _loc x2))
9433
9882
                          | Ast.CeStr (x0, x1, x2) ->
9434
9883
                              Ast.PaApp (_loc,
9435
 
                                Ast.PaApp (_loc,
9436
 
                                  Ast.PaApp (_loc,
9437
 
                                    Ast.PaId (_loc,
9438
 
                                      Ast.IdAcc (_loc,
9439
 
                                        Ast.IdUid (_loc, "Ast"),
9440
 
                                        Ast.IdUid (_loc, "CeStr"))),
9441
 
                                    meta_loc _loc x0),
9442
 
                                  meta_patt _loc x1),
9443
 
                                meta_class_str_item _loc x2)
 
9884
                                (Ast.PaApp (_loc,
 
9885
                                   (Ast.PaApp (_loc,
 
9886
                                      (Ast.PaId (_loc,
 
9887
                                         (Ast.IdAcc (_loc,
 
9888
                                            (Ast.IdUid (_loc, "Ast")),
 
9889
                                            (Ast.IdUid (_loc, "CeStr")))))),
 
9890
                                      (meta_loc _loc x0))),
 
9891
                                   (meta_patt _loc x1))),
 
9892
                                (meta_class_str_item _loc x2))
9444
9893
                          | Ast.CeLet (x0, x1, x2, x3) ->
9445
9894
                              Ast.PaApp (_loc,
9446
 
                                Ast.PaApp (_loc,
9447
 
                                  Ast.PaApp (_loc,
9448
 
                                    Ast.PaApp (_loc,
9449
 
                                      Ast.PaId (_loc,
9450
 
                                        Ast.IdAcc (_loc,
9451
 
                                          Ast.IdUid (_loc, "Ast"),
9452
 
                                          Ast.IdUid (_loc, "CeLet"))),
9453
 
                                      meta_loc _loc x0),
9454
 
                                    meta_meta_bool _loc x1),
9455
 
                                  meta_binding _loc x2),
9456
 
                                meta_class_expr _loc x3)
 
9895
                                (Ast.PaApp (_loc,
 
9896
                                   (Ast.PaApp (_loc,
 
9897
                                      (Ast.PaApp (_loc,
 
9898
                                         (Ast.PaId (_loc,
 
9899
                                            (Ast.IdAcc (_loc,
 
9900
                                               (Ast.IdUid (_loc, "Ast")),
 
9901
                                               (Ast.IdUid (_loc, "CeLet")))))),
 
9902
                                         (meta_loc _loc x0))),
 
9903
                                      (meta_rec_flag _loc x1))),
 
9904
                                   (meta_binding _loc x2))),
 
9905
                                (meta_class_expr _loc x3))
9457
9906
                          | Ast.CeFun (x0, x1, x2) ->
9458
9907
                              Ast.PaApp (_loc,
9459
 
                                Ast.PaApp (_loc,
9460
 
                                  Ast.PaApp (_loc,
9461
 
                                    Ast.PaId (_loc,
9462
 
                                      Ast.IdAcc (_loc,
9463
 
                                        Ast.IdUid (_loc, "Ast"),
9464
 
                                        Ast.IdUid (_loc, "CeFun"))),
9465
 
                                    meta_loc _loc x0),
9466
 
                                  meta_patt _loc x1),
9467
 
                                meta_class_expr _loc x2)
 
9908
                                (Ast.PaApp (_loc,
 
9909
                                   (Ast.PaApp (_loc,
 
9910
                                      (Ast.PaId (_loc,
 
9911
                                         (Ast.IdAcc (_loc,
 
9912
                                            (Ast.IdUid (_loc, "Ast")),
 
9913
                                            (Ast.IdUid (_loc, "CeFun")))))),
 
9914
                                      (meta_loc _loc x0))),
 
9915
                                   (meta_patt _loc x1))),
 
9916
                                (meta_class_expr _loc x2))
9468
9917
                          | Ast.CeCon (x0, x1, x2, x3) ->
9469
9918
                              Ast.PaApp (_loc,
9470
 
                                Ast.PaApp (_loc,
9471
 
                                  Ast.PaApp (_loc,
9472
 
                                    Ast.PaApp (_loc,
9473
 
                                      Ast.PaId (_loc,
9474
 
                                        Ast.IdAcc (_loc,
9475
 
                                          Ast.IdUid (_loc, "Ast"),
9476
 
                                          Ast.IdUid (_loc, "CeCon"))),
9477
 
                                      meta_loc _loc x0),
9478
 
                                    meta_meta_bool _loc x1),
9479
 
                                  meta_ident _loc x2),
9480
 
                                meta_ctyp _loc x3)
 
9919
                                (Ast.PaApp (_loc,
 
9920
                                   (Ast.PaApp (_loc,
 
9921
                                      (Ast.PaApp (_loc,
 
9922
                                         (Ast.PaId (_loc,
 
9923
                                            (Ast.IdAcc (_loc,
 
9924
                                               (Ast.IdUid (_loc, "Ast")),
 
9925
                                               (Ast.IdUid (_loc, "CeCon")))))),
 
9926
                                         (meta_loc _loc x0))),
 
9927
                                      (meta_virtual_flag _loc x1))),
 
9928
                                   (meta_ident _loc x2))),
 
9929
                                (meta_ctyp _loc x3))
9481
9930
                          | Ast.CeApp (x0, x1, x2) ->
9482
9931
                              Ast.PaApp (_loc,
9483
 
                                Ast.PaApp (_loc,
9484
 
                                  Ast.PaApp (_loc,
9485
 
                                    Ast.PaId (_loc,
9486
 
                                      Ast.IdAcc (_loc,
9487
 
                                        Ast.IdUid (_loc, "Ast"),
9488
 
                                        Ast.IdUid (_loc, "CeApp"))),
9489
 
                                    meta_loc _loc x0),
9490
 
                                  meta_class_expr _loc x1),
9491
 
                                meta_expr _loc x2)
 
9932
                                (Ast.PaApp (_loc,
 
9933
                                   (Ast.PaApp (_loc,
 
9934
                                      (Ast.PaId (_loc,
 
9935
                                         (Ast.IdAcc (_loc,
 
9936
                                            (Ast.IdUid (_loc, "Ast")),
 
9937
                                            (Ast.IdUid (_loc, "CeApp")))))),
 
9938
                                      (meta_loc _loc x0))),
 
9939
                                   (meta_class_expr _loc x1))),
 
9940
                                (meta_expr _loc x2))
9492
9941
                          | Ast.CeNil x0 ->
9493
9942
                              Ast.PaApp (_loc,
9494
 
                                Ast.PaId (_loc,
9495
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9496
 
                                    Ast.IdUid (_loc, "CeNil"))),
9497
 
                                meta_loc _loc x0)
 
9943
                                (Ast.PaId (_loc,
 
9944
                                   (Ast.IdAcc (_loc,
 
9945
                                      (Ast.IdUid (_loc, "Ast")),
 
9946
                                      (Ast.IdUid (_loc, "CeNil")))))),
 
9947
                                (meta_loc _loc x0))
9498
9948
                        and meta_class_sig_item _loc =
9499
9949
                          function
9500
9950
                          | Ast.CgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
9501
9951
                          | Ast.CgVir (x0, x1, x2, x3) ->
9502
9952
                              Ast.PaApp (_loc,
9503
 
                                Ast.PaApp (_loc,
9504
 
                                  Ast.PaApp (_loc,
9505
 
                                    Ast.PaApp (_loc,
9506
 
                                      Ast.PaId (_loc,
9507
 
                                        Ast.IdAcc (_loc,
9508
 
                                          Ast.IdUid (_loc, "Ast"),
9509
 
                                          Ast.IdUid (_loc, "CgVir"))),
9510
 
                                      meta_loc _loc x0),
9511
 
                                    meta_string _loc x1),
9512
 
                                  meta_meta_bool _loc x2),
9513
 
                                meta_ctyp _loc x3)
 
9953
                                (Ast.PaApp (_loc,
 
9954
                                   (Ast.PaApp (_loc,
 
9955
                                      (Ast.PaApp (_loc,
 
9956
                                         (Ast.PaId (_loc,
 
9957
                                            (Ast.IdAcc (_loc,
 
9958
                                               (Ast.IdUid (_loc, "Ast")),
 
9959
                                               (Ast.IdUid (_loc, "CgVir")))))),
 
9960
                                         (meta_loc _loc x0))),
 
9961
                                      (meta_string _loc x1))),
 
9962
                                   (meta_private_flag _loc x2))),
 
9963
                                (meta_ctyp _loc x3))
9514
9964
                          | Ast.CgVal (x0, x1, x2, x3, x4) ->
9515
9965
                              Ast.PaApp (_loc,
9516
 
                                Ast.PaApp (_loc,
9517
 
                                  Ast.PaApp (_loc,
9518
 
                                    Ast.PaApp (_loc,
9519
 
                                      Ast.PaApp (_loc,
9520
 
                                        Ast.PaId (_loc,
9521
 
                                          Ast.IdAcc (_loc,
9522
 
                                            Ast.IdUid (_loc, "Ast"),
9523
 
                                            Ast.IdUid (_loc, "CgVal"))),
9524
 
                                        meta_loc _loc x0),
9525
 
                                      meta_string _loc x1),
9526
 
                                    meta_meta_bool _loc x2),
9527
 
                                  meta_meta_bool _loc x3),
9528
 
                                meta_ctyp _loc x4)
 
9966
                                (Ast.PaApp (_loc,
 
9967
                                   (Ast.PaApp (_loc,
 
9968
                                      (Ast.PaApp (_loc,
 
9969
                                         (Ast.PaApp (_loc,
 
9970
                                            (Ast.PaId (_loc,
 
9971
                                               (Ast.IdAcc (_loc,
 
9972
                                                  (Ast.IdUid (_loc, "Ast")),
 
9973
                                                  (Ast.IdUid (_loc, "CgVal")))))),
 
9974
                                            (meta_loc _loc x0))),
 
9975
                                         (meta_string _loc x1))),
 
9976
                                      (meta_mutable_flag _loc x2))),
 
9977
                                   (meta_virtual_flag _loc x3))),
 
9978
                                (meta_ctyp _loc x4))
9529
9979
                          | Ast.CgMth (x0, x1, x2, x3) ->
9530
9980
                              Ast.PaApp (_loc,
9531
 
                                Ast.PaApp (_loc,
9532
 
                                  Ast.PaApp (_loc,
9533
 
                                    Ast.PaApp (_loc,
9534
 
                                      Ast.PaId (_loc,
9535
 
                                        Ast.IdAcc (_loc,
9536
 
                                          Ast.IdUid (_loc, "Ast"),
9537
 
                                          Ast.IdUid (_loc, "CgMth"))),
9538
 
                                      meta_loc _loc x0),
9539
 
                                    meta_string _loc x1),
9540
 
                                  meta_meta_bool _loc x2),
9541
 
                                meta_ctyp _loc x3)
 
9981
                                (Ast.PaApp (_loc,
 
9982
                                   (Ast.PaApp (_loc,
 
9983
                                      (Ast.PaApp (_loc,
 
9984
                                         (Ast.PaId (_loc,
 
9985
                                            (Ast.IdAcc (_loc,
 
9986
                                               (Ast.IdUid (_loc, "Ast")),
 
9987
                                               (Ast.IdUid (_loc, "CgMth")))))),
 
9988
                                         (meta_loc _loc x0))),
 
9989
                                      (meta_string _loc x1))),
 
9990
                                   (meta_private_flag _loc x2))),
 
9991
                                (meta_ctyp _loc x3))
9542
9992
                          | Ast.CgInh (x0, x1) ->
9543
9993
                              Ast.PaApp (_loc,
9544
 
                                Ast.PaApp (_loc,
9545
 
                                  Ast.PaId (_loc,
9546
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9547
 
                                      Ast.IdUid (_loc, "CgInh"))),
9548
 
                                  meta_loc _loc x0),
9549
 
                                meta_class_type _loc x1)
 
9994
                                (Ast.PaApp (_loc,
 
9995
                                   (Ast.PaId (_loc,
 
9996
                                      (Ast.IdAcc (_loc,
 
9997
                                         (Ast.IdUid (_loc, "Ast")),
 
9998
                                         (Ast.IdUid (_loc, "CgInh")))))),
 
9999
                                   (meta_loc _loc x0))),
 
10000
                                (meta_class_type _loc x1))
9550
10001
                          | Ast.CgSem (x0, x1, x2) ->
9551
10002
                              Ast.PaApp (_loc,
9552
 
                                Ast.PaApp (_loc,
9553
 
                                  Ast.PaApp (_loc,
9554
 
                                    Ast.PaId (_loc,
9555
 
                                      Ast.IdAcc (_loc,
9556
 
                                        Ast.IdUid (_loc, "Ast"),
9557
 
                                        Ast.IdUid (_loc, "CgSem"))),
9558
 
                                    meta_loc _loc x0),
9559
 
                                  meta_class_sig_item _loc x1),
9560
 
                                meta_class_sig_item _loc x2)
 
10003
                                (Ast.PaApp (_loc,
 
10004
                                   (Ast.PaApp (_loc,
 
10005
                                      (Ast.PaId (_loc,
 
10006
                                         (Ast.IdAcc (_loc,
 
10007
                                            (Ast.IdUid (_loc, "Ast")),
 
10008
                                            (Ast.IdUid (_loc, "CgSem")))))),
 
10009
                                      (meta_loc _loc x0))),
 
10010
                                   (meta_class_sig_item _loc x1))),
 
10011
                                (meta_class_sig_item _loc x2))
9561
10012
                          | Ast.CgCtr (x0, x1, x2) ->
9562
10013
                              Ast.PaApp (_loc,
9563
 
                                Ast.PaApp (_loc,
9564
 
                                  Ast.PaApp (_loc,
9565
 
                                    Ast.PaId (_loc,
9566
 
                                      Ast.IdAcc (_loc,
9567
 
                                        Ast.IdUid (_loc, "Ast"),
9568
 
                                        Ast.IdUid (_loc, "CgCtr"))),
9569
 
                                    meta_loc _loc x0),
9570
 
                                  meta_ctyp _loc x1),
9571
 
                                meta_ctyp _loc x2)
 
10014
                                (Ast.PaApp (_loc,
 
10015
                                   (Ast.PaApp (_loc,
 
10016
                                      (Ast.PaId (_loc,
 
10017
                                         (Ast.IdAcc (_loc,
 
10018
                                            (Ast.IdUid (_loc, "Ast")),
 
10019
                                            (Ast.IdUid (_loc, "CgCtr")))))),
 
10020
                                      (meta_loc _loc x0))),
 
10021
                                   (meta_ctyp _loc x1))),
 
10022
                                (meta_ctyp _loc x2))
9572
10023
                          | Ast.CgNil x0 ->
9573
10024
                              Ast.PaApp (_loc,
9574
 
                                Ast.PaId (_loc,
9575
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9576
 
                                    Ast.IdUid (_loc, "CgNil"))),
9577
 
                                meta_loc _loc x0)
 
10025
                                (Ast.PaId (_loc,
 
10026
                                   (Ast.IdAcc (_loc,
 
10027
                                      (Ast.IdUid (_loc, "Ast")),
 
10028
                                      (Ast.IdUid (_loc, "CgNil")))))),
 
10029
                                (meta_loc _loc x0))
9578
10030
                        and meta_class_str_item _loc =
9579
10031
                          function
9580
10032
                          | Ast.CrAnt (x0, x1) -> Ast.PaAnt (x0, x1)
9581
10033
                          | Ast.CrVvr (x0, x1, x2, x3) ->
9582
10034
                              Ast.PaApp (_loc,
9583
 
                                Ast.PaApp (_loc,
9584
 
                                  Ast.PaApp (_loc,
9585
 
                                    Ast.PaApp (_loc,
9586
 
                                      Ast.PaId (_loc,
9587
 
                                        Ast.IdAcc (_loc,
9588
 
                                          Ast.IdUid (_loc, "Ast"),
9589
 
                                          Ast.IdUid (_loc, "CrVvr"))),
9590
 
                                      meta_loc _loc x0),
9591
 
                                    meta_string _loc x1),
9592
 
                                  meta_meta_bool _loc x2),
9593
 
                                meta_ctyp _loc x3)
 
10035
                                (Ast.PaApp (_loc,
 
10036
                                   (Ast.PaApp (_loc,
 
10037
                                      (Ast.PaApp (_loc,
 
10038
                                         (Ast.PaId (_loc,
 
10039
                                            (Ast.IdAcc (_loc,
 
10040
                                               (Ast.IdUid (_loc, "Ast")),
 
10041
                                               (Ast.IdUid (_loc, "CrVvr")))))),
 
10042
                                         (meta_loc _loc x0))),
 
10043
                                      (meta_string _loc x1))),
 
10044
                                   (meta_mutable_flag _loc x2))),
 
10045
                                (meta_ctyp _loc x3))
9594
10046
                          | Ast.CrVir (x0, x1, x2, x3) ->
9595
10047
                              Ast.PaApp (_loc,
9596
 
                                Ast.PaApp (_loc,
9597
 
                                  Ast.PaApp (_loc,
9598
 
                                    Ast.PaApp (_loc,
9599
 
                                      Ast.PaId (_loc,
9600
 
                                        Ast.IdAcc (_loc,
9601
 
                                          Ast.IdUid (_loc, "Ast"),
9602
 
                                          Ast.IdUid (_loc, "CrVir"))),
9603
 
                                      meta_loc _loc x0),
9604
 
                                    meta_string _loc x1),
9605
 
                                  meta_meta_bool _loc x2),
9606
 
                                meta_ctyp _loc x3)
9607
 
                          | Ast.CrVal (x0, x1, x2, x3) ->
9608
 
                              Ast.PaApp (_loc,
9609
 
                                Ast.PaApp (_loc,
9610
 
                                  Ast.PaApp (_loc,
9611
 
                                    Ast.PaApp (_loc,
9612
 
                                      Ast.PaId (_loc,
9613
 
                                        Ast.IdAcc (_loc,
9614
 
                                          Ast.IdUid (_loc, "Ast"),
9615
 
                                          Ast.IdUid (_loc, "CrVal"))),
9616
 
                                      meta_loc _loc x0),
9617
 
                                    meta_string _loc x1),
9618
 
                                  meta_meta_bool _loc x2),
9619
 
                                meta_expr _loc x3)
9620
 
                          | Ast.CrMth (x0, x1, x2, x3, x4) ->
9621
 
                              Ast.PaApp (_loc,
9622
 
                                Ast.PaApp (_loc,
9623
 
                                  Ast.PaApp (_loc,
9624
 
                                    Ast.PaApp (_loc,
9625
 
                                      Ast.PaApp (_loc,
9626
 
                                        Ast.PaId (_loc,
9627
 
                                          Ast.IdAcc (_loc,
9628
 
                                            Ast.IdUid (_loc, "Ast"),
9629
 
                                            Ast.IdUid (_loc, "CrMth"))),
9630
 
                                        meta_loc _loc x0),
9631
 
                                      meta_string _loc x1),
9632
 
                                    meta_meta_bool _loc x2),
9633
 
                                  meta_expr _loc x3),
9634
 
                                meta_ctyp _loc x4)
 
10048
                                (Ast.PaApp (_loc,
 
10049
                                   (Ast.PaApp (_loc,
 
10050
                                      (Ast.PaApp (_loc,
 
10051
                                         (Ast.PaId (_loc,
 
10052
                                            (Ast.IdAcc (_loc,
 
10053
                                               (Ast.IdUid (_loc, "Ast")),
 
10054
                                               (Ast.IdUid (_loc, "CrVir")))))),
 
10055
                                         (meta_loc _loc x0))),
 
10056
                                      (meta_string _loc x1))),
 
10057
                                   (meta_private_flag _loc x2))),
 
10058
                                (meta_ctyp _loc x3))
 
10059
                          | Ast.CrVal (x0, x1, x2, x3, x4) ->
 
10060
                              Ast.PaApp (_loc,
 
10061
                                (Ast.PaApp (_loc,
 
10062
                                   (Ast.PaApp (_loc,
 
10063
                                      (Ast.PaApp (_loc,
 
10064
                                         (Ast.PaApp (_loc,
 
10065
                                            (Ast.PaId (_loc,
 
10066
                                               (Ast.IdAcc (_loc,
 
10067
                                                  (Ast.IdUid (_loc, "Ast")),
 
10068
                                                  (Ast.IdUid (_loc, "CrVal")))))),
 
10069
                                            (meta_loc _loc x0))),
 
10070
                                         (meta_string _loc x1))),
 
10071
                                      (meta_override_flag _loc x2))),
 
10072
                                   (meta_mutable_flag _loc x3))),
 
10073
                                (meta_expr _loc x4))
 
10074
                          | Ast.CrMth (x0, x1, x2, x3, x4, x5) ->
 
10075
                              Ast.PaApp (_loc,
 
10076
                                (Ast.PaApp (_loc,
 
10077
                                   (Ast.PaApp (_loc,
 
10078
                                      (Ast.PaApp (_loc,
 
10079
                                         (Ast.PaApp (_loc,
 
10080
                                            (Ast.PaApp (_loc,
 
10081
                                               (Ast.PaId (_loc,
 
10082
                                                  (Ast.IdAcc (_loc,
 
10083
                                                     (Ast.IdUid (_loc, "Ast")),
 
10084
                                                     (Ast.IdUid (_loc,
 
10085
                                                        "CrMth")))))),
 
10086
                                               (meta_loc _loc x0))),
 
10087
                                            (meta_string _loc x1))),
 
10088
                                         (meta_override_flag _loc x2))),
 
10089
                                      (meta_private_flag _loc x3))),
 
10090
                                   (meta_expr _loc x4))),
 
10091
                                (meta_ctyp _loc x5))
9635
10092
                          | Ast.CrIni (x0, x1) ->
9636
10093
                              Ast.PaApp (_loc,
9637
 
                                Ast.PaApp (_loc,
9638
 
                                  Ast.PaId (_loc,
9639
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9640
 
                                      Ast.IdUid (_loc, "CrIni"))),
9641
 
                                  meta_loc _loc x0),
9642
 
                                meta_expr _loc x1)
9643
 
                          | Ast.CrInh (x0, x1, x2) ->
 
10094
                                (Ast.PaApp (_loc,
 
10095
                                   (Ast.PaId (_loc,
 
10096
                                      (Ast.IdAcc (_loc,
 
10097
                                         (Ast.IdUid (_loc, "Ast")),
 
10098
                                         (Ast.IdUid (_loc, "CrIni")))))),
 
10099
                                   (meta_loc _loc x0))),
 
10100
                                (meta_expr _loc x1))
 
10101
                          | Ast.CrInh (x0, x1, x2, x3) ->
9644
10102
                              Ast.PaApp (_loc,
9645
 
                                Ast.PaApp (_loc,
9646
 
                                  Ast.PaApp (_loc,
9647
 
                                    Ast.PaId (_loc,
9648
 
                                      Ast.IdAcc (_loc,
9649
 
                                        Ast.IdUid (_loc, "Ast"),
9650
 
                                        Ast.IdUid (_loc, "CrInh"))),
9651
 
                                    meta_loc _loc x0),
9652
 
                                  meta_class_expr _loc x1),
9653
 
                                meta_string _loc x2)
 
10103
                                (Ast.PaApp (_loc,
 
10104
                                   (Ast.PaApp (_loc,
 
10105
                                      (Ast.PaApp (_loc,
 
10106
                                         (Ast.PaId (_loc,
 
10107
                                            (Ast.IdAcc (_loc,
 
10108
                                               (Ast.IdUid (_loc, "Ast")),
 
10109
                                               (Ast.IdUid (_loc, "CrInh")))))),
 
10110
                                         (meta_loc _loc x0))),
 
10111
                                      (meta_override_flag _loc x1))),
 
10112
                                   (meta_class_expr _loc x2))),
 
10113
                                (meta_string _loc x3))
9654
10114
                          | Ast.CrCtr (x0, x1, x2) ->
9655
10115
                              Ast.PaApp (_loc,
9656
 
                                Ast.PaApp (_loc,
9657
 
                                  Ast.PaApp (_loc,
9658
 
                                    Ast.PaId (_loc,
9659
 
                                      Ast.IdAcc (_loc,
9660
 
                                        Ast.IdUid (_loc, "Ast"),
9661
 
                                        Ast.IdUid (_loc, "CrCtr"))),
9662
 
                                    meta_loc _loc x0),
9663
 
                                  meta_ctyp _loc x1),
9664
 
                                meta_ctyp _loc x2)
 
10116
                                (Ast.PaApp (_loc,
 
10117
                                   (Ast.PaApp (_loc,
 
10118
                                      (Ast.PaId (_loc,
 
10119
                                         (Ast.IdAcc (_loc,
 
10120
                                            (Ast.IdUid (_loc, "Ast")),
 
10121
                                            (Ast.IdUid (_loc, "CrCtr")))))),
 
10122
                                      (meta_loc _loc x0))),
 
10123
                                   (meta_ctyp _loc x1))),
 
10124
                                (meta_ctyp _loc x2))
9665
10125
                          | Ast.CrSem (x0, x1, x2) ->
9666
10126
                              Ast.PaApp (_loc,
9667
 
                                Ast.PaApp (_loc,
9668
 
                                  Ast.PaApp (_loc,
9669
 
                                    Ast.PaId (_loc,
9670
 
                                      Ast.IdAcc (_loc,
9671
 
                                        Ast.IdUid (_loc, "Ast"),
9672
 
                                        Ast.IdUid (_loc, "CrSem"))),
9673
 
                                    meta_loc _loc x0),
9674
 
                                  meta_class_str_item _loc x1),
9675
 
                                meta_class_str_item _loc x2)
 
10127
                                (Ast.PaApp (_loc,
 
10128
                                   (Ast.PaApp (_loc,
 
10129
                                      (Ast.PaId (_loc,
 
10130
                                         (Ast.IdAcc (_loc,
 
10131
                                            (Ast.IdUid (_loc, "Ast")),
 
10132
                                            (Ast.IdUid (_loc, "CrSem")))))),
 
10133
                                      (meta_loc _loc x0))),
 
10134
                                   (meta_class_str_item _loc x1))),
 
10135
                                (meta_class_str_item _loc x2))
9676
10136
                          | Ast.CrNil x0 ->
9677
10137
                              Ast.PaApp (_loc,
9678
 
                                Ast.PaId (_loc,
9679
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9680
 
                                    Ast.IdUid (_loc, "CrNil"))),
9681
 
                                meta_loc _loc x0)
 
10138
                                (Ast.PaId (_loc,
 
10139
                                   (Ast.IdAcc (_loc,
 
10140
                                      (Ast.IdUid (_loc, "Ast")),
 
10141
                                      (Ast.IdUid (_loc, "CrNil")))))),
 
10142
                                (meta_loc _loc x0))
9682
10143
                        and meta_class_type _loc =
9683
10144
                          function
9684
10145
                          | Ast.CtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
9685
10146
                          | Ast.CtEq (x0, x1, x2) ->
9686
10147
                              Ast.PaApp (_loc,
9687
 
                                Ast.PaApp (_loc,
9688
 
                                  Ast.PaApp (_loc,
9689
 
                                    Ast.PaId (_loc,
9690
 
                                      Ast.IdAcc (_loc,
9691
 
                                        Ast.IdUid (_loc, "Ast"),
9692
 
                                        Ast.IdUid (_loc, "CtEq"))),
9693
 
                                    meta_loc _loc x0),
9694
 
                                  meta_class_type _loc x1),
9695
 
                                meta_class_type _loc x2)
 
10148
                                (Ast.PaApp (_loc,
 
10149
                                   (Ast.PaApp (_loc,
 
10150
                                      (Ast.PaId (_loc,
 
10151
                                         (Ast.IdAcc (_loc,
 
10152
                                            (Ast.IdUid (_loc, "Ast")),
 
10153
                                            (Ast.IdUid (_loc, "CtEq")))))),
 
10154
                                      (meta_loc _loc x0))),
 
10155
                                   (meta_class_type _loc x1))),
 
10156
                                (meta_class_type _loc x2))
9696
10157
                          | Ast.CtCol (x0, x1, x2) ->
9697
10158
                              Ast.PaApp (_loc,
9698
 
                                Ast.PaApp (_loc,
9699
 
                                  Ast.PaApp (_loc,
9700
 
                                    Ast.PaId (_loc,
9701
 
                                      Ast.IdAcc (_loc,
9702
 
                                        Ast.IdUid (_loc, "Ast"),
9703
 
                                        Ast.IdUid (_loc, "CtCol"))),
9704
 
                                    meta_loc _loc x0),
9705
 
                                  meta_class_type _loc x1),
9706
 
                                meta_class_type _loc x2)
 
10159
                                (Ast.PaApp (_loc,
 
10160
                                   (Ast.PaApp (_loc,
 
10161
                                      (Ast.PaId (_loc,
 
10162
                                         (Ast.IdAcc (_loc,
 
10163
                                            (Ast.IdUid (_loc, "Ast")),
 
10164
                                            (Ast.IdUid (_loc, "CtCol")))))),
 
10165
                                      (meta_loc _loc x0))),
 
10166
                                   (meta_class_type _loc x1))),
 
10167
                                (meta_class_type _loc x2))
9707
10168
                          | Ast.CtAnd (x0, x1, x2) ->
9708
10169
                              Ast.PaApp (_loc,
9709
 
                                Ast.PaApp (_loc,
9710
 
                                  Ast.PaApp (_loc,
9711
 
                                    Ast.PaId (_loc,
9712
 
                                      Ast.IdAcc (_loc,
9713
 
                                        Ast.IdUid (_loc, "Ast"),
9714
 
                                        Ast.IdUid (_loc, "CtAnd"))),
9715
 
                                    meta_loc _loc x0),
9716
 
                                  meta_class_type _loc x1),
9717
 
                                meta_class_type _loc x2)
 
10170
                                (Ast.PaApp (_loc,
 
10171
                                   (Ast.PaApp (_loc,
 
10172
                                      (Ast.PaId (_loc,
 
10173
                                         (Ast.IdAcc (_loc,
 
10174
                                            (Ast.IdUid (_loc, "Ast")),
 
10175
                                            (Ast.IdUid (_loc, "CtAnd")))))),
 
10176
                                      (meta_loc _loc x0))),
 
10177
                                   (meta_class_type _loc x1))),
 
10178
                                (meta_class_type _loc x2))
9718
10179
                          | Ast.CtSig (x0, x1, x2) ->
9719
10180
                              Ast.PaApp (_loc,
9720
 
                                Ast.PaApp (_loc,
9721
 
                                  Ast.PaApp (_loc,
9722
 
                                    Ast.PaId (_loc,
9723
 
                                      Ast.IdAcc (_loc,
9724
 
                                        Ast.IdUid (_loc, "Ast"),
9725
 
                                        Ast.IdUid (_loc, "CtSig"))),
9726
 
                                    meta_loc _loc x0),
9727
 
                                  meta_ctyp _loc x1),
9728
 
                                meta_class_sig_item _loc x2)
 
10181
                                (Ast.PaApp (_loc,
 
10182
                                   (Ast.PaApp (_loc,
 
10183
                                      (Ast.PaId (_loc,
 
10184
                                         (Ast.IdAcc (_loc,
 
10185
                                            (Ast.IdUid (_loc, "Ast")),
 
10186
                                            (Ast.IdUid (_loc, "CtSig")))))),
 
10187
                                      (meta_loc _loc x0))),
 
10188
                                   (meta_ctyp _loc x1))),
 
10189
                                (meta_class_sig_item _loc x2))
9729
10190
                          | Ast.CtFun (x0, x1, x2) ->
9730
10191
                              Ast.PaApp (_loc,
9731
 
                                Ast.PaApp (_loc,
9732
 
                                  Ast.PaApp (_loc,
9733
 
                                    Ast.PaId (_loc,
9734
 
                                      Ast.IdAcc (_loc,
9735
 
                                        Ast.IdUid (_loc, "Ast"),
9736
 
                                        Ast.IdUid (_loc, "CtFun"))),
9737
 
                                    meta_loc _loc x0),
9738
 
                                  meta_ctyp _loc x1),
9739
 
                                meta_class_type _loc x2)
 
10192
                                (Ast.PaApp (_loc,
 
10193
                                   (Ast.PaApp (_loc,
 
10194
                                      (Ast.PaId (_loc,
 
10195
                                         (Ast.IdAcc (_loc,
 
10196
                                            (Ast.IdUid (_loc, "Ast")),
 
10197
                                            (Ast.IdUid (_loc, "CtFun")))))),
 
10198
                                      (meta_loc _loc x0))),
 
10199
                                   (meta_ctyp _loc x1))),
 
10200
                                (meta_class_type _loc x2))
9740
10201
                          | Ast.CtCon (x0, x1, x2, x3) ->
9741
10202
                              Ast.PaApp (_loc,
9742
 
                                Ast.PaApp (_loc,
9743
 
                                  Ast.PaApp (_loc,
9744
 
                                    Ast.PaApp (_loc,
9745
 
                                      Ast.PaId (_loc,
9746
 
                                        Ast.IdAcc (_loc,
9747
 
                                          Ast.IdUid (_loc, "Ast"),
9748
 
                                          Ast.IdUid (_loc, "CtCon"))),
9749
 
                                      meta_loc _loc x0),
9750
 
                                    meta_meta_bool _loc x1),
9751
 
                                  meta_ident _loc x2),
9752
 
                                meta_ctyp _loc x3)
 
10203
                                (Ast.PaApp (_loc,
 
10204
                                   (Ast.PaApp (_loc,
 
10205
                                      (Ast.PaApp (_loc,
 
10206
                                         (Ast.PaId (_loc,
 
10207
                                            (Ast.IdAcc (_loc,
 
10208
                                               (Ast.IdUid (_loc, "Ast")),
 
10209
                                               (Ast.IdUid (_loc, "CtCon")))))),
 
10210
                                         (meta_loc _loc x0))),
 
10211
                                      (meta_virtual_flag _loc x1))),
 
10212
                                   (meta_ident _loc x2))),
 
10213
                                (meta_ctyp _loc x3))
9753
10214
                          | Ast.CtNil x0 ->
9754
10215
                              Ast.PaApp (_loc,
9755
 
                                Ast.PaId (_loc,
9756
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9757
 
                                    Ast.IdUid (_loc, "CtNil"))),
9758
 
                                meta_loc _loc x0)
 
10216
                                (Ast.PaId (_loc,
 
10217
                                   (Ast.IdAcc (_loc,
 
10218
                                      (Ast.IdUid (_loc, "Ast")),
 
10219
                                      (Ast.IdUid (_loc, "CtNil")))))),
 
10220
                                (meta_loc _loc x0))
9759
10221
                        and meta_ctyp _loc =
9760
10222
                          function
9761
10223
                          | Ast.TyAnt (x0, x1) -> Ast.PaAnt (x0, x1)
 
10224
                          | Ast.TyPkg (x0, x1) ->
 
10225
                              Ast.PaApp (_loc,
 
10226
                                (Ast.PaApp (_loc,
 
10227
                                   (Ast.PaId (_loc,
 
10228
                                      (Ast.IdAcc (_loc,
 
10229
                                         (Ast.IdUid (_loc, "Ast")),
 
10230
                                         (Ast.IdUid (_loc, "TyPkg")))))),
 
10231
                                   (meta_loc _loc x0))),
 
10232
                                (meta_module_type _loc x1))
9762
10233
                          | Ast.TyOfAmp (x0, x1, x2) ->
9763
10234
                              Ast.PaApp (_loc,
9764
 
                                Ast.PaApp (_loc,
9765
 
                                  Ast.PaApp (_loc,
9766
 
                                    Ast.PaId (_loc,
9767
 
                                      Ast.IdAcc (_loc,
9768
 
                                        Ast.IdUid (_loc, "Ast"),
9769
 
                                        Ast.IdUid (_loc, "TyOfAmp"))),
9770
 
                                    meta_loc _loc x0),
9771
 
                                  meta_ctyp _loc x1),
9772
 
                                meta_ctyp _loc x2)
 
10235
                                (Ast.PaApp (_loc,
 
10236
                                   (Ast.PaApp (_loc,
 
10237
                                      (Ast.PaId (_loc,
 
10238
                                         (Ast.IdAcc (_loc,
 
10239
                                            (Ast.IdUid (_loc, "Ast")),
 
10240
                                            (Ast.IdUid (_loc, "TyOfAmp")))))),
 
10241
                                      (meta_loc _loc x0))),
 
10242
                                   (meta_ctyp _loc x1))),
 
10243
                                (meta_ctyp _loc x2))
9773
10244
                          | Ast.TyAmp (x0, x1, x2) ->
9774
10245
                              Ast.PaApp (_loc,
9775
 
                                Ast.PaApp (_loc,
9776
 
                                  Ast.PaApp (_loc,
9777
 
                                    Ast.PaId (_loc,
9778
 
                                      Ast.IdAcc (_loc,
9779
 
                                        Ast.IdUid (_loc, "Ast"),
9780
 
                                        Ast.IdUid (_loc, "TyAmp"))),
9781
 
                                    meta_loc _loc x0),
9782
 
                                  meta_ctyp _loc x1),
9783
 
                                meta_ctyp _loc x2)
 
10246
                                (Ast.PaApp (_loc,
 
10247
                                   (Ast.PaApp (_loc,
 
10248
                                      (Ast.PaId (_loc,
 
10249
                                         (Ast.IdAcc (_loc,
 
10250
                                            (Ast.IdUid (_loc, "Ast")),
 
10251
                                            (Ast.IdUid (_loc, "TyAmp")))))),
 
10252
                                      (meta_loc _loc x0))),
 
10253
                                   (meta_ctyp _loc x1))),
 
10254
                                (meta_ctyp _loc x2))
9784
10255
                          | Ast.TyVrnInfSup (x0, x1, x2) ->
9785
10256
                              Ast.PaApp (_loc,
9786
 
                                Ast.PaApp (_loc,
9787
 
                                  Ast.PaApp (_loc,
9788
 
                                    Ast.PaId (_loc,
9789
 
                                      Ast.IdAcc (_loc,
9790
 
                                        Ast.IdUid (_loc, "Ast"),
9791
 
                                        Ast.IdUid (_loc, "TyVrnInfSup"))),
9792
 
                                    meta_loc _loc x0),
9793
 
                                  meta_ctyp _loc x1),
9794
 
                                meta_ctyp _loc x2)
 
10257
                                (Ast.PaApp (_loc,
 
10258
                                   (Ast.PaApp (_loc,
 
10259
                                      (Ast.PaId (_loc,
 
10260
                                         (Ast.IdAcc (_loc,
 
10261
                                            (Ast.IdUid (_loc, "Ast")),
 
10262
                                            (Ast.IdUid (_loc, "TyVrnInfSup")))))),
 
10263
                                      (meta_loc _loc x0))),
 
10264
                                   (meta_ctyp _loc x1))),
 
10265
                                (meta_ctyp _loc x2))
9795
10266
                          | Ast.TyVrnInf (x0, x1) ->
9796
10267
                              Ast.PaApp (_loc,
9797
 
                                Ast.PaApp (_loc,
9798
 
                                  Ast.PaId (_loc,
9799
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9800
 
                                      Ast.IdUid (_loc, "TyVrnInf"))),
9801
 
                                  meta_loc _loc x0),
9802
 
                                meta_ctyp _loc x1)
 
10268
                                (Ast.PaApp (_loc,
 
10269
                                   (Ast.PaId (_loc,
 
10270
                                      (Ast.IdAcc (_loc,
 
10271
                                         (Ast.IdUid (_loc, "Ast")),
 
10272
                                         (Ast.IdUid (_loc, "TyVrnInf")))))),
 
10273
                                   (meta_loc _loc x0))),
 
10274
                                (meta_ctyp _loc x1))
9803
10275
                          | Ast.TyVrnSup (x0, x1) ->
9804
10276
                              Ast.PaApp (_loc,
9805
 
                                Ast.PaApp (_loc,
9806
 
                                  Ast.PaId (_loc,
9807
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9808
 
                                      Ast.IdUid (_loc, "TyVrnSup"))),
9809
 
                                  meta_loc _loc x0),
9810
 
                                meta_ctyp _loc x1)
 
10277
                                (Ast.PaApp (_loc,
 
10278
                                   (Ast.PaId (_loc,
 
10279
                                      (Ast.IdAcc (_loc,
 
10280
                                         (Ast.IdUid (_loc, "Ast")),
 
10281
                                         (Ast.IdUid (_loc, "TyVrnSup")))))),
 
10282
                                   (meta_loc _loc x0))),
 
10283
                                (meta_ctyp _loc x1))
9811
10284
                          | Ast.TyVrnEq (x0, x1) ->
9812
10285
                              Ast.PaApp (_loc,
9813
 
                                Ast.PaApp (_loc,
9814
 
                                  Ast.PaId (_loc,
9815
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9816
 
                                      Ast.IdUid (_loc, "TyVrnEq"))),
9817
 
                                  meta_loc _loc x0),
9818
 
                                meta_ctyp _loc x1)
 
10286
                                (Ast.PaApp (_loc,
 
10287
                                   (Ast.PaId (_loc,
 
10288
                                      (Ast.IdAcc (_loc,
 
10289
                                         (Ast.IdUid (_loc, "Ast")),
 
10290
                                         (Ast.IdUid (_loc, "TyVrnEq")))))),
 
10291
                                   (meta_loc _loc x0))),
 
10292
                                (meta_ctyp _loc x1))
9819
10293
                          | Ast.TySta (x0, x1, x2) ->
9820
10294
                              Ast.PaApp (_loc,
9821
 
                                Ast.PaApp (_loc,
9822
 
                                  Ast.PaApp (_loc,
9823
 
                                    Ast.PaId (_loc,
9824
 
                                      Ast.IdAcc (_loc,
9825
 
                                        Ast.IdUid (_loc, "Ast"),
9826
 
                                        Ast.IdUid (_loc, "TySta"))),
9827
 
                                    meta_loc _loc x0),
9828
 
                                  meta_ctyp _loc x1),
9829
 
                                meta_ctyp _loc x2)
 
10295
                                (Ast.PaApp (_loc,
 
10296
                                   (Ast.PaApp (_loc,
 
10297
                                      (Ast.PaId (_loc,
 
10298
                                         (Ast.IdAcc (_loc,
 
10299
                                            (Ast.IdUid (_loc, "Ast")),
 
10300
                                            (Ast.IdUid (_loc, "TySta")))))),
 
10301
                                      (meta_loc _loc x0))),
 
10302
                                   (meta_ctyp _loc x1))),
 
10303
                                (meta_ctyp _loc x2))
9830
10304
                          | Ast.TyTup (x0, x1) ->
9831
10305
                              Ast.PaApp (_loc,
9832
 
                                Ast.PaApp (_loc,
9833
 
                                  Ast.PaId (_loc,
9834
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9835
 
                                      Ast.IdUid (_loc, "TyTup"))),
9836
 
                                  meta_loc _loc x0),
9837
 
                                meta_ctyp _loc x1)
 
10306
                                (Ast.PaApp (_loc,
 
10307
                                   (Ast.PaId (_loc,
 
10308
                                      (Ast.IdAcc (_loc,
 
10309
                                         (Ast.IdUid (_loc, "Ast")),
 
10310
                                         (Ast.IdUid (_loc, "TyTup")))))),
 
10311
                                   (meta_loc _loc x0))),
 
10312
                                (meta_ctyp _loc x1))
9838
10313
                          | Ast.TyMut (x0, x1) ->
9839
10314
                              Ast.PaApp (_loc,
9840
 
                                Ast.PaApp (_loc,
9841
 
                                  Ast.PaId (_loc,
9842
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9843
 
                                      Ast.IdUid (_loc, "TyMut"))),
9844
 
                                  meta_loc _loc x0),
9845
 
                                meta_ctyp _loc x1)
 
10315
                                (Ast.PaApp (_loc,
 
10316
                                   (Ast.PaId (_loc,
 
10317
                                      (Ast.IdAcc (_loc,
 
10318
                                         (Ast.IdUid (_loc, "Ast")),
 
10319
                                         (Ast.IdUid (_loc, "TyMut")))))),
 
10320
                                   (meta_loc _loc x0))),
 
10321
                                (meta_ctyp _loc x1))
9846
10322
                          | Ast.TyPrv (x0, x1) ->
9847
10323
                              Ast.PaApp (_loc,
9848
 
                                Ast.PaApp (_loc,
9849
 
                                  Ast.PaId (_loc,
9850
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9851
 
                                      Ast.IdUid (_loc, "TyPrv"))),
9852
 
                                  meta_loc _loc x0),
9853
 
                                meta_ctyp _loc x1)
 
10324
                                (Ast.PaApp (_loc,
 
10325
                                   (Ast.PaId (_loc,
 
10326
                                      (Ast.IdAcc (_loc,
 
10327
                                         (Ast.IdUid (_loc, "Ast")),
 
10328
                                         (Ast.IdUid (_loc, "TyPrv")))))),
 
10329
                                   (meta_loc _loc x0))),
 
10330
                                (meta_ctyp _loc x1))
9854
10331
                          | Ast.TyOr (x0, x1, x2) ->
9855
10332
                              Ast.PaApp (_loc,
9856
 
                                Ast.PaApp (_loc,
9857
 
                                  Ast.PaApp (_loc,
9858
 
                                    Ast.PaId (_loc,
9859
 
                                      Ast.IdAcc (_loc,
9860
 
                                        Ast.IdUid (_loc, "Ast"),
9861
 
                                        Ast.IdUid (_loc, "TyOr"))),
9862
 
                                    meta_loc _loc x0),
9863
 
                                  meta_ctyp _loc x1),
9864
 
                                meta_ctyp _loc x2)
 
10333
                                (Ast.PaApp (_loc,
 
10334
                                   (Ast.PaApp (_loc,
 
10335
                                      (Ast.PaId (_loc,
 
10336
                                         (Ast.IdAcc (_loc,
 
10337
                                            (Ast.IdUid (_loc, "Ast")),
 
10338
                                            (Ast.IdUid (_loc, "TyOr")))))),
 
10339
                                      (meta_loc _loc x0))),
 
10340
                                   (meta_ctyp _loc x1))),
 
10341
                                (meta_ctyp _loc x2))
9865
10342
                          | Ast.TyAnd (x0, x1, x2) ->
9866
10343
                              Ast.PaApp (_loc,
9867
 
                                Ast.PaApp (_loc,
9868
 
                                  Ast.PaApp (_loc,
9869
 
                                    Ast.PaId (_loc,
9870
 
                                      Ast.IdAcc (_loc,
9871
 
                                        Ast.IdUid (_loc, "Ast"),
9872
 
                                        Ast.IdUid (_loc, "TyAnd"))),
9873
 
                                    meta_loc _loc x0),
9874
 
                                  meta_ctyp _loc x1),
9875
 
                                meta_ctyp _loc x2)
 
10344
                                (Ast.PaApp (_loc,
 
10345
                                   (Ast.PaApp (_loc,
 
10346
                                      (Ast.PaId (_loc,
 
10347
                                         (Ast.IdAcc (_loc,
 
10348
                                            (Ast.IdUid (_loc, "Ast")),
 
10349
                                            (Ast.IdUid (_loc, "TyAnd")))))),
 
10350
                                      (meta_loc _loc x0))),
 
10351
                                   (meta_ctyp _loc x1))),
 
10352
                                (meta_ctyp _loc x2))
9876
10353
                          | Ast.TyOf (x0, x1, x2) ->
9877
10354
                              Ast.PaApp (_loc,
9878
 
                                Ast.PaApp (_loc,
9879
 
                                  Ast.PaApp (_loc,
9880
 
                                    Ast.PaId (_loc,
9881
 
                                      Ast.IdAcc (_loc,
9882
 
                                        Ast.IdUid (_loc, "Ast"),
9883
 
                                        Ast.IdUid (_loc, "TyOf"))),
9884
 
                                    meta_loc _loc x0),
9885
 
                                  meta_ctyp _loc x1),
9886
 
                                meta_ctyp _loc x2)
 
10355
                                (Ast.PaApp (_loc,
 
10356
                                   (Ast.PaApp (_loc,
 
10357
                                      (Ast.PaId (_loc,
 
10358
                                         (Ast.IdAcc (_loc,
 
10359
                                            (Ast.IdUid (_loc, "Ast")),
 
10360
                                            (Ast.IdUid (_loc, "TyOf")))))),
 
10361
                                      (meta_loc _loc x0))),
 
10362
                                   (meta_ctyp _loc x1))),
 
10363
                                (meta_ctyp _loc x2))
9887
10364
                          | Ast.TySum (x0, x1) ->
9888
10365
                              Ast.PaApp (_loc,
9889
 
                                Ast.PaApp (_loc,
9890
 
                                  Ast.PaId (_loc,
9891
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9892
 
                                      Ast.IdUid (_loc, "TySum"))),
9893
 
                                  meta_loc _loc x0),
9894
 
                                meta_ctyp _loc x1)
 
10366
                                (Ast.PaApp (_loc,
 
10367
                                   (Ast.PaId (_loc,
 
10368
                                      (Ast.IdAcc (_loc,
 
10369
                                         (Ast.IdUid (_loc, "Ast")),
 
10370
                                         (Ast.IdUid (_loc, "TySum")))))),
 
10371
                                   (meta_loc _loc x0))),
 
10372
                                (meta_ctyp _loc x1))
9895
10373
                          | Ast.TyCom (x0, x1, x2) ->
9896
10374
                              Ast.PaApp (_loc,
9897
 
                                Ast.PaApp (_loc,
9898
 
                                  Ast.PaApp (_loc,
9899
 
                                    Ast.PaId (_loc,
9900
 
                                      Ast.IdAcc (_loc,
9901
 
                                        Ast.IdUid (_loc, "Ast"),
9902
 
                                        Ast.IdUid (_loc, "TyCom"))),
9903
 
                                    meta_loc _loc x0),
9904
 
                                  meta_ctyp _loc x1),
9905
 
                                meta_ctyp _loc x2)
 
10375
                                (Ast.PaApp (_loc,
 
10376
                                   (Ast.PaApp (_loc,
 
10377
                                      (Ast.PaId (_loc,
 
10378
                                         (Ast.IdAcc (_loc,
 
10379
                                            (Ast.IdUid (_loc, "Ast")),
 
10380
                                            (Ast.IdUid (_loc, "TyCom")))))),
 
10381
                                      (meta_loc _loc x0))),
 
10382
                                   (meta_ctyp _loc x1))),
 
10383
                                (meta_ctyp _loc x2))
9906
10384
                          | Ast.TySem (x0, x1, x2) ->
9907
10385
                              Ast.PaApp (_loc,
9908
 
                                Ast.PaApp (_loc,
9909
 
                                  Ast.PaApp (_loc,
9910
 
                                    Ast.PaId (_loc,
9911
 
                                      Ast.IdAcc (_loc,
9912
 
                                        Ast.IdUid (_loc, "Ast"),
9913
 
                                        Ast.IdUid (_loc, "TySem"))),
9914
 
                                    meta_loc _loc x0),
9915
 
                                  meta_ctyp _loc x1),
9916
 
                                meta_ctyp _loc x2)
 
10386
                                (Ast.PaApp (_loc,
 
10387
                                   (Ast.PaApp (_loc,
 
10388
                                      (Ast.PaId (_loc,
 
10389
                                         (Ast.IdAcc (_loc,
 
10390
                                            (Ast.IdUid (_loc, "Ast")),
 
10391
                                            (Ast.IdUid (_loc, "TySem")))))),
 
10392
                                      (meta_loc _loc x0))),
 
10393
                                   (meta_ctyp _loc x1))),
 
10394
                                (meta_ctyp _loc x2))
9917
10395
                          | Ast.TyCol (x0, x1, x2) ->
9918
10396
                              Ast.PaApp (_loc,
9919
 
                                Ast.PaApp (_loc,
9920
 
                                  Ast.PaApp (_loc,
9921
 
                                    Ast.PaId (_loc,
9922
 
                                      Ast.IdAcc (_loc,
9923
 
                                        Ast.IdUid (_loc, "Ast"),
9924
 
                                        Ast.IdUid (_loc, "TyCol"))),
9925
 
                                    meta_loc _loc x0),
9926
 
                                  meta_ctyp _loc x1),
9927
 
                                meta_ctyp _loc x2)
 
10397
                                (Ast.PaApp (_loc,
 
10398
                                   (Ast.PaApp (_loc,
 
10399
                                      (Ast.PaId (_loc,
 
10400
                                         (Ast.IdAcc (_loc,
 
10401
                                            (Ast.IdUid (_loc, "Ast")),
 
10402
                                            (Ast.IdUid (_loc, "TyCol")))))),
 
10403
                                      (meta_loc _loc x0))),
 
10404
                                   (meta_ctyp _loc x1))),
 
10405
                                (meta_ctyp _loc x2))
9928
10406
                          | Ast.TyRec (x0, x1) ->
9929
10407
                              Ast.PaApp (_loc,
9930
 
                                Ast.PaApp (_loc,
9931
 
                                  Ast.PaId (_loc,
9932
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9933
 
                                      Ast.IdUid (_loc, "TyRec"))),
9934
 
                                  meta_loc _loc x0),
9935
 
                                meta_ctyp _loc x1)
 
10408
                                (Ast.PaApp (_loc,
 
10409
                                   (Ast.PaId (_loc,
 
10410
                                      (Ast.IdAcc (_loc,
 
10411
                                         (Ast.IdUid (_loc, "Ast")),
 
10412
                                         (Ast.IdUid (_loc, "TyRec")))))),
 
10413
                                   (meta_loc _loc x0))),
 
10414
                                (meta_ctyp _loc x1))
9936
10415
                          | Ast.TyVrn (x0, x1) ->
9937
10416
                              Ast.PaApp (_loc,
9938
 
                                Ast.PaApp (_loc,
9939
 
                                  Ast.PaId (_loc,
9940
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9941
 
                                      Ast.IdUid (_loc, "TyVrn"))),
9942
 
                                  meta_loc _loc x0),
9943
 
                                meta_string _loc x1)
 
10417
                                (Ast.PaApp (_loc,
 
10418
                                   (Ast.PaId (_loc,
 
10419
                                      (Ast.IdAcc (_loc,
 
10420
                                         (Ast.IdUid (_loc, "Ast")),
 
10421
                                         (Ast.IdUid (_loc, "TyVrn")))))),
 
10422
                                   (meta_loc _loc x0))),
 
10423
                                (meta_string _loc x1))
9944
10424
                          | Ast.TyQuM (x0, x1) ->
9945
10425
                              Ast.PaApp (_loc,
9946
 
                                Ast.PaApp (_loc,
9947
 
                                  Ast.PaId (_loc,
9948
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9949
 
                                      Ast.IdUid (_loc, "TyQuM"))),
9950
 
                                  meta_loc _loc x0),
9951
 
                                meta_string _loc x1)
 
10426
                                (Ast.PaApp (_loc,
 
10427
                                   (Ast.PaId (_loc,
 
10428
                                      (Ast.IdAcc (_loc,
 
10429
                                         (Ast.IdUid (_loc, "Ast")),
 
10430
                                         (Ast.IdUid (_loc, "TyQuM")))))),
 
10431
                                   (meta_loc _loc x0))),
 
10432
                                (meta_string _loc x1))
9952
10433
                          | Ast.TyQuP (x0, x1) ->
9953
10434
                              Ast.PaApp (_loc,
9954
 
                                Ast.PaApp (_loc,
9955
 
                                  Ast.PaId (_loc,
9956
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9957
 
                                      Ast.IdUid (_loc, "TyQuP"))),
9958
 
                                  meta_loc _loc x0),
9959
 
                                meta_string _loc x1)
 
10435
                                (Ast.PaApp (_loc,
 
10436
                                   (Ast.PaId (_loc,
 
10437
                                      (Ast.IdAcc (_loc,
 
10438
                                         (Ast.IdUid (_loc, "Ast")),
 
10439
                                         (Ast.IdUid (_loc, "TyQuP")))))),
 
10440
                                   (meta_loc _loc x0))),
 
10441
                                (meta_string _loc x1))
9960
10442
                          | Ast.TyQuo (x0, x1) ->
9961
10443
                              Ast.PaApp (_loc,
9962
 
                                Ast.PaApp (_loc,
9963
 
                                  Ast.PaId (_loc,
9964
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
9965
 
                                      Ast.IdUid (_loc, "TyQuo"))),
9966
 
                                  meta_loc _loc x0),
9967
 
                                meta_string _loc x1)
 
10444
                                (Ast.PaApp (_loc,
 
10445
                                   (Ast.PaId (_loc,
 
10446
                                      (Ast.IdAcc (_loc,
 
10447
                                         (Ast.IdUid (_loc, "Ast")),
 
10448
                                         (Ast.IdUid (_loc, "TyQuo")))))),
 
10449
                                   (meta_loc _loc x0))),
 
10450
                                (meta_string _loc x1))
9968
10451
                          | Ast.TyPol (x0, x1, x2) ->
9969
10452
                              Ast.PaApp (_loc,
9970
 
                                Ast.PaApp (_loc,
9971
 
                                  Ast.PaApp (_loc,
9972
 
                                    Ast.PaId (_loc,
9973
 
                                      Ast.IdAcc (_loc,
9974
 
                                        Ast.IdUid (_loc, "Ast"),
9975
 
                                        Ast.IdUid (_loc, "TyPol"))),
9976
 
                                    meta_loc _loc x0),
9977
 
                                  meta_ctyp _loc x1),
9978
 
                                meta_ctyp _loc x2)
 
10453
                                (Ast.PaApp (_loc,
 
10454
                                   (Ast.PaApp (_loc,
 
10455
                                      (Ast.PaId (_loc,
 
10456
                                         (Ast.IdAcc (_loc,
 
10457
                                            (Ast.IdUid (_loc, "Ast")),
 
10458
                                            (Ast.IdUid (_loc, "TyPol")))))),
 
10459
                                      (meta_loc _loc x0))),
 
10460
                                   (meta_ctyp _loc x1))),
 
10461
                                (meta_ctyp _loc x2))
9979
10462
                          | Ast.TyOlb (x0, x1, x2) ->
9980
10463
                              Ast.PaApp (_loc,
9981
 
                                Ast.PaApp (_loc,
9982
 
                                  Ast.PaApp (_loc,
9983
 
                                    Ast.PaId (_loc,
9984
 
                                      Ast.IdAcc (_loc,
9985
 
                                        Ast.IdUid (_loc, "Ast"),
9986
 
                                        Ast.IdUid (_loc, "TyOlb"))),
9987
 
                                    meta_loc _loc x0),
9988
 
                                  meta_string _loc x1),
9989
 
                                meta_ctyp _loc x2)
 
10464
                                (Ast.PaApp (_loc,
 
10465
                                   (Ast.PaApp (_loc,
 
10466
                                      (Ast.PaId (_loc,
 
10467
                                         (Ast.IdAcc (_loc,
 
10468
                                            (Ast.IdUid (_loc, "Ast")),
 
10469
                                            (Ast.IdUid (_loc, "TyOlb")))))),
 
10470
                                      (meta_loc _loc x0))),
 
10471
                                   (meta_string _loc x1))),
 
10472
                                (meta_ctyp _loc x2))
9990
10473
                          | Ast.TyObj (x0, x1, x2) ->
9991
10474
                              Ast.PaApp (_loc,
9992
 
                                Ast.PaApp (_loc,
9993
 
                                  Ast.PaApp (_loc,
9994
 
                                    Ast.PaId (_loc,
9995
 
                                      Ast.IdAcc (_loc,
9996
 
                                        Ast.IdUid (_loc, "Ast"),
9997
 
                                        Ast.IdUid (_loc, "TyObj"))),
9998
 
                                    meta_loc _loc x0),
9999
 
                                  meta_ctyp _loc x1),
10000
 
                                meta_meta_bool _loc x2)
 
10475
                                (Ast.PaApp (_loc,
 
10476
                                   (Ast.PaApp (_loc,
 
10477
                                      (Ast.PaId (_loc,
 
10478
                                         (Ast.IdAcc (_loc,
 
10479
                                            (Ast.IdUid (_loc, "Ast")),
 
10480
                                            (Ast.IdUid (_loc, "TyObj")))))),
 
10481
                                      (meta_loc _loc x0))),
 
10482
                                   (meta_ctyp _loc x1))),
 
10483
                                (meta_row_var_flag _loc x2))
10001
10484
                          | Ast.TyDcl (x0, x1, x2, x3, x4) ->
10002
10485
                              Ast.PaApp (_loc,
10003
 
                                Ast.PaApp (_loc,
10004
 
                                  Ast.PaApp (_loc,
10005
 
                                    Ast.PaApp (_loc,
10006
 
                                      Ast.PaApp (_loc,
10007
 
                                        Ast.PaId (_loc,
10008
 
                                          Ast.IdAcc (_loc,
10009
 
                                            Ast.IdUid (_loc, "Ast"),
10010
 
                                            Ast.IdUid (_loc, "TyDcl"))),
10011
 
                                        meta_loc _loc x0),
10012
 
                                      meta_string _loc x1),
10013
 
                                    meta_list meta_ctyp _loc x2),
10014
 
                                  meta_ctyp _loc x3),
10015
 
                                meta_list
10016
 
                                  (fun _loc (x1, x2) ->
10017
 
                                     Ast.PaTup (_loc,
10018
 
                                       Ast.PaCom (_loc, meta_ctyp _loc x1,
10019
 
                                         meta_ctyp _loc x2)))
10020
 
                                  _loc x4)
 
10486
                                (Ast.PaApp (_loc,
 
10487
                                   (Ast.PaApp (_loc,
 
10488
                                      (Ast.PaApp (_loc,
 
10489
                                         (Ast.PaApp (_loc,
 
10490
                                            (Ast.PaId (_loc,
 
10491
                                               (Ast.IdAcc (_loc,
 
10492
                                                  (Ast.IdUid (_loc, "Ast")),
 
10493
                                                  (Ast.IdUid (_loc, "TyDcl")))))),
 
10494
                                            (meta_loc _loc x0))),
 
10495
                                         (meta_string _loc x1))),
 
10496
                                      (meta_list meta_ctyp _loc x2))),
 
10497
                                   (meta_ctyp _loc x3))),
 
10498
                                (meta_list
 
10499
                                   (fun _loc (x1, x2) ->
 
10500
                                      Ast.PaTup (_loc,
 
10501
                                        (Ast.PaCom (_loc,
 
10502
                                           (meta_ctyp _loc x1),
 
10503
                                           (meta_ctyp _loc x2)))))
 
10504
                                   _loc x4))
10021
10505
                          | Ast.TyMan (x0, x1, x2) ->
10022
10506
                              Ast.PaApp (_loc,
10023
 
                                Ast.PaApp (_loc,
10024
 
                                  Ast.PaApp (_loc,
10025
 
                                    Ast.PaId (_loc,
10026
 
                                      Ast.IdAcc (_loc,
10027
 
                                        Ast.IdUid (_loc, "Ast"),
10028
 
                                        Ast.IdUid (_loc, "TyMan"))),
10029
 
                                    meta_loc _loc x0),
10030
 
                                  meta_ctyp _loc x1),
10031
 
                                meta_ctyp _loc x2)
 
10507
                                (Ast.PaApp (_loc,
 
10508
                                   (Ast.PaApp (_loc,
 
10509
                                      (Ast.PaId (_loc,
 
10510
                                         (Ast.IdAcc (_loc,
 
10511
                                            (Ast.IdUid (_loc, "Ast")),
 
10512
                                            (Ast.IdUid (_loc, "TyMan")))))),
 
10513
                                      (meta_loc _loc x0))),
 
10514
                                   (meta_ctyp _loc x1))),
 
10515
                                (meta_ctyp _loc x2))
10032
10516
                          | Ast.TyId (x0, x1) ->
10033
10517
                              Ast.PaApp (_loc,
10034
 
                                Ast.PaApp (_loc,
10035
 
                                  Ast.PaId (_loc,
10036
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10037
 
                                      Ast.IdUid (_loc, "TyId"))),
10038
 
                                  meta_loc _loc x0),
10039
 
                                meta_ident _loc x1)
 
10518
                                (Ast.PaApp (_loc,
 
10519
                                   (Ast.PaId (_loc,
 
10520
                                      (Ast.IdAcc (_loc,
 
10521
                                         (Ast.IdUid (_loc, "Ast")),
 
10522
                                         (Ast.IdUid (_loc, "TyId")))))),
 
10523
                                   (meta_loc _loc x0))),
 
10524
                                (meta_ident _loc x1))
10040
10525
                          | Ast.TyLab (x0, x1, x2) ->
10041
10526
                              Ast.PaApp (_loc,
10042
 
                                Ast.PaApp (_loc,
10043
 
                                  Ast.PaApp (_loc,
10044
 
                                    Ast.PaId (_loc,
10045
 
                                      Ast.IdAcc (_loc,
10046
 
                                        Ast.IdUid (_loc, "Ast"),
10047
 
                                        Ast.IdUid (_loc, "TyLab"))),
10048
 
                                    meta_loc _loc x0),
10049
 
                                  meta_string _loc x1),
10050
 
                                meta_ctyp _loc x2)
 
10527
                                (Ast.PaApp (_loc,
 
10528
                                   (Ast.PaApp (_loc,
 
10529
                                      (Ast.PaId (_loc,
 
10530
                                         (Ast.IdAcc (_loc,
 
10531
                                            (Ast.IdUid (_loc, "Ast")),
 
10532
                                            (Ast.IdUid (_loc, "TyLab")))))),
 
10533
                                      (meta_loc _loc x0))),
 
10534
                                   (meta_string _loc x1))),
 
10535
                                (meta_ctyp _loc x2))
10051
10536
                          | Ast.TyCls (x0, x1) ->
10052
10537
                              Ast.PaApp (_loc,
10053
 
                                Ast.PaApp (_loc,
10054
 
                                  Ast.PaId (_loc,
10055
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10056
 
                                      Ast.IdUid (_loc, "TyCls"))),
10057
 
                                  meta_loc _loc x0),
10058
 
                                meta_ident _loc x1)
 
10538
                                (Ast.PaApp (_loc,
 
10539
                                   (Ast.PaId (_loc,
 
10540
                                      (Ast.IdAcc (_loc,
 
10541
                                         (Ast.IdUid (_loc, "Ast")),
 
10542
                                         (Ast.IdUid (_loc, "TyCls")))))),
 
10543
                                   (meta_loc _loc x0))),
 
10544
                                (meta_ident _loc x1))
10059
10545
                          | Ast.TyArr (x0, x1, x2) ->
10060
10546
                              Ast.PaApp (_loc,
10061
 
                                Ast.PaApp (_loc,
10062
 
                                  Ast.PaApp (_loc,
10063
 
                                    Ast.PaId (_loc,
10064
 
                                      Ast.IdAcc (_loc,
10065
 
                                        Ast.IdUid (_loc, "Ast"),
10066
 
                                        Ast.IdUid (_loc, "TyArr"))),
10067
 
                                    meta_loc _loc x0),
10068
 
                                  meta_ctyp _loc x1),
10069
 
                                meta_ctyp _loc x2)
 
10547
                                (Ast.PaApp (_loc,
 
10548
                                   (Ast.PaApp (_loc,
 
10549
                                      (Ast.PaId (_loc,
 
10550
                                         (Ast.IdAcc (_loc,
 
10551
                                            (Ast.IdUid (_loc, "Ast")),
 
10552
                                            (Ast.IdUid (_loc, "TyArr")))))),
 
10553
                                      (meta_loc _loc x0))),
 
10554
                                   (meta_ctyp _loc x1))),
 
10555
                                (meta_ctyp _loc x2))
10070
10556
                          | Ast.TyApp (x0, x1, x2) ->
10071
10557
                              Ast.PaApp (_loc,
10072
 
                                Ast.PaApp (_loc,
10073
 
                                  Ast.PaApp (_loc,
10074
 
                                    Ast.PaId (_loc,
10075
 
                                      Ast.IdAcc (_loc,
10076
 
                                        Ast.IdUid (_loc, "Ast"),
10077
 
                                        Ast.IdUid (_loc, "TyApp"))),
10078
 
                                    meta_loc _loc x0),
10079
 
                                  meta_ctyp _loc x1),
10080
 
                                meta_ctyp _loc x2)
 
10558
                                (Ast.PaApp (_loc,
 
10559
                                   (Ast.PaApp (_loc,
 
10560
                                      (Ast.PaId (_loc,
 
10561
                                         (Ast.IdAcc (_loc,
 
10562
                                            (Ast.IdUid (_loc, "Ast")),
 
10563
                                            (Ast.IdUid (_loc, "TyApp")))))),
 
10564
                                      (meta_loc _loc x0))),
 
10565
                                   (meta_ctyp _loc x1))),
 
10566
                                (meta_ctyp _loc x2))
10081
10567
                          | Ast.TyAny x0 ->
10082
10568
                              Ast.PaApp (_loc,
10083
 
                                Ast.PaId (_loc,
10084
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10085
 
                                    Ast.IdUid (_loc, "TyAny"))),
10086
 
                                meta_loc _loc x0)
 
10569
                                (Ast.PaId (_loc,
 
10570
                                   (Ast.IdAcc (_loc,
 
10571
                                      (Ast.IdUid (_loc, "Ast")),
 
10572
                                      (Ast.IdUid (_loc, "TyAny")))))),
 
10573
                                (meta_loc _loc x0))
10087
10574
                          | Ast.TyAli (x0, x1, x2) ->
10088
10575
                              Ast.PaApp (_loc,
10089
 
                                Ast.PaApp (_loc,
10090
 
                                  Ast.PaApp (_loc,
10091
 
                                    Ast.PaId (_loc,
10092
 
                                      Ast.IdAcc (_loc,
10093
 
                                        Ast.IdUid (_loc, "Ast"),
10094
 
                                        Ast.IdUid (_loc, "TyAli"))),
10095
 
                                    meta_loc _loc x0),
10096
 
                                  meta_ctyp _loc x1),
10097
 
                                meta_ctyp _loc x2)
 
10576
                                (Ast.PaApp (_loc,
 
10577
                                   (Ast.PaApp (_loc,
 
10578
                                      (Ast.PaId (_loc,
 
10579
                                         (Ast.IdAcc (_loc,
 
10580
                                            (Ast.IdUid (_loc, "Ast")),
 
10581
                                            (Ast.IdUid (_loc, "TyAli")))))),
 
10582
                                      (meta_loc _loc x0))),
 
10583
                                   (meta_ctyp _loc x1))),
 
10584
                                (meta_ctyp _loc x2))
10098
10585
                          | Ast.TyNil x0 ->
10099
10586
                              Ast.PaApp (_loc,
10100
 
                                Ast.PaId (_loc,
10101
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10102
 
                                    Ast.IdUid (_loc, "TyNil"))),
10103
 
                                meta_loc _loc x0)
 
10587
                                (Ast.PaId (_loc,
 
10588
                                   (Ast.IdAcc (_loc,
 
10589
                                      (Ast.IdUid (_loc, "Ast")),
 
10590
                                      (Ast.IdUid (_loc, "TyNil")))))),
 
10591
                                (meta_loc _loc x0))
 
10592
                        and meta_direction_flag _loc =
 
10593
                          function
 
10594
                          | Ast.DiAnt x0 -> Ast.PaAnt (_loc, x0)
 
10595
                          | Ast.DiDownto ->
 
10596
                              Ast.PaId (_loc,
 
10597
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
10598
                                   (Ast.IdUid (_loc, "DiDownto")))))
 
10599
                          | Ast.DiTo ->
 
10600
                              Ast.PaId (_loc,
 
10601
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
10602
                                   (Ast.IdUid (_loc, "DiTo")))))
10104
10603
                        and meta_expr _loc =
10105
10604
                          function
 
10605
                          | Ast.ExPkg (x0, x1) ->
 
10606
                              Ast.PaApp (_loc,
 
10607
                                (Ast.PaApp (_loc,
 
10608
                                   (Ast.PaId (_loc,
 
10609
                                      (Ast.IdAcc (_loc,
 
10610
                                         (Ast.IdUid (_loc, "Ast")),
 
10611
                                         (Ast.IdUid (_loc, "ExPkg")))))),
 
10612
                                   (meta_loc _loc x0))),
 
10613
                                (meta_module_expr _loc x1))
 
10614
                          | Ast.ExFUN (x0, x1, x2) ->
 
10615
                              Ast.PaApp (_loc,
 
10616
                                (Ast.PaApp (_loc,
 
10617
                                   (Ast.PaApp (_loc,
 
10618
                                      (Ast.PaId (_loc,
 
10619
                                         (Ast.IdAcc (_loc,
 
10620
                                            (Ast.IdUid (_loc, "Ast")),
 
10621
                                            (Ast.IdUid (_loc, "ExFUN")))))),
 
10622
                                      (meta_loc _loc x0))),
 
10623
                                   (meta_string _loc x1))),
 
10624
                                (meta_expr _loc x2))
 
10625
                          | Ast.ExOpI (x0, x1, x2) ->
 
10626
                              Ast.PaApp (_loc,
 
10627
                                (Ast.PaApp (_loc,
 
10628
                                   (Ast.PaApp (_loc,
 
10629
                                      (Ast.PaId (_loc,
 
10630
                                         (Ast.IdAcc (_loc,
 
10631
                                            (Ast.IdUid (_loc, "Ast")),
 
10632
                                            (Ast.IdUid (_loc, "ExOpI")))))),
 
10633
                                      (meta_loc _loc x0))),
 
10634
                                   (meta_ident _loc x1))),
 
10635
                                (meta_expr _loc x2))
10106
10636
                          | Ast.ExWhi (x0, x1, x2) ->
10107
10637
                              Ast.PaApp (_loc,
10108
 
                                Ast.PaApp (_loc,
10109
 
                                  Ast.PaApp (_loc,
10110
 
                                    Ast.PaId (_loc,
10111
 
                                      Ast.IdAcc (_loc,
10112
 
                                        Ast.IdUid (_loc, "Ast"),
10113
 
                                        Ast.IdUid (_loc, "ExWhi"))),
10114
 
                                    meta_loc _loc x0),
10115
 
                                  meta_expr _loc x1),
10116
 
                                meta_expr _loc x2)
 
10638
                                (Ast.PaApp (_loc,
 
10639
                                   (Ast.PaApp (_loc,
 
10640
                                      (Ast.PaId (_loc,
 
10641
                                         (Ast.IdAcc (_loc,
 
10642
                                            (Ast.IdUid (_loc, "Ast")),
 
10643
                                            (Ast.IdUid (_loc, "ExWhi")))))),
 
10644
                                      (meta_loc _loc x0))),
 
10645
                                   (meta_expr _loc x1))),
 
10646
                                (meta_expr _loc x2))
10117
10647
                          | Ast.ExVrn (x0, x1) ->
10118
10648
                              Ast.PaApp (_loc,
10119
 
                                Ast.PaApp (_loc,
10120
 
                                  Ast.PaId (_loc,
10121
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10122
 
                                      Ast.IdUid (_loc, "ExVrn"))),
10123
 
                                  meta_loc _loc x0),
10124
 
                                meta_string _loc x1)
 
10649
                                (Ast.PaApp (_loc,
 
10650
                                   (Ast.PaId (_loc,
 
10651
                                      (Ast.IdAcc (_loc,
 
10652
                                         (Ast.IdUid (_loc, "Ast")),
 
10653
                                         (Ast.IdUid (_loc, "ExVrn")))))),
 
10654
                                   (meta_loc _loc x0))),
 
10655
                                (meta_string _loc x1))
10125
10656
                          | Ast.ExTyc (x0, x1, x2) ->
10126
10657
                              Ast.PaApp (_loc,
10127
 
                                Ast.PaApp (_loc,
10128
 
                                  Ast.PaApp (_loc,
10129
 
                                    Ast.PaId (_loc,
10130
 
                                      Ast.IdAcc (_loc,
10131
 
                                        Ast.IdUid (_loc, "Ast"),
10132
 
                                        Ast.IdUid (_loc, "ExTyc"))),
10133
 
                                    meta_loc _loc x0),
10134
 
                                  meta_expr _loc x1),
10135
 
                                meta_ctyp _loc x2)
 
10658
                                (Ast.PaApp (_loc,
 
10659
                                   (Ast.PaApp (_loc,
 
10660
                                      (Ast.PaId (_loc,
 
10661
                                         (Ast.IdAcc (_loc,
 
10662
                                            (Ast.IdUid (_loc, "Ast")),
 
10663
                                            (Ast.IdUid (_loc, "ExTyc")))))),
 
10664
                                      (meta_loc _loc x0))),
 
10665
                                   (meta_expr _loc x1))),
 
10666
                                (meta_ctyp _loc x2))
10136
10667
                          | Ast.ExCom (x0, x1, x2) ->
10137
10668
                              Ast.PaApp (_loc,
10138
 
                                Ast.PaApp (_loc,
10139
 
                                  Ast.PaApp (_loc,
10140
 
                                    Ast.PaId (_loc,
10141
 
                                      Ast.IdAcc (_loc,
10142
 
                                        Ast.IdUid (_loc, "Ast"),
10143
 
                                        Ast.IdUid (_loc, "ExCom"))),
10144
 
                                    meta_loc _loc x0),
10145
 
                                  meta_expr _loc x1),
10146
 
                                meta_expr _loc x2)
 
10669
                                (Ast.PaApp (_loc,
 
10670
                                   (Ast.PaApp (_loc,
 
10671
                                      (Ast.PaId (_loc,
 
10672
                                         (Ast.IdAcc (_loc,
 
10673
                                            (Ast.IdUid (_loc, "Ast")),
 
10674
                                            (Ast.IdUid (_loc, "ExCom")))))),
 
10675
                                      (meta_loc _loc x0))),
 
10676
                                   (meta_expr _loc x1))),
 
10677
                                (meta_expr _loc x2))
10147
10678
                          | Ast.ExTup (x0, x1) ->
10148
10679
                              Ast.PaApp (_loc,
10149
 
                                Ast.PaApp (_loc,
10150
 
                                  Ast.PaId (_loc,
10151
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10152
 
                                      Ast.IdUid (_loc, "ExTup"))),
10153
 
                                  meta_loc _loc x0),
10154
 
                                meta_expr _loc x1)
 
10680
                                (Ast.PaApp (_loc,
 
10681
                                   (Ast.PaId (_loc,
 
10682
                                      (Ast.IdAcc (_loc,
 
10683
                                         (Ast.IdUid (_loc, "Ast")),
 
10684
                                         (Ast.IdUid (_loc, "ExTup")))))),
 
10685
                                   (meta_loc _loc x0))),
 
10686
                                (meta_expr _loc x1))
10155
10687
                          | Ast.ExTry (x0, x1, x2) ->
10156
10688
                              Ast.PaApp (_loc,
10157
 
                                Ast.PaApp (_loc,
10158
 
                                  Ast.PaApp (_loc,
10159
 
                                    Ast.PaId (_loc,
10160
 
                                      Ast.IdAcc (_loc,
10161
 
                                        Ast.IdUid (_loc, "Ast"),
10162
 
                                        Ast.IdUid (_loc, "ExTry"))),
10163
 
                                    meta_loc _loc x0),
10164
 
                                  meta_expr _loc x1),
10165
 
                                meta_match_case _loc x2)
 
10689
                                (Ast.PaApp (_loc,
 
10690
                                   (Ast.PaApp (_loc,
 
10691
                                      (Ast.PaId (_loc,
 
10692
                                         (Ast.IdAcc (_loc,
 
10693
                                            (Ast.IdUid (_loc, "Ast")),
 
10694
                                            (Ast.IdUid (_loc, "ExTry")))))),
 
10695
                                      (meta_loc _loc x0))),
 
10696
                                   (meta_expr _loc x1))),
 
10697
                                (meta_match_case _loc x2))
10166
10698
                          | Ast.ExStr (x0, x1) ->
10167
10699
                              Ast.PaApp (_loc,
10168
 
                                Ast.PaApp (_loc,
10169
 
                                  Ast.PaId (_loc,
10170
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10171
 
                                      Ast.IdUid (_loc, "ExStr"))),
10172
 
                                  meta_loc _loc x0),
10173
 
                                meta_string _loc x1)
 
10700
                                (Ast.PaApp (_loc,
 
10701
                                   (Ast.PaId (_loc,
 
10702
                                      (Ast.IdAcc (_loc,
 
10703
                                         (Ast.IdUid (_loc, "Ast")),
 
10704
                                         (Ast.IdUid (_loc, "ExStr")))))),
 
10705
                                   (meta_loc _loc x0))),
 
10706
                                (meta_string _loc x1))
10174
10707
                          | Ast.ExSte (x0, x1, x2) ->
10175
10708
                              Ast.PaApp (_loc,
10176
 
                                Ast.PaApp (_loc,
10177
 
                                  Ast.PaApp (_loc,
10178
 
                                    Ast.PaId (_loc,
10179
 
                                      Ast.IdAcc (_loc,
10180
 
                                        Ast.IdUid (_loc, "Ast"),
10181
 
                                        Ast.IdUid (_loc, "ExSte"))),
10182
 
                                    meta_loc _loc x0),
10183
 
                                  meta_expr _loc x1),
10184
 
                                meta_expr _loc x2)
 
10709
                                (Ast.PaApp (_loc,
 
10710
                                   (Ast.PaApp (_loc,
 
10711
                                      (Ast.PaId (_loc,
 
10712
                                         (Ast.IdAcc (_loc,
 
10713
                                            (Ast.IdUid (_loc, "Ast")),
 
10714
                                            (Ast.IdUid (_loc, "ExSte")))))),
 
10715
                                      (meta_loc _loc x0))),
 
10716
                                   (meta_expr _loc x1))),
 
10717
                                (meta_expr _loc x2))
10185
10718
                          | Ast.ExSnd (x0, x1, x2) ->
10186
10719
                              Ast.PaApp (_loc,
10187
 
                                Ast.PaApp (_loc,
10188
 
                                  Ast.PaApp (_loc,
10189
 
                                    Ast.PaId (_loc,
10190
 
                                      Ast.IdAcc (_loc,
10191
 
                                        Ast.IdUid (_loc, "Ast"),
10192
 
                                        Ast.IdUid (_loc, "ExSnd"))),
10193
 
                                    meta_loc _loc x0),
10194
 
                                  meta_expr _loc x1),
10195
 
                                meta_string _loc x2)
 
10720
                                (Ast.PaApp (_loc,
 
10721
                                   (Ast.PaApp (_loc,
 
10722
                                      (Ast.PaId (_loc,
 
10723
                                         (Ast.IdAcc (_loc,
 
10724
                                            (Ast.IdUid (_loc, "Ast")),
 
10725
                                            (Ast.IdUid (_loc, "ExSnd")))))),
 
10726
                                      (meta_loc _loc x0))),
 
10727
                                   (meta_expr _loc x1))),
 
10728
                                (meta_string _loc x2))
10196
10729
                          | Ast.ExSeq (x0, x1) ->
10197
10730
                              Ast.PaApp (_loc,
10198
 
                                Ast.PaApp (_loc,
10199
 
                                  Ast.PaId (_loc,
10200
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10201
 
                                      Ast.IdUid (_loc, "ExSeq"))),
10202
 
                                  meta_loc _loc x0),
10203
 
                                meta_expr _loc x1)
 
10731
                                (Ast.PaApp (_loc,
 
10732
                                   (Ast.PaId (_loc,
 
10733
                                      (Ast.IdAcc (_loc,
 
10734
                                         (Ast.IdUid (_loc, "Ast")),
 
10735
                                         (Ast.IdUid (_loc, "ExSeq")))))),
 
10736
                                   (meta_loc _loc x0))),
 
10737
                                (meta_expr _loc x1))
10204
10738
                          | Ast.ExRec (x0, x1, x2) ->
10205
10739
                              Ast.PaApp (_loc,
10206
 
                                Ast.PaApp (_loc,
10207
 
                                  Ast.PaApp (_loc,
10208
 
                                    Ast.PaId (_loc,
10209
 
                                      Ast.IdAcc (_loc,
10210
 
                                        Ast.IdUid (_loc, "Ast"),
10211
 
                                        Ast.IdUid (_loc, "ExRec"))),
10212
 
                                    meta_loc _loc x0),
10213
 
                                  meta_rec_binding _loc x1),
10214
 
                                meta_expr _loc x2)
 
10740
                                (Ast.PaApp (_loc,
 
10741
                                   (Ast.PaApp (_loc,
 
10742
                                      (Ast.PaId (_loc,
 
10743
                                         (Ast.IdAcc (_loc,
 
10744
                                            (Ast.IdUid (_loc, "Ast")),
 
10745
                                            (Ast.IdUid (_loc, "ExRec")))))),
 
10746
                                      (meta_loc _loc x0))),
 
10747
                                   (meta_rec_binding _loc x1))),
 
10748
                                (meta_expr _loc x2))
10215
10749
                          | Ast.ExOvr (x0, x1) ->
10216
10750
                              Ast.PaApp (_loc,
10217
 
                                Ast.PaApp (_loc,
10218
 
                                  Ast.PaId (_loc,
10219
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10220
 
                                      Ast.IdUid (_loc, "ExOvr"))),
10221
 
                                  meta_loc _loc x0),
10222
 
                                meta_rec_binding _loc x1)
 
10751
                                (Ast.PaApp (_loc,
 
10752
                                   (Ast.PaId (_loc,
 
10753
                                      (Ast.IdAcc (_loc,
 
10754
                                         (Ast.IdUid (_loc, "Ast")),
 
10755
                                         (Ast.IdUid (_loc, "ExOvr")))))),
 
10756
                                   (meta_loc _loc x0))),
 
10757
                                (meta_rec_binding _loc x1))
10223
10758
                          | Ast.ExOlb (x0, x1, x2) ->
10224
10759
                              Ast.PaApp (_loc,
10225
 
                                Ast.PaApp (_loc,
10226
 
                                  Ast.PaApp (_loc,
10227
 
                                    Ast.PaId (_loc,
10228
 
                                      Ast.IdAcc (_loc,
10229
 
                                        Ast.IdUid (_loc, "Ast"),
10230
 
                                        Ast.IdUid (_loc, "ExOlb"))),
10231
 
                                    meta_loc _loc x0),
10232
 
                                  meta_string _loc x1),
10233
 
                                meta_expr _loc x2)
 
10760
                                (Ast.PaApp (_loc,
 
10761
                                   (Ast.PaApp (_loc,
 
10762
                                      (Ast.PaId (_loc,
 
10763
                                         (Ast.IdAcc (_loc,
 
10764
                                            (Ast.IdUid (_loc, "Ast")),
 
10765
                                            (Ast.IdUid (_loc, "ExOlb")))))),
 
10766
                                      (meta_loc _loc x0))),
 
10767
                                   (meta_string _loc x1))),
 
10768
                                (meta_expr _loc x2))
10234
10769
                          | Ast.ExObj (x0, x1, x2) ->
10235
10770
                              Ast.PaApp (_loc,
10236
 
                                Ast.PaApp (_loc,
10237
 
                                  Ast.PaApp (_loc,
10238
 
                                    Ast.PaId (_loc,
10239
 
                                      Ast.IdAcc (_loc,
10240
 
                                        Ast.IdUid (_loc, "Ast"),
10241
 
                                        Ast.IdUid (_loc, "ExObj"))),
10242
 
                                    meta_loc _loc x0),
10243
 
                                  meta_patt _loc x1),
10244
 
                                meta_class_str_item _loc x2)
 
10771
                                (Ast.PaApp (_loc,
 
10772
                                   (Ast.PaApp (_loc,
 
10773
                                      (Ast.PaId (_loc,
 
10774
                                         (Ast.IdAcc (_loc,
 
10775
                                            (Ast.IdUid (_loc, "Ast")),
 
10776
                                            (Ast.IdUid (_loc, "ExObj")))))),
 
10777
                                      (meta_loc _loc x0))),
 
10778
                                   (meta_patt _loc x1))),
 
10779
                                (meta_class_str_item _loc x2))
10245
10780
                          | Ast.ExNew (x0, x1) ->
10246
10781
                              Ast.PaApp (_loc,
10247
 
                                Ast.PaApp (_loc,
10248
 
                                  Ast.PaId (_loc,
10249
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10250
 
                                      Ast.IdUid (_loc, "ExNew"))),
10251
 
                                  meta_loc _loc x0),
10252
 
                                meta_ident _loc x1)
 
10782
                                (Ast.PaApp (_loc,
 
10783
                                   (Ast.PaId (_loc,
 
10784
                                      (Ast.IdAcc (_loc,
 
10785
                                         (Ast.IdUid (_loc, "Ast")),
 
10786
                                         (Ast.IdUid (_loc, "ExNew")))))),
 
10787
                                   (meta_loc _loc x0))),
 
10788
                                (meta_ident _loc x1))
10253
10789
                          | Ast.ExMat (x0, x1, x2) ->
10254
10790
                              Ast.PaApp (_loc,
10255
 
                                Ast.PaApp (_loc,
10256
 
                                  Ast.PaApp (_loc,
10257
 
                                    Ast.PaId (_loc,
10258
 
                                      Ast.IdAcc (_loc,
10259
 
                                        Ast.IdUid (_loc, "Ast"),
10260
 
                                        Ast.IdUid (_loc, "ExMat"))),
10261
 
                                    meta_loc _loc x0),
10262
 
                                  meta_expr _loc x1),
10263
 
                                meta_match_case _loc x2)
 
10791
                                (Ast.PaApp (_loc,
 
10792
                                   (Ast.PaApp (_loc,
 
10793
                                      (Ast.PaId (_loc,
 
10794
                                         (Ast.IdAcc (_loc,
 
10795
                                            (Ast.IdUid (_loc, "Ast")),
 
10796
                                            (Ast.IdUid (_loc, "ExMat")))))),
 
10797
                                      (meta_loc _loc x0))),
 
10798
                                   (meta_expr _loc x1))),
 
10799
                                (meta_match_case _loc x2))
10264
10800
                          | Ast.ExLmd (x0, x1, x2, x3) ->
10265
10801
                              Ast.PaApp (_loc,
10266
 
                                Ast.PaApp (_loc,
10267
 
                                  Ast.PaApp (_loc,
10268
 
                                    Ast.PaApp (_loc,
10269
 
                                      Ast.PaId (_loc,
10270
 
                                        Ast.IdAcc (_loc,
10271
 
                                          Ast.IdUid (_loc, "Ast"),
10272
 
                                          Ast.IdUid (_loc, "ExLmd"))),
10273
 
                                      meta_loc _loc x0),
10274
 
                                    meta_string _loc x1),
10275
 
                                  meta_module_expr _loc x2),
10276
 
                                meta_expr _loc x3)
 
10802
                                (Ast.PaApp (_loc,
 
10803
                                   (Ast.PaApp (_loc,
 
10804
                                      (Ast.PaApp (_loc,
 
10805
                                         (Ast.PaId (_loc,
 
10806
                                            (Ast.IdAcc (_loc,
 
10807
                                               (Ast.IdUid (_loc, "Ast")),
 
10808
                                               (Ast.IdUid (_loc, "ExLmd")))))),
 
10809
                                         (meta_loc _loc x0))),
 
10810
                                      (meta_string _loc x1))),
 
10811
                                   (meta_module_expr _loc x2))),
 
10812
                                (meta_expr _loc x3))
10277
10813
                          | Ast.ExLet (x0, x1, x2, x3) ->
10278
10814
                              Ast.PaApp (_loc,
10279
 
                                Ast.PaApp (_loc,
10280
 
                                  Ast.PaApp (_loc,
10281
 
                                    Ast.PaApp (_loc,
10282
 
                                      Ast.PaId (_loc,
10283
 
                                        Ast.IdAcc (_loc,
10284
 
                                          Ast.IdUid (_loc, "Ast"),
10285
 
                                          Ast.IdUid (_loc, "ExLet"))),
10286
 
                                      meta_loc _loc x0),
10287
 
                                    meta_meta_bool _loc x1),
10288
 
                                  meta_binding _loc x2),
10289
 
                                meta_expr _loc x3)
 
10815
                                (Ast.PaApp (_loc,
 
10816
                                   (Ast.PaApp (_loc,
 
10817
                                      (Ast.PaApp (_loc,
 
10818
                                         (Ast.PaId (_loc,
 
10819
                                            (Ast.IdAcc (_loc,
 
10820
                                               (Ast.IdUid (_loc, "Ast")),
 
10821
                                               (Ast.IdUid (_loc, "ExLet")))))),
 
10822
                                         (meta_loc _loc x0))),
 
10823
                                      (meta_rec_flag _loc x1))),
 
10824
                                   (meta_binding _loc x2))),
 
10825
                                (meta_expr _loc x3))
10290
10826
                          | Ast.ExLaz (x0, x1) ->
10291
10827
                              Ast.PaApp (_loc,
10292
 
                                Ast.PaApp (_loc,
10293
 
                                  Ast.PaId (_loc,
10294
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10295
 
                                      Ast.IdUid (_loc, "ExLaz"))),
10296
 
                                  meta_loc _loc x0),
10297
 
                                meta_expr _loc x1)
 
10828
                                (Ast.PaApp (_loc,
 
10829
                                   (Ast.PaId (_loc,
 
10830
                                      (Ast.IdAcc (_loc,
 
10831
                                         (Ast.IdUid (_loc, "Ast")),
 
10832
                                         (Ast.IdUid (_loc, "ExLaz")))))),
 
10833
                                   (meta_loc _loc x0))),
 
10834
                                (meta_expr _loc x1))
10298
10835
                          | Ast.ExLab (x0, x1, x2) ->
10299
10836
                              Ast.PaApp (_loc,
10300
 
                                Ast.PaApp (_loc,
10301
 
                                  Ast.PaApp (_loc,
10302
 
                                    Ast.PaId (_loc,
10303
 
                                      Ast.IdAcc (_loc,
10304
 
                                        Ast.IdUid (_loc, "Ast"),
10305
 
                                        Ast.IdUid (_loc, "ExLab"))),
10306
 
                                    meta_loc _loc x0),
10307
 
                                  meta_string _loc x1),
10308
 
                                meta_expr _loc x2)
 
10837
                                (Ast.PaApp (_loc,
 
10838
                                   (Ast.PaApp (_loc,
 
10839
                                      (Ast.PaId (_loc,
 
10840
                                         (Ast.IdAcc (_loc,
 
10841
                                            (Ast.IdUid (_loc, "Ast")),
 
10842
                                            (Ast.IdUid (_loc, "ExLab")))))),
 
10843
                                      (meta_loc _loc x0))),
 
10844
                                   (meta_string _loc x1))),
 
10845
                                (meta_expr _loc x2))
10309
10846
                          | Ast.ExNativeInt (x0, x1) ->
10310
10847
                              Ast.PaApp (_loc,
10311
 
                                Ast.PaApp (_loc,
10312
 
                                  Ast.PaId (_loc,
10313
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10314
 
                                      Ast.IdUid (_loc, "ExNativeInt"))),
10315
 
                                  meta_loc _loc x0),
10316
 
                                meta_string _loc x1)
 
10848
                                (Ast.PaApp (_loc,
 
10849
                                   (Ast.PaId (_loc,
 
10850
                                      (Ast.IdAcc (_loc,
 
10851
                                         (Ast.IdUid (_loc, "Ast")),
 
10852
                                         (Ast.IdUid (_loc, "ExNativeInt")))))),
 
10853
                                   (meta_loc _loc x0))),
 
10854
                                (meta_string _loc x1))
10317
10855
                          | Ast.ExInt64 (x0, x1) ->
10318
10856
                              Ast.PaApp (_loc,
10319
 
                                Ast.PaApp (_loc,
10320
 
                                  Ast.PaId (_loc,
10321
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10322
 
                                      Ast.IdUid (_loc, "ExInt64"))),
10323
 
                                  meta_loc _loc x0),
10324
 
                                meta_string _loc x1)
 
10857
                                (Ast.PaApp (_loc,
 
10858
                                   (Ast.PaId (_loc,
 
10859
                                      (Ast.IdAcc (_loc,
 
10860
                                         (Ast.IdUid (_loc, "Ast")),
 
10861
                                         (Ast.IdUid (_loc, "ExInt64")))))),
 
10862
                                   (meta_loc _loc x0))),
 
10863
                                (meta_string _loc x1))
10325
10864
                          | Ast.ExInt32 (x0, x1) ->
10326
10865
                              Ast.PaApp (_loc,
10327
 
                                Ast.PaApp (_loc,
10328
 
                                  Ast.PaId (_loc,
10329
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10330
 
                                      Ast.IdUid (_loc, "ExInt32"))),
10331
 
                                  meta_loc _loc x0),
10332
 
                                meta_string _loc x1)
 
10866
                                (Ast.PaApp (_loc,
 
10867
                                   (Ast.PaId (_loc,
 
10868
                                      (Ast.IdAcc (_loc,
 
10869
                                         (Ast.IdUid (_loc, "Ast")),
 
10870
                                         (Ast.IdUid (_loc, "ExInt32")))))),
 
10871
                                   (meta_loc _loc x0))),
 
10872
                                (meta_string _loc x1))
10333
10873
                          | Ast.ExInt (x0, x1) ->
10334
10874
                              Ast.PaApp (_loc,
10335
 
                                Ast.PaApp (_loc,
10336
 
                                  Ast.PaId (_loc,
10337
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10338
 
                                      Ast.IdUid (_loc, "ExInt"))),
10339
 
                                  meta_loc _loc x0),
10340
 
                                meta_string _loc x1)
 
10875
                                (Ast.PaApp (_loc,
 
10876
                                   (Ast.PaId (_loc,
 
10877
                                      (Ast.IdAcc (_loc,
 
10878
                                         (Ast.IdUid (_loc, "Ast")),
 
10879
                                         (Ast.IdUid (_loc, "ExInt")))))),
 
10880
                                   (meta_loc _loc x0))),
 
10881
                                (meta_string _loc x1))
10341
10882
                          | Ast.ExIfe (x0, x1, x2, x3) ->
10342
10883
                              Ast.PaApp (_loc,
10343
 
                                Ast.PaApp (_loc,
10344
 
                                  Ast.PaApp (_loc,
10345
 
                                    Ast.PaApp (_loc,
10346
 
                                      Ast.PaId (_loc,
10347
 
                                        Ast.IdAcc (_loc,
10348
 
                                          Ast.IdUid (_loc, "Ast"),
10349
 
                                          Ast.IdUid (_loc, "ExIfe"))),
10350
 
                                      meta_loc _loc x0),
10351
 
                                    meta_expr _loc x1),
10352
 
                                  meta_expr _loc x2),
10353
 
                                meta_expr _loc x3)
 
10884
                                (Ast.PaApp (_loc,
 
10885
                                   (Ast.PaApp (_loc,
 
10886
                                      (Ast.PaApp (_loc,
 
10887
                                         (Ast.PaId (_loc,
 
10888
                                            (Ast.IdAcc (_loc,
 
10889
                                               (Ast.IdUid (_loc, "Ast")),
 
10890
                                               (Ast.IdUid (_loc, "ExIfe")))))),
 
10891
                                         (meta_loc _loc x0))),
 
10892
                                      (meta_expr _loc x1))),
 
10893
                                   (meta_expr _loc x2))),
 
10894
                                (meta_expr _loc x3))
10354
10895
                          | Ast.ExFun (x0, x1) ->
10355
10896
                              Ast.PaApp (_loc,
10356
 
                                Ast.PaApp (_loc,
10357
 
                                  Ast.PaId (_loc,
10358
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10359
 
                                      Ast.IdUid (_loc, "ExFun"))),
10360
 
                                  meta_loc _loc x0),
10361
 
                                meta_match_case _loc x1)
 
10897
                                (Ast.PaApp (_loc,
 
10898
                                   (Ast.PaId (_loc,
 
10899
                                      (Ast.IdAcc (_loc,
 
10900
                                         (Ast.IdUid (_loc, "Ast")),
 
10901
                                         (Ast.IdUid (_loc, "ExFun")))))),
 
10902
                                   (meta_loc _loc x0))),
 
10903
                                (meta_match_case _loc x1))
10362
10904
                          | Ast.ExFor (x0, x1, x2, x3, x4, x5) ->
10363
10905
                              Ast.PaApp (_loc,
10364
 
                                Ast.PaApp (_loc,
10365
 
                                  Ast.PaApp (_loc,
10366
 
                                    Ast.PaApp (_loc,
10367
 
                                      Ast.PaApp (_loc,
10368
 
                                        Ast.PaApp (_loc,
10369
 
                                          Ast.PaId (_loc,
10370
 
                                            Ast.IdAcc (_loc,
10371
 
                                              Ast.IdUid (_loc, "Ast"),
10372
 
                                              Ast.IdUid (_loc, "ExFor"))),
10373
 
                                          meta_loc _loc x0),
10374
 
                                        meta_string _loc x1),
10375
 
                                      meta_expr _loc x2),
10376
 
                                    meta_expr _loc x3),
10377
 
                                  meta_meta_bool _loc x4),
10378
 
                                meta_expr _loc x5)
 
10906
                                (Ast.PaApp (_loc,
 
10907
                                   (Ast.PaApp (_loc,
 
10908
                                      (Ast.PaApp (_loc,
 
10909
                                         (Ast.PaApp (_loc,
 
10910
                                            (Ast.PaApp (_loc,
 
10911
                                               (Ast.PaId (_loc,
 
10912
                                                  (Ast.IdAcc (_loc,
 
10913
                                                     (Ast.IdUid (_loc, "Ast")),
 
10914
                                                     (Ast.IdUid (_loc,
 
10915
                                                        "ExFor")))))),
 
10916
                                               (meta_loc _loc x0))),
 
10917
                                            (meta_string _loc x1))),
 
10918
                                         (meta_expr _loc x2))),
 
10919
                                      (meta_expr _loc x3))),
 
10920
                                   (meta_direction_flag _loc x4))),
 
10921
                                (meta_expr _loc x5))
10379
10922
                          | Ast.ExFlo (x0, x1) ->
10380
10923
                              Ast.PaApp (_loc,
10381
 
                                Ast.PaApp (_loc,
10382
 
                                  Ast.PaId (_loc,
10383
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10384
 
                                      Ast.IdUid (_loc, "ExFlo"))),
10385
 
                                  meta_loc _loc x0),
10386
 
                                meta_string _loc x1)
 
10924
                                (Ast.PaApp (_loc,
 
10925
                                   (Ast.PaId (_loc,
 
10926
                                      (Ast.IdAcc (_loc,
 
10927
                                         (Ast.IdUid (_loc, "Ast")),
 
10928
                                         (Ast.IdUid (_loc, "ExFlo")))))),
 
10929
                                   (meta_loc _loc x0))),
 
10930
                                (meta_string _loc x1))
10387
10931
                          | Ast.ExCoe (x0, x1, x2, x3) ->
10388
10932
                              Ast.PaApp (_loc,
10389
 
                                Ast.PaApp (_loc,
10390
 
                                  Ast.PaApp (_loc,
10391
 
                                    Ast.PaApp (_loc,
10392
 
                                      Ast.PaId (_loc,
10393
 
                                        Ast.IdAcc (_loc,
10394
 
                                          Ast.IdUid (_loc, "Ast"),
10395
 
                                          Ast.IdUid (_loc, "ExCoe"))),
10396
 
                                      meta_loc _loc x0),
10397
 
                                    meta_expr _loc x1),
10398
 
                                  meta_ctyp _loc x2),
10399
 
                                meta_ctyp _loc x3)
 
10933
                                (Ast.PaApp (_loc,
 
10934
                                   (Ast.PaApp (_loc,
 
10935
                                      (Ast.PaApp (_loc,
 
10936
                                         (Ast.PaId (_loc,
 
10937
                                            (Ast.IdAcc (_loc,
 
10938
                                               (Ast.IdUid (_loc, "Ast")),
 
10939
                                               (Ast.IdUid (_loc, "ExCoe")))))),
 
10940
                                         (meta_loc _loc x0))),
 
10941
                                      (meta_expr _loc x1))),
 
10942
                                   (meta_ctyp _loc x2))),
 
10943
                                (meta_ctyp _loc x3))
10400
10944
                          | Ast.ExChr (x0, x1) ->
10401
10945
                              Ast.PaApp (_loc,
10402
 
                                Ast.PaApp (_loc,
10403
 
                                  Ast.PaId (_loc,
10404
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10405
 
                                      Ast.IdUid (_loc, "ExChr"))),
10406
 
                                  meta_loc _loc x0),
10407
 
                                meta_string _loc x1)
 
10946
                                (Ast.PaApp (_loc,
 
10947
                                   (Ast.PaId (_loc,
 
10948
                                      (Ast.IdAcc (_loc,
 
10949
                                         (Ast.IdUid (_loc, "Ast")),
 
10950
                                         (Ast.IdUid (_loc, "ExChr")))))),
 
10951
                                   (meta_loc _loc x0))),
 
10952
                                (meta_string _loc x1))
10408
10953
                          | Ast.ExAss (x0, x1, x2) ->
10409
10954
                              Ast.PaApp (_loc,
10410
 
                                Ast.PaApp (_loc,
10411
 
                                  Ast.PaApp (_loc,
10412
 
                                    Ast.PaId (_loc,
10413
 
                                      Ast.IdAcc (_loc,
10414
 
                                        Ast.IdUid (_loc, "Ast"),
10415
 
                                        Ast.IdUid (_loc, "ExAss"))),
10416
 
                                    meta_loc _loc x0),
10417
 
                                  meta_expr _loc x1),
10418
 
                                meta_expr _loc x2)
 
10955
                                (Ast.PaApp (_loc,
 
10956
                                   (Ast.PaApp (_loc,
 
10957
                                      (Ast.PaId (_loc,
 
10958
                                         (Ast.IdAcc (_loc,
 
10959
                                            (Ast.IdUid (_loc, "Ast")),
 
10960
                                            (Ast.IdUid (_loc, "ExAss")))))),
 
10961
                                      (meta_loc _loc x0))),
 
10962
                                   (meta_expr _loc x1))),
 
10963
                                (meta_expr _loc x2))
10419
10964
                          | Ast.ExAsr (x0, x1) ->
10420
10965
                              Ast.PaApp (_loc,
10421
 
                                Ast.PaApp (_loc,
10422
 
                                  Ast.PaId (_loc,
10423
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10424
 
                                      Ast.IdUid (_loc, "ExAsr"))),
10425
 
                                  meta_loc _loc x0),
10426
 
                                meta_expr _loc x1)
 
10966
                                (Ast.PaApp (_loc,
 
10967
                                   (Ast.PaId (_loc,
 
10968
                                      (Ast.IdAcc (_loc,
 
10969
                                         (Ast.IdUid (_loc, "Ast")),
 
10970
                                         (Ast.IdUid (_loc, "ExAsr")))))),
 
10971
                                   (meta_loc _loc x0))),
 
10972
                                (meta_expr _loc x1))
10427
10973
                          | Ast.ExAsf x0 ->
10428
10974
                              Ast.PaApp (_loc,
10429
 
                                Ast.PaId (_loc,
10430
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10431
 
                                    Ast.IdUid (_loc, "ExAsf"))),
10432
 
                                meta_loc _loc x0)
 
10975
                                (Ast.PaId (_loc,
 
10976
                                   (Ast.IdAcc (_loc,
 
10977
                                      (Ast.IdUid (_loc, "Ast")),
 
10978
                                      (Ast.IdUid (_loc, "ExAsf")))))),
 
10979
                                (meta_loc _loc x0))
10433
10980
                          | Ast.ExSem (x0, x1, x2) ->
10434
10981
                              Ast.PaApp (_loc,
10435
 
                                Ast.PaApp (_loc,
10436
 
                                  Ast.PaApp (_loc,
10437
 
                                    Ast.PaId (_loc,
10438
 
                                      Ast.IdAcc (_loc,
10439
 
                                        Ast.IdUid (_loc, "Ast"),
10440
 
                                        Ast.IdUid (_loc, "ExSem"))),
10441
 
                                    meta_loc _loc x0),
10442
 
                                  meta_expr _loc x1),
10443
 
                                meta_expr _loc x2)
 
10982
                                (Ast.PaApp (_loc,
 
10983
                                   (Ast.PaApp (_loc,
 
10984
                                      (Ast.PaId (_loc,
 
10985
                                         (Ast.IdAcc (_loc,
 
10986
                                            (Ast.IdUid (_loc, "Ast")),
 
10987
                                            (Ast.IdUid (_loc, "ExSem")))))),
 
10988
                                      (meta_loc _loc x0))),
 
10989
                                   (meta_expr _loc x1))),
 
10990
                                (meta_expr _loc x2))
10444
10991
                          | Ast.ExArr (x0, x1) ->
10445
10992
                              Ast.PaApp (_loc,
10446
 
                                Ast.PaApp (_loc,
10447
 
                                  Ast.PaId (_loc,
10448
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10449
 
                                      Ast.IdUid (_loc, "ExArr"))),
10450
 
                                  meta_loc _loc x0),
10451
 
                                meta_expr _loc x1)
 
10993
                                (Ast.PaApp (_loc,
 
10994
                                   (Ast.PaId (_loc,
 
10995
                                      (Ast.IdAcc (_loc,
 
10996
                                         (Ast.IdUid (_loc, "Ast")),
 
10997
                                         (Ast.IdUid (_loc, "ExArr")))))),
 
10998
                                   (meta_loc _loc x0))),
 
10999
                                (meta_expr _loc x1))
10452
11000
                          | Ast.ExAre (x0, x1, x2) ->
10453
11001
                              Ast.PaApp (_loc,
10454
 
                                Ast.PaApp (_loc,
10455
 
                                  Ast.PaApp (_loc,
10456
 
                                    Ast.PaId (_loc,
10457
 
                                      Ast.IdAcc (_loc,
10458
 
                                        Ast.IdUid (_loc, "Ast"),
10459
 
                                        Ast.IdUid (_loc, "ExAre"))),
10460
 
                                    meta_loc _loc x0),
10461
 
                                  meta_expr _loc x1),
10462
 
                                meta_expr _loc x2)
 
11002
                                (Ast.PaApp (_loc,
 
11003
                                   (Ast.PaApp (_loc,
 
11004
                                      (Ast.PaId (_loc,
 
11005
                                         (Ast.IdAcc (_loc,
 
11006
                                            (Ast.IdUid (_loc, "Ast")),
 
11007
                                            (Ast.IdUid (_loc, "ExAre")))))),
 
11008
                                      (meta_loc _loc x0))),
 
11009
                                   (meta_expr _loc x1))),
 
11010
                                (meta_expr _loc x2))
10463
11011
                          | Ast.ExApp (x0, x1, x2) ->
10464
11012
                              Ast.PaApp (_loc,
10465
 
                                Ast.PaApp (_loc,
10466
 
                                  Ast.PaApp (_loc,
10467
 
                                    Ast.PaId (_loc,
10468
 
                                      Ast.IdAcc (_loc,
10469
 
                                        Ast.IdUid (_loc, "Ast"),
10470
 
                                        Ast.IdUid (_loc, "ExApp"))),
10471
 
                                    meta_loc _loc x0),
10472
 
                                  meta_expr _loc x1),
10473
 
                                meta_expr _loc x2)
 
11013
                                (Ast.PaApp (_loc,
 
11014
                                   (Ast.PaApp (_loc,
 
11015
                                      (Ast.PaId (_loc,
 
11016
                                         (Ast.IdAcc (_loc,
 
11017
                                            (Ast.IdUid (_loc, "Ast")),
 
11018
                                            (Ast.IdUid (_loc, "ExApp")))))),
 
11019
                                      (meta_loc _loc x0))),
 
11020
                                   (meta_expr _loc x1))),
 
11021
                                (meta_expr _loc x2))
10474
11022
                          | Ast.ExAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10475
11023
                          | Ast.ExAcc (x0, x1, x2) ->
10476
11024
                              Ast.PaApp (_loc,
10477
 
                                Ast.PaApp (_loc,
10478
 
                                  Ast.PaApp (_loc,
10479
 
                                    Ast.PaId (_loc,
10480
 
                                      Ast.IdAcc (_loc,
10481
 
                                        Ast.IdUid (_loc, "Ast"),
10482
 
                                        Ast.IdUid (_loc, "ExAcc"))),
10483
 
                                    meta_loc _loc x0),
10484
 
                                  meta_expr _loc x1),
10485
 
                                meta_expr _loc x2)
 
11025
                                (Ast.PaApp (_loc,
 
11026
                                   (Ast.PaApp (_loc,
 
11027
                                      (Ast.PaId (_loc,
 
11028
                                         (Ast.IdAcc (_loc,
 
11029
                                            (Ast.IdUid (_loc, "Ast")),
 
11030
                                            (Ast.IdUid (_loc, "ExAcc")))))),
 
11031
                                      (meta_loc _loc x0))),
 
11032
                                   (meta_expr _loc x1))),
 
11033
                                (meta_expr _loc x2))
10486
11034
                          | Ast.ExId (x0, x1) ->
10487
11035
                              Ast.PaApp (_loc,
10488
 
                                Ast.PaApp (_loc,
10489
 
                                  Ast.PaId (_loc,
10490
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10491
 
                                      Ast.IdUid (_loc, "ExId"))),
10492
 
                                  meta_loc _loc x0),
10493
 
                                meta_ident _loc x1)
 
11036
                                (Ast.PaApp (_loc,
 
11037
                                   (Ast.PaId (_loc,
 
11038
                                      (Ast.IdAcc (_loc,
 
11039
                                         (Ast.IdUid (_loc, "Ast")),
 
11040
                                         (Ast.IdUid (_loc, "ExId")))))),
 
11041
                                   (meta_loc _loc x0))),
 
11042
                                (meta_ident _loc x1))
10494
11043
                          | Ast.ExNil x0 ->
10495
11044
                              Ast.PaApp (_loc,
10496
 
                                Ast.PaId (_loc,
10497
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10498
 
                                    Ast.IdUid (_loc, "ExNil"))),
10499
 
                                meta_loc _loc x0)
 
11045
                                (Ast.PaId (_loc,
 
11046
                                   (Ast.IdAcc (_loc,
 
11047
                                      (Ast.IdUid (_loc, "Ast")),
 
11048
                                      (Ast.IdUid (_loc, "ExNil")))))),
 
11049
                                (meta_loc _loc x0))
10500
11050
                        and meta_ident _loc =
10501
11051
                          function
10502
11052
                          | Ast.IdAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10503
11053
                          | Ast.IdUid (x0, x1) ->
10504
11054
                              Ast.PaApp (_loc,
10505
 
                                Ast.PaApp (_loc,
10506
 
                                  Ast.PaId (_loc,
10507
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10508
 
                                      Ast.IdUid (_loc, "IdUid"))),
10509
 
                                  meta_loc _loc x0),
10510
 
                                meta_string _loc x1)
 
11055
                                (Ast.PaApp (_loc,
 
11056
                                   (Ast.PaId (_loc,
 
11057
                                      (Ast.IdAcc (_loc,
 
11058
                                         (Ast.IdUid (_loc, "Ast")),
 
11059
                                         (Ast.IdUid (_loc, "IdUid")))))),
 
11060
                                   (meta_loc _loc x0))),
 
11061
                                (meta_string _loc x1))
10511
11062
                          | Ast.IdLid (x0, x1) ->
10512
11063
                              Ast.PaApp (_loc,
10513
 
                                Ast.PaApp (_loc,
10514
 
                                  Ast.PaId (_loc,
10515
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10516
 
                                      Ast.IdUid (_loc, "IdLid"))),
10517
 
                                  meta_loc _loc x0),
10518
 
                                meta_string _loc x1)
 
11064
                                (Ast.PaApp (_loc,
 
11065
                                   (Ast.PaId (_loc,
 
11066
                                      (Ast.IdAcc (_loc,
 
11067
                                         (Ast.IdUid (_loc, "Ast")),
 
11068
                                         (Ast.IdUid (_loc, "IdLid")))))),
 
11069
                                   (meta_loc _loc x0))),
 
11070
                                (meta_string _loc x1))
10519
11071
                          | Ast.IdApp (x0, x1, x2) ->
10520
11072
                              Ast.PaApp (_loc,
10521
 
                                Ast.PaApp (_loc,
10522
 
                                  Ast.PaApp (_loc,
10523
 
                                    Ast.PaId (_loc,
10524
 
                                      Ast.IdAcc (_loc,
10525
 
                                        Ast.IdUid (_loc, "Ast"),
10526
 
                                        Ast.IdUid (_loc, "IdApp"))),
10527
 
                                    meta_loc _loc x0),
10528
 
                                  meta_ident _loc x1),
10529
 
                                meta_ident _loc x2)
 
11073
                                (Ast.PaApp (_loc,
 
11074
                                   (Ast.PaApp (_loc,
 
11075
                                      (Ast.PaId (_loc,
 
11076
                                         (Ast.IdAcc (_loc,
 
11077
                                            (Ast.IdUid (_loc, "Ast")),
 
11078
                                            (Ast.IdUid (_loc, "IdApp")))))),
 
11079
                                      (meta_loc _loc x0))),
 
11080
                                   (meta_ident _loc x1))),
 
11081
                                (meta_ident _loc x2))
10530
11082
                          | Ast.IdAcc (x0, x1, x2) ->
10531
11083
                              Ast.PaApp (_loc,
10532
 
                                Ast.PaApp (_loc,
10533
 
                                  Ast.PaApp (_loc,
10534
 
                                    Ast.PaId (_loc,
10535
 
                                      Ast.IdAcc (_loc,
10536
 
                                        Ast.IdUid (_loc, "Ast"),
10537
 
                                        Ast.IdUid (_loc, "IdAcc"))),
10538
 
                                    meta_loc _loc x0),
10539
 
                                  meta_ident _loc x1),
10540
 
                                meta_ident _loc x2)
 
11084
                                (Ast.PaApp (_loc,
 
11085
                                   (Ast.PaApp (_loc,
 
11086
                                      (Ast.PaId (_loc,
 
11087
                                         (Ast.IdAcc (_loc,
 
11088
                                            (Ast.IdUid (_loc, "Ast")),
 
11089
                                            (Ast.IdUid (_loc, "IdAcc")))))),
 
11090
                                      (meta_loc _loc x0))),
 
11091
                                   (meta_ident _loc x1))),
 
11092
                                (meta_ident _loc x2))
10541
11093
                        and meta_match_case _loc =
10542
11094
                          function
10543
11095
                          | Ast.McAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10544
11096
                          | Ast.McArr (x0, x1, x2, x3) ->
10545
11097
                              Ast.PaApp (_loc,
10546
 
                                Ast.PaApp (_loc,
10547
 
                                  Ast.PaApp (_loc,
10548
 
                                    Ast.PaApp (_loc,
10549
 
                                      Ast.PaId (_loc,
10550
 
                                        Ast.IdAcc (_loc,
10551
 
                                          Ast.IdUid (_loc, "Ast"),
10552
 
                                          Ast.IdUid (_loc, "McArr"))),
10553
 
                                      meta_loc _loc x0),
10554
 
                                    meta_patt _loc x1),
10555
 
                                  meta_expr _loc x2),
10556
 
                                meta_expr _loc x3)
 
11098
                                (Ast.PaApp (_loc,
 
11099
                                   (Ast.PaApp (_loc,
 
11100
                                      (Ast.PaApp (_loc,
 
11101
                                         (Ast.PaId (_loc,
 
11102
                                            (Ast.IdAcc (_loc,
 
11103
                                               (Ast.IdUid (_loc, "Ast")),
 
11104
                                               (Ast.IdUid (_loc, "McArr")))))),
 
11105
                                         (meta_loc _loc x0))),
 
11106
                                      (meta_patt _loc x1))),
 
11107
                                   (meta_expr _loc x2))),
 
11108
                                (meta_expr _loc x3))
10557
11109
                          | Ast.McOr (x0, x1, x2) ->
10558
11110
                              Ast.PaApp (_loc,
10559
 
                                Ast.PaApp (_loc,
10560
 
                                  Ast.PaApp (_loc,
10561
 
                                    Ast.PaId (_loc,
10562
 
                                      Ast.IdAcc (_loc,
10563
 
                                        Ast.IdUid (_loc, "Ast"),
10564
 
                                        Ast.IdUid (_loc, "McOr"))),
10565
 
                                    meta_loc _loc x0),
10566
 
                                  meta_match_case _loc x1),
10567
 
                                meta_match_case _loc x2)
 
11111
                                (Ast.PaApp (_loc,
 
11112
                                   (Ast.PaApp (_loc,
 
11113
                                      (Ast.PaId (_loc,
 
11114
                                         (Ast.IdAcc (_loc,
 
11115
                                            (Ast.IdUid (_loc, "Ast")),
 
11116
                                            (Ast.IdUid (_loc, "McOr")))))),
 
11117
                                      (meta_loc _loc x0))),
 
11118
                                   (meta_match_case _loc x1))),
 
11119
                                (meta_match_case _loc x2))
10568
11120
                          | Ast.McNil x0 ->
10569
11121
                              Ast.PaApp (_loc,
10570
 
                                Ast.PaId (_loc,
10571
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10572
 
                                    Ast.IdUid (_loc, "McNil"))),
10573
 
                                meta_loc _loc x0)
 
11122
                                (Ast.PaId (_loc,
 
11123
                                   (Ast.IdAcc (_loc,
 
11124
                                      (Ast.IdUid (_loc, "Ast")),
 
11125
                                      (Ast.IdUid (_loc, "McNil")))))),
 
11126
                                (meta_loc _loc x0))
10574
11127
                        and meta_meta_bool _loc =
10575
11128
                          function
10576
11129
                          | Ast.BAnt x0 -> Ast.PaAnt (_loc, x0)
10577
11130
                          | Ast.BFalse ->
10578
11131
                              Ast.PaId (_loc,
10579
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10580
 
                                  Ast.IdUid (_loc, "BFalse")))
 
11132
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11133
                                   (Ast.IdUid (_loc, "BFalse")))))
10581
11134
                          | Ast.BTrue ->
10582
11135
                              Ast.PaId (_loc,
10583
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10584
 
                                  Ast.IdUid (_loc, "BTrue")))
 
11136
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11137
                                   (Ast.IdUid (_loc, "BTrue")))))
10585
11138
                        and meta_meta_list mf_a _loc =
10586
11139
                          function
10587
11140
                          | Ast.LAnt x0 -> Ast.PaAnt (_loc, x0)
10588
11141
                          | Ast.LCons (x0, x1) ->
10589
11142
                              Ast.PaApp (_loc,
10590
 
                                Ast.PaApp (_loc,
10591
 
                                  Ast.PaId (_loc,
10592
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10593
 
                                      Ast.IdUid (_loc, "LCons"))),
10594
 
                                  mf_a _loc x0),
10595
 
                                meta_meta_list mf_a _loc x1)
 
11143
                                (Ast.PaApp (_loc,
 
11144
                                   (Ast.PaId (_loc,
 
11145
                                      (Ast.IdAcc (_loc,
 
11146
                                         (Ast.IdUid (_loc, "Ast")),
 
11147
                                         (Ast.IdUid (_loc, "LCons")))))),
 
11148
                                   (mf_a _loc x0))),
 
11149
                                (meta_meta_list mf_a _loc x1))
10596
11150
                          | Ast.LNil ->
10597
11151
                              Ast.PaId (_loc,
10598
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10599
 
                                  Ast.IdUid (_loc, "LNil")))
 
11152
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11153
                                   (Ast.IdUid (_loc, "LNil")))))
10600
11154
                        and meta_meta_option mf_a _loc =
10601
11155
                          function
10602
11156
                          | Ast.OAnt x0 -> Ast.PaAnt (_loc, x0)
10603
11157
                          | Ast.OSome x0 ->
10604
11158
                              Ast.PaApp (_loc,
10605
 
                                Ast.PaId (_loc,
10606
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10607
 
                                    Ast.IdUid (_loc, "OSome"))),
10608
 
                                mf_a _loc x0)
 
11159
                                (Ast.PaId (_loc,
 
11160
                                   (Ast.IdAcc (_loc,
 
11161
                                      (Ast.IdUid (_loc, "Ast")),
 
11162
                                      (Ast.IdUid (_loc, "OSome")))))),
 
11163
                                (mf_a _loc x0))
10609
11164
                          | Ast.ONone ->
10610
11165
                              Ast.PaId (_loc,
10611
 
                                Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10612
 
                                  Ast.IdUid (_loc, "ONone")))
 
11166
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11167
                                   (Ast.IdUid (_loc, "ONone")))))
10613
11168
                        and meta_module_binding _loc =
10614
11169
                          function
10615
11170
                          | Ast.MbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10616
11171
                          | Ast.MbCol (x0, x1, x2) ->
10617
11172
                              Ast.PaApp (_loc,
10618
 
                                Ast.PaApp (_loc,
10619
 
                                  Ast.PaApp (_loc,
10620
 
                                    Ast.PaId (_loc,
10621
 
                                      Ast.IdAcc (_loc,
10622
 
                                        Ast.IdUid (_loc, "Ast"),
10623
 
                                        Ast.IdUid (_loc, "MbCol"))),
10624
 
                                    meta_loc _loc x0),
10625
 
                                  meta_string _loc x1),
10626
 
                                meta_module_type _loc x2)
 
11173
                                (Ast.PaApp (_loc,
 
11174
                                   (Ast.PaApp (_loc,
 
11175
                                      (Ast.PaId (_loc,
 
11176
                                         (Ast.IdAcc (_loc,
 
11177
                                            (Ast.IdUid (_loc, "Ast")),
 
11178
                                            (Ast.IdUid (_loc, "MbCol")))))),
 
11179
                                      (meta_loc _loc x0))),
 
11180
                                   (meta_string _loc x1))),
 
11181
                                (meta_module_type _loc x2))
10627
11182
                          | Ast.MbColEq (x0, x1, x2, x3) ->
10628
11183
                              Ast.PaApp (_loc,
10629
 
                                Ast.PaApp (_loc,
10630
 
                                  Ast.PaApp (_loc,
10631
 
                                    Ast.PaApp (_loc,
10632
 
                                      Ast.PaId (_loc,
10633
 
                                        Ast.IdAcc (_loc,
10634
 
                                          Ast.IdUid (_loc, "Ast"),
10635
 
                                          Ast.IdUid (_loc, "MbColEq"))),
10636
 
                                      meta_loc _loc x0),
10637
 
                                    meta_string _loc x1),
10638
 
                                  meta_module_type _loc x2),
10639
 
                                meta_module_expr _loc x3)
 
11184
                                (Ast.PaApp (_loc,
 
11185
                                   (Ast.PaApp (_loc,
 
11186
                                      (Ast.PaApp (_loc,
 
11187
                                         (Ast.PaId (_loc,
 
11188
                                            (Ast.IdAcc (_loc,
 
11189
                                               (Ast.IdUid (_loc, "Ast")),
 
11190
                                               (Ast.IdUid (_loc, "MbColEq")))))),
 
11191
                                         (meta_loc _loc x0))),
 
11192
                                      (meta_string _loc x1))),
 
11193
                                   (meta_module_type _loc x2))),
 
11194
                                (meta_module_expr _loc x3))
10640
11195
                          | Ast.MbAnd (x0, x1, x2) ->
10641
11196
                              Ast.PaApp (_loc,
10642
 
                                Ast.PaApp (_loc,
10643
 
                                  Ast.PaApp (_loc,
10644
 
                                    Ast.PaId (_loc,
10645
 
                                      Ast.IdAcc (_loc,
10646
 
                                        Ast.IdUid (_loc, "Ast"),
10647
 
                                        Ast.IdUid (_loc, "MbAnd"))),
10648
 
                                    meta_loc _loc x0),
10649
 
                                  meta_module_binding _loc x1),
10650
 
                                meta_module_binding _loc x2)
 
11197
                                (Ast.PaApp (_loc,
 
11198
                                   (Ast.PaApp (_loc,
 
11199
                                      (Ast.PaId (_loc,
 
11200
                                         (Ast.IdAcc (_loc,
 
11201
                                            (Ast.IdUid (_loc, "Ast")),
 
11202
                                            (Ast.IdUid (_loc, "MbAnd")))))),
 
11203
                                      (meta_loc _loc x0))),
 
11204
                                   (meta_module_binding _loc x1))),
 
11205
                                (meta_module_binding _loc x2))
10651
11206
                          | Ast.MbNil x0 ->
10652
11207
                              Ast.PaApp (_loc,
10653
 
                                Ast.PaId (_loc,
10654
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10655
 
                                    Ast.IdUid (_loc, "MbNil"))),
10656
 
                                meta_loc _loc x0)
 
11208
                                (Ast.PaId (_loc,
 
11209
                                   (Ast.IdAcc (_loc,
 
11210
                                      (Ast.IdUid (_loc, "Ast")),
 
11211
                                      (Ast.IdUid (_loc, "MbNil")))))),
 
11212
                                (meta_loc _loc x0))
10657
11213
                        and meta_module_expr _loc =
10658
11214
                          function
10659
11215
                          | Ast.MeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
 
11216
                          | Ast.MePkg (x0, x1) ->
 
11217
                              Ast.PaApp (_loc,
 
11218
                                (Ast.PaApp (_loc,
 
11219
                                   (Ast.PaId (_loc,
 
11220
                                      (Ast.IdAcc (_loc,
 
11221
                                         (Ast.IdUid (_loc, "Ast")),
 
11222
                                         (Ast.IdUid (_loc, "MePkg")))))),
 
11223
                                   (meta_loc _loc x0))),
 
11224
                                (meta_expr _loc x1))
10660
11225
                          | Ast.MeTyc (x0, x1, x2) ->
10661
11226
                              Ast.PaApp (_loc,
10662
 
                                Ast.PaApp (_loc,
10663
 
                                  Ast.PaApp (_loc,
10664
 
                                    Ast.PaId (_loc,
10665
 
                                      Ast.IdAcc (_loc,
10666
 
                                        Ast.IdUid (_loc, "Ast"),
10667
 
                                        Ast.IdUid (_loc, "MeTyc"))),
10668
 
                                    meta_loc _loc x0),
10669
 
                                  meta_module_expr _loc x1),
10670
 
                                meta_module_type _loc x2)
 
11227
                                (Ast.PaApp (_loc,
 
11228
                                   (Ast.PaApp (_loc,
 
11229
                                      (Ast.PaId (_loc,
 
11230
                                         (Ast.IdAcc (_loc,
 
11231
                                            (Ast.IdUid (_loc, "Ast")),
 
11232
                                            (Ast.IdUid (_loc, "MeTyc")))))),
 
11233
                                      (meta_loc _loc x0))),
 
11234
                                   (meta_module_expr _loc x1))),
 
11235
                                (meta_module_type _loc x2))
10671
11236
                          | Ast.MeStr (x0, x1) ->
10672
11237
                              Ast.PaApp (_loc,
10673
 
                                Ast.PaApp (_loc,
10674
 
                                  Ast.PaId (_loc,
10675
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10676
 
                                      Ast.IdUid (_loc, "MeStr"))),
10677
 
                                  meta_loc _loc x0),
10678
 
                                meta_str_item _loc x1)
 
11238
                                (Ast.PaApp (_loc,
 
11239
                                   (Ast.PaId (_loc,
 
11240
                                      (Ast.IdAcc (_loc,
 
11241
                                         (Ast.IdUid (_loc, "Ast")),
 
11242
                                         (Ast.IdUid (_loc, "MeStr")))))),
 
11243
                                   (meta_loc _loc x0))),
 
11244
                                (meta_str_item _loc x1))
10679
11245
                          | Ast.MeFun (x0, x1, x2, x3) ->
10680
11246
                              Ast.PaApp (_loc,
10681
 
                                Ast.PaApp (_loc,
10682
 
                                  Ast.PaApp (_loc,
10683
 
                                    Ast.PaApp (_loc,
10684
 
                                      Ast.PaId (_loc,
10685
 
                                        Ast.IdAcc (_loc,
10686
 
                                          Ast.IdUid (_loc, "Ast"),
10687
 
                                          Ast.IdUid (_loc, "MeFun"))),
10688
 
                                      meta_loc _loc x0),
10689
 
                                    meta_string _loc x1),
10690
 
                                  meta_module_type _loc x2),
10691
 
                                meta_module_expr _loc x3)
 
11247
                                (Ast.PaApp (_loc,
 
11248
                                   (Ast.PaApp (_loc,
 
11249
                                      (Ast.PaApp (_loc,
 
11250
                                         (Ast.PaId (_loc,
 
11251
                                            (Ast.IdAcc (_loc,
 
11252
                                               (Ast.IdUid (_loc, "Ast")),
 
11253
                                               (Ast.IdUid (_loc, "MeFun")))))),
 
11254
                                         (meta_loc _loc x0))),
 
11255
                                      (meta_string _loc x1))),
 
11256
                                   (meta_module_type _loc x2))),
 
11257
                                (meta_module_expr _loc x3))
10692
11258
                          | Ast.MeApp (x0, x1, x2) ->
10693
11259
                              Ast.PaApp (_loc,
10694
 
                                Ast.PaApp (_loc,
10695
 
                                  Ast.PaApp (_loc,
10696
 
                                    Ast.PaId (_loc,
10697
 
                                      Ast.IdAcc (_loc,
10698
 
                                        Ast.IdUid (_loc, "Ast"),
10699
 
                                        Ast.IdUid (_loc, "MeApp"))),
10700
 
                                    meta_loc _loc x0),
10701
 
                                  meta_module_expr _loc x1),
10702
 
                                meta_module_expr _loc x2)
 
11260
                                (Ast.PaApp (_loc,
 
11261
                                   (Ast.PaApp (_loc,
 
11262
                                      (Ast.PaId (_loc,
 
11263
                                         (Ast.IdAcc (_loc,
 
11264
                                            (Ast.IdUid (_loc, "Ast")),
 
11265
                                            (Ast.IdUid (_loc, "MeApp")))))),
 
11266
                                      (meta_loc _loc x0))),
 
11267
                                   (meta_module_expr _loc x1))),
 
11268
                                (meta_module_expr _loc x2))
10703
11269
                          | Ast.MeId (x0, x1) ->
10704
11270
                              Ast.PaApp (_loc,
10705
 
                                Ast.PaApp (_loc,
10706
 
                                  Ast.PaId (_loc,
10707
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10708
 
                                      Ast.IdUid (_loc, "MeId"))),
10709
 
                                  meta_loc _loc x0),
10710
 
                                meta_ident _loc x1)
 
11271
                                (Ast.PaApp (_loc,
 
11272
                                   (Ast.PaId (_loc,
 
11273
                                      (Ast.IdAcc (_loc,
 
11274
                                         (Ast.IdUid (_loc, "Ast")),
 
11275
                                         (Ast.IdUid (_loc, "MeId")))))),
 
11276
                                   (meta_loc _loc x0))),
 
11277
                                (meta_ident _loc x1))
10711
11278
                          | Ast.MeNil x0 ->
10712
11279
                              Ast.PaApp (_loc,
10713
 
                                Ast.PaId (_loc,
10714
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10715
 
                                    Ast.IdUid (_loc, "MeNil"))),
10716
 
                                meta_loc _loc x0)
 
11280
                                (Ast.PaId (_loc,
 
11281
                                   (Ast.IdAcc (_loc,
 
11282
                                      (Ast.IdUid (_loc, "Ast")),
 
11283
                                      (Ast.IdUid (_loc, "MeNil")))))),
 
11284
                                (meta_loc _loc x0))
10717
11285
                        and meta_module_type _loc =
10718
11286
                          function
10719
11287
                          | Ast.MtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10720
11288
                          | Ast.MtWit (x0, x1, x2) ->
10721
11289
                              Ast.PaApp (_loc,
10722
 
                                Ast.PaApp (_loc,
10723
 
                                  Ast.PaApp (_loc,
10724
 
                                    Ast.PaId (_loc,
10725
 
                                      Ast.IdAcc (_loc,
10726
 
                                        Ast.IdUid (_loc, "Ast"),
10727
 
                                        Ast.IdUid (_loc, "MtWit"))),
10728
 
                                    meta_loc _loc x0),
10729
 
                                  meta_module_type _loc x1),
10730
 
                                meta_with_constr _loc x2)
 
11290
                                (Ast.PaApp (_loc,
 
11291
                                   (Ast.PaApp (_loc,
 
11292
                                      (Ast.PaId (_loc,
 
11293
                                         (Ast.IdAcc (_loc,
 
11294
                                            (Ast.IdUid (_loc, "Ast")),
 
11295
                                            (Ast.IdUid (_loc, "MtWit")))))),
 
11296
                                      (meta_loc _loc x0))),
 
11297
                                   (meta_module_type _loc x1))),
 
11298
                                (meta_with_constr _loc x2))
10731
11299
                          | Ast.MtSig (x0, x1) ->
10732
11300
                              Ast.PaApp (_loc,
10733
 
                                Ast.PaApp (_loc,
10734
 
                                  Ast.PaId (_loc,
10735
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10736
 
                                      Ast.IdUid (_loc, "MtSig"))),
10737
 
                                  meta_loc _loc x0),
10738
 
                                meta_sig_item _loc x1)
 
11301
                                (Ast.PaApp (_loc,
 
11302
                                   (Ast.PaId (_loc,
 
11303
                                      (Ast.IdAcc (_loc,
 
11304
                                         (Ast.IdUid (_loc, "Ast")),
 
11305
                                         (Ast.IdUid (_loc, "MtSig")))))),
 
11306
                                   (meta_loc _loc x0))),
 
11307
                                (meta_sig_item _loc x1))
10739
11308
                          | Ast.MtQuo (x0, x1) ->
10740
11309
                              Ast.PaApp (_loc,
10741
 
                                Ast.PaApp (_loc,
10742
 
                                  Ast.PaId (_loc,
10743
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10744
 
                                      Ast.IdUid (_loc, "MtQuo"))),
10745
 
                                  meta_loc _loc x0),
10746
 
                                meta_string _loc x1)
 
11310
                                (Ast.PaApp (_loc,
 
11311
                                   (Ast.PaId (_loc,
 
11312
                                      (Ast.IdAcc (_loc,
 
11313
                                         (Ast.IdUid (_loc, "Ast")),
 
11314
                                         (Ast.IdUid (_loc, "MtQuo")))))),
 
11315
                                   (meta_loc _loc x0))),
 
11316
                                (meta_string _loc x1))
10747
11317
                          | Ast.MtFun (x0, x1, x2, x3) ->
10748
11318
                              Ast.PaApp (_loc,
10749
 
                                Ast.PaApp (_loc,
10750
 
                                  Ast.PaApp (_loc,
10751
 
                                    Ast.PaApp (_loc,
10752
 
                                      Ast.PaId (_loc,
10753
 
                                        Ast.IdAcc (_loc,
10754
 
                                          Ast.IdUid (_loc, "Ast"),
10755
 
                                          Ast.IdUid (_loc, "MtFun"))),
10756
 
                                      meta_loc _loc x0),
10757
 
                                    meta_string _loc x1),
10758
 
                                  meta_module_type _loc x2),
10759
 
                                meta_module_type _loc x3)
 
11319
                                (Ast.PaApp (_loc,
 
11320
                                   (Ast.PaApp (_loc,
 
11321
                                      (Ast.PaApp (_loc,
 
11322
                                         (Ast.PaId (_loc,
 
11323
                                            (Ast.IdAcc (_loc,
 
11324
                                               (Ast.IdUid (_loc, "Ast")),
 
11325
                                               (Ast.IdUid (_loc, "MtFun")))))),
 
11326
                                         (meta_loc _loc x0))),
 
11327
                                      (meta_string _loc x1))),
 
11328
                                   (meta_module_type _loc x2))),
 
11329
                                (meta_module_type _loc x3))
10760
11330
                          | Ast.MtId (x0, x1) ->
10761
11331
                              Ast.PaApp (_loc,
10762
 
                                Ast.PaApp (_loc,
10763
 
                                  Ast.PaId (_loc,
10764
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10765
 
                                      Ast.IdUid (_loc, "MtId"))),
10766
 
                                  meta_loc _loc x0),
10767
 
                                meta_ident _loc x1)
 
11332
                                (Ast.PaApp (_loc,
 
11333
                                   (Ast.PaId (_loc,
 
11334
                                      (Ast.IdAcc (_loc,
 
11335
                                         (Ast.IdUid (_loc, "Ast")),
 
11336
                                         (Ast.IdUid (_loc, "MtId")))))),
 
11337
                                   (meta_loc _loc x0))),
 
11338
                                (meta_ident _loc x1))
10768
11339
                          | Ast.MtNil x0 ->
10769
11340
                              Ast.PaApp (_loc,
10770
 
                                Ast.PaId (_loc,
10771
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10772
 
                                    Ast.IdUid (_loc, "MtNil"))),
10773
 
                                meta_loc _loc x0)
 
11341
                                (Ast.PaId (_loc,
 
11342
                                   (Ast.IdAcc (_loc,
 
11343
                                      (Ast.IdUid (_loc, "Ast")),
 
11344
                                      (Ast.IdUid (_loc, "MtNil")))))),
 
11345
                                (meta_loc _loc x0))
 
11346
                        and meta_mutable_flag _loc =
 
11347
                          function
 
11348
                          | Ast.MuAnt x0 -> Ast.PaAnt (_loc, x0)
 
11349
                          | Ast.MuNil ->
 
11350
                              Ast.PaId (_loc,
 
11351
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11352
                                   (Ast.IdUid (_loc, "MuNil")))))
 
11353
                          | Ast.MuMutable ->
 
11354
                              Ast.PaId (_loc,
 
11355
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11356
                                   (Ast.IdUid (_loc, "MuMutable")))))
 
11357
                        and meta_override_flag _loc =
 
11358
                          function
 
11359
                          | Ast.OvAnt x0 -> Ast.PaAnt (_loc, x0)
 
11360
                          | Ast.OvNil ->
 
11361
                              Ast.PaId (_loc,
 
11362
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11363
                                   (Ast.IdUid (_loc, "OvNil")))))
 
11364
                          | Ast.OvOverride ->
 
11365
                              Ast.PaId (_loc,
 
11366
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11367
                                   (Ast.IdUid (_loc, "OvOverride")))))
10774
11368
                        and meta_patt _loc =
10775
11369
                          function
10776
11370
                          | Ast.PaLaz (x0, x1) ->
10777
11371
                              Ast.PaApp (_loc,
10778
 
                                Ast.PaApp (_loc,
10779
 
                                  Ast.PaId (_loc,
10780
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10781
 
                                      Ast.IdUid (_loc, "PaLaz"))),
10782
 
                                  meta_loc _loc x0),
10783
 
                                meta_patt _loc x1)
 
11372
                                (Ast.PaApp (_loc,
 
11373
                                   (Ast.PaId (_loc,
 
11374
                                      (Ast.IdAcc (_loc,
 
11375
                                         (Ast.IdUid (_loc, "Ast")),
 
11376
                                         (Ast.IdUid (_loc, "PaLaz")))))),
 
11377
                                   (meta_loc _loc x0))),
 
11378
                                (meta_patt _loc x1))
10784
11379
                          | Ast.PaVrn (x0, x1) ->
10785
11380
                              Ast.PaApp (_loc,
10786
 
                                Ast.PaApp (_loc,
10787
 
                                  Ast.PaId (_loc,
10788
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10789
 
                                      Ast.IdUid (_loc, "PaVrn"))),
10790
 
                                  meta_loc _loc x0),
10791
 
                                meta_string _loc x1)
 
11381
                                (Ast.PaApp (_loc,
 
11382
                                   (Ast.PaId (_loc,
 
11383
                                      (Ast.IdAcc (_loc,
 
11384
                                         (Ast.IdUid (_loc, "Ast")),
 
11385
                                         (Ast.IdUid (_loc, "PaVrn")))))),
 
11386
                                   (meta_loc _loc x0))),
 
11387
                                (meta_string _loc x1))
10792
11388
                          | Ast.PaTyp (x0, x1) ->
10793
11389
                              Ast.PaApp (_loc,
10794
 
                                Ast.PaApp (_loc,
10795
 
                                  Ast.PaId (_loc,
10796
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10797
 
                                      Ast.IdUid (_loc, "PaTyp"))),
10798
 
                                  meta_loc _loc x0),
10799
 
                                meta_ident _loc x1)
 
11390
                                (Ast.PaApp (_loc,
 
11391
                                   (Ast.PaId (_loc,
 
11392
                                      (Ast.IdAcc (_loc,
 
11393
                                         (Ast.IdUid (_loc, "Ast")),
 
11394
                                         (Ast.IdUid (_loc, "PaTyp")))))),
 
11395
                                   (meta_loc _loc x0))),
 
11396
                                (meta_ident _loc x1))
10800
11397
                          | Ast.PaTyc (x0, x1, x2) ->
10801
11398
                              Ast.PaApp (_loc,
10802
 
                                Ast.PaApp (_loc,
10803
 
                                  Ast.PaApp (_loc,
10804
 
                                    Ast.PaId (_loc,
10805
 
                                      Ast.IdAcc (_loc,
10806
 
                                        Ast.IdUid (_loc, "Ast"),
10807
 
                                        Ast.IdUid (_loc, "PaTyc"))),
10808
 
                                    meta_loc _loc x0),
10809
 
                                  meta_patt _loc x1),
10810
 
                                meta_ctyp _loc x2)
 
11399
                                (Ast.PaApp (_loc,
 
11400
                                   (Ast.PaApp (_loc,
 
11401
                                      (Ast.PaId (_loc,
 
11402
                                         (Ast.IdAcc (_loc,
 
11403
                                            (Ast.IdUid (_loc, "Ast")),
 
11404
                                            (Ast.IdUid (_loc, "PaTyc")))))),
 
11405
                                      (meta_loc _loc x0))),
 
11406
                                   (meta_patt _loc x1))),
 
11407
                                (meta_ctyp _loc x2))
10811
11408
                          | Ast.PaTup (x0, x1) ->
10812
11409
                              Ast.PaApp (_loc,
10813
 
                                Ast.PaApp (_loc,
10814
 
                                  Ast.PaId (_loc,
10815
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10816
 
                                      Ast.IdUid (_loc, "PaTup"))),
10817
 
                                  meta_loc _loc x0),
10818
 
                                meta_patt _loc x1)
 
11410
                                (Ast.PaApp (_loc,
 
11411
                                   (Ast.PaId (_loc,
 
11412
                                      (Ast.IdAcc (_loc,
 
11413
                                         (Ast.IdUid (_loc, "Ast")),
 
11414
                                         (Ast.IdUid (_loc, "PaTup")))))),
 
11415
                                   (meta_loc _loc x0))),
 
11416
                                (meta_patt _loc x1))
10819
11417
                          | Ast.PaStr (x0, x1) ->
10820
11418
                              Ast.PaApp (_loc,
10821
 
                                Ast.PaApp (_loc,
10822
 
                                  Ast.PaId (_loc,
10823
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10824
 
                                      Ast.IdUid (_loc, "PaStr"))),
10825
 
                                  meta_loc _loc x0),
10826
 
                                meta_string _loc x1)
 
11419
                                (Ast.PaApp (_loc,
 
11420
                                   (Ast.PaId (_loc,
 
11421
                                      (Ast.IdAcc (_loc,
 
11422
                                         (Ast.IdUid (_loc, "Ast")),
 
11423
                                         (Ast.IdUid (_loc, "PaStr")))))),
 
11424
                                   (meta_loc _loc x0))),
 
11425
                                (meta_string _loc x1))
10827
11426
                          | Ast.PaEq (x0, x1, x2) ->
10828
11427
                              Ast.PaApp (_loc,
10829
 
                                Ast.PaApp (_loc,
10830
 
                                  Ast.PaApp (_loc,
10831
 
                                    Ast.PaId (_loc,
10832
 
                                      Ast.IdAcc (_loc,
10833
 
                                        Ast.IdUid (_loc, "Ast"),
10834
 
                                        Ast.IdUid (_loc, "PaEq"))),
10835
 
                                    meta_loc _loc x0),
10836
 
                                  meta_ident _loc x1),
10837
 
                                meta_patt _loc x2)
 
11428
                                (Ast.PaApp (_loc,
 
11429
                                   (Ast.PaApp (_loc,
 
11430
                                      (Ast.PaId (_loc,
 
11431
                                         (Ast.IdAcc (_loc,
 
11432
                                            (Ast.IdUid (_loc, "Ast")),
 
11433
                                            (Ast.IdUid (_loc, "PaEq")))))),
 
11434
                                      (meta_loc _loc x0))),
 
11435
                                   (meta_ident _loc x1))),
 
11436
                                (meta_patt _loc x2))
10838
11437
                          | Ast.PaRec (x0, x1) ->
10839
11438
                              Ast.PaApp (_loc,
10840
 
                                Ast.PaApp (_loc,
10841
 
                                  Ast.PaId (_loc,
10842
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10843
 
                                      Ast.IdUid (_loc, "PaRec"))),
10844
 
                                  meta_loc _loc x0),
10845
 
                                meta_patt _loc x1)
 
11439
                                (Ast.PaApp (_loc,
 
11440
                                   (Ast.PaId (_loc,
 
11441
                                      (Ast.IdAcc (_loc,
 
11442
                                         (Ast.IdUid (_loc, "Ast")),
 
11443
                                         (Ast.IdUid (_loc, "PaRec")))))),
 
11444
                                   (meta_loc _loc x0))),
 
11445
                                (meta_patt _loc x1))
10846
11446
                          | Ast.PaRng (x0, x1, x2) ->
10847
11447
                              Ast.PaApp (_loc,
10848
 
                                Ast.PaApp (_loc,
10849
 
                                  Ast.PaApp (_loc,
10850
 
                                    Ast.PaId (_loc,
10851
 
                                      Ast.IdAcc (_loc,
10852
 
                                        Ast.IdUid (_loc, "Ast"),
10853
 
                                        Ast.IdUid (_loc, "PaRng"))),
10854
 
                                    meta_loc _loc x0),
10855
 
                                  meta_patt _loc x1),
10856
 
                                meta_patt _loc x2)
 
11448
                                (Ast.PaApp (_loc,
 
11449
                                   (Ast.PaApp (_loc,
 
11450
                                      (Ast.PaId (_loc,
 
11451
                                         (Ast.IdAcc (_loc,
 
11452
                                            (Ast.IdUid (_loc, "Ast")),
 
11453
                                            (Ast.IdUid (_loc, "PaRng")))))),
 
11454
                                      (meta_loc _loc x0))),
 
11455
                                   (meta_patt _loc x1))),
 
11456
                                (meta_patt _loc x2))
10857
11457
                          | Ast.PaOrp (x0, x1, x2) ->
10858
11458
                              Ast.PaApp (_loc,
10859
 
                                Ast.PaApp (_loc,
10860
 
                                  Ast.PaApp (_loc,
10861
 
                                    Ast.PaId (_loc,
10862
 
                                      Ast.IdAcc (_loc,
10863
 
                                        Ast.IdUid (_loc, "Ast"),
10864
 
                                        Ast.IdUid (_loc, "PaOrp"))),
10865
 
                                    meta_loc _loc x0),
10866
 
                                  meta_patt _loc x1),
10867
 
                                meta_patt _loc x2)
 
11459
                                (Ast.PaApp (_loc,
 
11460
                                   (Ast.PaApp (_loc,
 
11461
                                      (Ast.PaId (_loc,
 
11462
                                         (Ast.IdAcc (_loc,
 
11463
                                            (Ast.IdUid (_loc, "Ast")),
 
11464
                                            (Ast.IdUid (_loc, "PaOrp")))))),
 
11465
                                      (meta_loc _loc x0))),
 
11466
                                   (meta_patt _loc x1))),
 
11467
                                (meta_patt _loc x2))
10868
11468
                          | Ast.PaOlbi (x0, x1, x2, x3) ->
10869
11469
                              Ast.PaApp (_loc,
10870
 
                                Ast.PaApp (_loc,
10871
 
                                  Ast.PaApp (_loc,
10872
 
                                    Ast.PaApp (_loc,
10873
 
                                      Ast.PaId (_loc,
10874
 
                                        Ast.IdAcc (_loc,
10875
 
                                          Ast.IdUid (_loc, "Ast"),
10876
 
                                          Ast.IdUid (_loc, "PaOlbi"))),
10877
 
                                      meta_loc _loc x0),
10878
 
                                    meta_string _loc x1),
10879
 
                                  meta_patt _loc x2),
10880
 
                                meta_expr _loc x3)
 
11470
                                (Ast.PaApp (_loc,
 
11471
                                   (Ast.PaApp (_loc,
 
11472
                                      (Ast.PaApp (_loc,
 
11473
                                         (Ast.PaId (_loc,
 
11474
                                            (Ast.IdAcc (_loc,
 
11475
                                               (Ast.IdUid (_loc, "Ast")),
 
11476
                                               (Ast.IdUid (_loc, "PaOlbi")))))),
 
11477
                                         (meta_loc _loc x0))),
 
11478
                                      (meta_string _loc x1))),
 
11479
                                   (meta_patt _loc x2))),
 
11480
                                (meta_expr _loc x3))
10881
11481
                          | Ast.PaOlb (x0, x1, x2) ->
10882
11482
                              Ast.PaApp (_loc,
10883
 
                                Ast.PaApp (_loc,
10884
 
                                  Ast.PaApp (_loc,
10885
 
                                    Ast.PaId (_loc,
10886
 
                                      Ast.IdAcc (_loc,
10887
 
                                        Ast.IdUid (_loc, "Ast"),
10888
 
                                        Ast.IdUid (_loc, "PaOlb"))),
10889
 
                                    meta_loc _loc x0),
10890
 
                                  meta_string _loc x1),
10891
 
                                meta_patt _loc x2)
 
11483
                                (Ast.PaApp (_loc,
 
11484
                                   (Ast.PaApp (_loc,
 
11485
                                      (Ast.PaId (_loc,
 
11486
                                         (Ast.IdAcc (_loc,
 
11487
                                            (Ast.IdUid (_loc, "Ast")),
 
11488
                                            (Ast.IdUid (_loc, "PaOlb")))))),
 
11489
                                      (meta_loc _loc x0))),
 
11490
                                   (meta_string _loc x1))),
 
11491
                                (meta_patt _loc x2))
10892
11492
                          | Ast.PaLab (x0, x1, x2) ->
10893
11493
                              Ast.PaApp (_loc,
10894
 
                                Ast.PaApp (_loc,
10895
 
                                  Ast.PaApp (_loc,
10896
 
                                    Ast.PaId (_loc,
10897
 
                                      Ast.IdAcc (_loc,
10898
 
                                        Ast.IdUid (_loc, "Ast"),
10899
 
                                        Ast.IdUid (_loc, "PaLab"))),
10900
 
                                    meta_loc _loc x0),
10901
 
                                  meta_string _loc x1),
10902
 
                                meta_patt _loc x2)
 
11494
                                (Ast.PaApp (_loc,
 
11495
                                   (Ast.PaApp (_loc,
 
11496
                                      (Ast.PaId (_loc,
 
11497
                                         (Ast.IdAcc (_loc,
 
11498
                                            (Ast.IdUid (_loc, "Ast")),
 
11499
                                            (Ast.IdUid (_loc, "PaLab")))))),
 
11500
                                      (meta_loc _loc x0))),
 
11501
                                   (meta_string _loc x1))),
 
11502
                                (meta_patt _loc x2))
10903
11503
                          | Ast.PaFlo (x0, x1) ->
10904
11504
                              Ast.PaApp (_loc,
10905
 
                                Ast.PaApp (_loc,
10906
 
                                  Ast.PaId (_loc,
10907
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10908
 
                                      Ast.IdUid (_loc, "PaFlo"))),
10909
 
                                  meta_loc _loc x0),
10910
 
                                meta_string _loc x1)
 
11505
                                (Ast.PaApp (_loc,
 
11506
                                   (Ast.PaId (_loc,
 
11507
                                      (Ast.IdAcc (_loc,
 
11508
                                         (Ast.IdUid (_loc, "Ast")),
 
11509
                                         (Ast.IdUid (_loc, "PaFlo")))))),
 
11510
                                   (meta_loc _loc x0))),
 
11511
                                (meta_string _loc x1))
10911
11512
                          | Ast.PaNativeInt (x0, x1) ->
10912
11513
                              Ast.PaApp (_loc,
10913
 
                                Ast.PaApp (_loc,
10914
 
                                  Ast.PaId (_loc,
10915
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10916
 
                                      Ast.IdUid (_loc, "PaNativeInt"))),
10917
 
                                  meta_loc _loc x0),
10918
 
                                meta_string _loc x1)
 
11514
                                (Ast.PaApp (_loc,
 
11515
                                   (Ast.PaId (_loc,
 
11516
                                      (Ast.IdAcc (_loc,
 
11517
                                         (Ast.IdUid (_loc, "Ast")),
 
11518
                                         (Ast.IdUid (_loc, "PaNativeInt")))))),
 
11519
                                   (meta_loc _loc x0))),
 
11520
                                (meta_string _loc x1))
10919
11521
                          | Ast.PaInt64 (x0, x1) ->
10920
11522
                              Ast.PaApp (_loc,
10921
 
                                Ast.PaApp (_loc,
10922
 
                                  Ast.PaId (_loc,
10923
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10924
 
                                      Ast.IdUid (_loc, "PaInt64"))),
10925
 
                                  meta_loc _loc x0),
10926
 
                                meta_string _loc x1)
 
11523
                                (Ast.PaApp (_loc,
 
11524
                                   (Ast.PaId (_loc,
 
11525
                                      (Ast.IdAcc (_loc,
 
11526
                                         (Ast.IdUid (_loc, "Ast")),
 
11527
                                         (Ast.IdUid (_loc, "PaInt64")))))),
 
11528
                                   (meta_loc _loc x0))),
 
11529
                                (meta_string _loc x1))
10927
11530
                          | Ast.PaInt32 (x0, x1) ->
10928
11531
                              Ast.PaApp (_loc,
10929
 
                                Ast.PaApp (_loc,
10930
 
                                  Ast.PaId (_loc,
10931
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10932
 
                                      Ast.IdUid (_loc, "PaInt32"))),
10933
 
                                  meta_loc _loc x0),
10934
 
                                meta_string _loc x1)
 
11532
                                (Ast.PaApp (_loc,
 
11533
                                   (Ast.PaId (_loc,
 
11534
                                      (Ast.IdAcc (_loc,
 
11535
                                         (Ast.IdUid (_loc, "Ast")),
 
11536
                                         (Ast.IdUid (_loc, "PaInt32")))))),
 
11537
                                   (meta_loc _loc x0))),
 
11538
                                (meta_string _loc x1))
10935
11539
                          | Ast.PaInt (x0, x1) ->
10936
11540
                              Ast.PaApp (_loc,
10937
 
                                Ast.PaApp (_loc,
10938
 
                                  Ast.PaId (_loc,
10939
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10940
 
                                      Ast.IdUid (_loc, "PaInt"))),
10941
 
                                  meta_loc _loc x0),
10942
 
                                meta_string _loc x1)
 
11541
                                (Ast.PaApp (_loc,
 
11542
                                   (Ast.PaId (_loc,
 
11543
                                      (Ast.IdAcc (_loc,
 
11544
                                         (Ast.IdUid (_loc, "Ast")),
 
11545
                                         (Ast.IdUid (_loc, "PaInt")))))),
 
11546
                                   (meta_loc _loc x0))),
 
11547
                                (meta_string _loc x1))
10943
11548
                          | Ast.PaChr (x0, x1) ->
10944
11549
                              Ast.PaApp (_loc,
10945
 
                                Ast.PaApp (_loc,
10946
 
                                  Ast.PaId (_loc,
10947
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10948
 
                                      Ast.IdUid (_loc, "PaChr"))),
10949
 
                                  meta_loc _loc x0),
10950
 
                                meta_string _loc x1)
 
11550
                                (Ast.PaApp (_loc,
 
11551
                                   (Ast.PaId (_loc,
 
11552
                                      (Ast.IdAcc (_loc,
 
11553
                                         (Ast.IdUid (_loc, "Ast")),
 
11554
                                         (Ast.IdUid (_loc, "PaChr")))))),
 
11555
                                   (meta_loc _loc x0))),
 
11556
                                (meta_string _loc x1))
10951
11557
                          | Ast.PaSem (x0, x1, x2) ->
10952
11558
                              Ast.PaApp (_loc,
10953
 
                                Ast.PaApp (_loc,
10954
 
                                  Ast.PaApp (_loc,
10955
 
                                    Ast.PaId (_loc,
10956
 
                                      Ast.IdAcc (_loc,
10957
 
                                        Ast.IdUid (_loc, "Ast"),
10958
 
                                        Ast.IdUid (_loc, "PaSem"))),
10959
 
                                    meta_loc _loc x0),
10960
 
                                  meta_patt _loc x1),
10961
 
                                meta_patt _loc x2)
 
11559
                                (Ast.PaApp (_loc,
 
11560
                                   (Ast.PaApp (_loc,
 
11561
                                      (Ast.PaId (_loc,
 
11562
                                         (Ast.IdAcc (_loc,
 
11563
                                            (Ast.IdUid (_loc, "Ast")),
 
11564
                                            (Ast.IdUid (_loc, "PaSem")))))),
 
11565
                                      (meta_loc _loc x0))),
 
11566
                                   (meta_patt _loc x1))),
 
11567
                                (meta_patt _loc x2))
10962
11568
                          | Ast.PaCom (x0, x1, x2) ->
10963
11569
                              Ast.PaApp (_loc,
10964
 
                                Ast.PaApp (_loc,
10965
 
                                  Ast.PaApp (_loc,
10966
 
                                    Ast.PaId (_loc,
10967
 
                                      Ast.IdAcc (_loc,
10968
 
                                        Ast.IdUid (_loc, "Ast"),
10969
 
                                        Ast.IdUid (_loc, "PaCom"))),
10970
 
                                    meta_loc _loc x0),
10971
 
                                  meta_patt _loc x1),
10972
 
                                meta_patt _loc x2)
 
11570
                                (Ast.PaApp (_loc,
 
11571
                                   (Ast.PaApp (_loc,
 
11572
                                      (Ast.PaId (_loc,
 
11573
                                         (Ast.IdAcc (_loc,
 
11574
                                            (Ast.IdUid (_loc, "Ast")),
 
11575
                                            (Ast.IdUid (_loc, "PaCom")))))),
 
11576
                                      (meta_loc _loc x0))),
 
11577
                                   (meta_patt _loc x1))),
 
11578
                                (meta_patt _loc x2))
10973
11579
                          | Ast.PaArr (x0, x1) ->
10974
11580
                              Ast.PaApp (_loc,
10975
 
                                Ast.PaApp (_loc,
10976
 
                                  Ast.PaId (_loc,
10977
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10978
 
                                      Ast.IdUid (_loc, "PaArr"))),
10979
 
                                  meta_loc _loc x0),
10980
 
                                meta_patt _loc x1)
 
11581
                                (Ast.PaApp (_loc,
 
11582
                                   (Ast.PaId (_loc,
 
11583
                                      (Ast.IdAcc (_loc,
 
11584
                                         (Ast.IdUid (_loc, "Ast")),
 
11585
                                         (Ast.IdUid (_loc, "PaArr")))))),
 
11586
                                   (meta_loc _loc x0))),
 
11587
                                (meta_patt _loc x1))
10981
11588
                          | Ast.PaApp (x0, x1, x2) ->
10982
11589
                              Ast.PaApp (_loc,
10983
 
                                Ast.PaApp (_loc,
10984
 
                                  Ast.PaApp (_loc,
10985
 
                                    Ast.PaId (_loc,
10986
 
                                      Ast.IdAcc (_loc,
10987
 
                                        Ast.IdUid (_loc, "Ast"),
10988
 
                                        Ast.IdUid (_loc, "PaApp"))),
10989
 
                                    meta_loc _loc x0),
10990
 
                                  meta_patt _loc x1),
10991
 
                                meta_patt _loc x2)
 
11590
                                (Ast.PaApp (_loc,
 
11591
                                   (Ast.PaApp (_loc,
 
11592
                                      (Ast.PaId (_loc,
 
11593
                                         (Ast.IdAcc (_loc,
 
11594
                                            (Ast.IdUid (_loc, "Ast")),
 
11595
                                            (Ast.IdUid (_loc, "PaApp")))))),
 
11596
                                      (meta_loc _loc x0))),
 
11597
                                   (meta_patt _loc x1))),
 
11598
                                (meta_patt _loc x2))
10992
11599
                          | Ast.PaAny x0 ->
10993
11600
                              Ast.PaApp (_loc,
10994
 
                                Ast.PaId (_loc,
10995
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
10996
 
                                    Ast.IdUid (_loc, "PaAny"))),
10997
 
                                meta_loc _loc x0)
 
11601
                                (Ast.PaId (_loc,
 
11602
                                   (Ast.IdAcc (_loc,
 
11603
                                      (Ast.IdUid (_loc, "Ast")),
 
11604
                                      (Ast.IdUid (_loc, "PaAny")))))),
 
11605
                                (meta_loc _loc x0))
10998
11606
                          | Ast.PaAnt (x0, x1) -> Ast.PaAnt (x0, x1)
10999
11607
                          | Ast.PaAli (x0, x1, x2) ->
11000
11608
                              Ast.PaApp (_loc,
11001
 
                                Ast.PaApp (_loc,
11002
 
                                  Ast.PaApp (_loc,
11003
 
                                    Ast.PaId (_loc,
11004
 
                                      Ast.IdAcc (_loc,
11005
 
                                        Ast.IdUid (_loc, "Ast"),
11006
 
                                        Ast.IdUid (_loc, "PaAli"))),
11007
 
                                    meta_loc _loc x0),
11008
 
                                  meta_patt _loc x1),
11009
 
                                meta_patt _loc x2)
 
11609
                                (Ast.PaApp (_loc,
 
11610
                                   (Ast.PaApp (_loc,
 
11611
                                      (Ast.PaId (_loc,
 
11612
                                         (Ast.IdAcc (_loc,
 
11613
                                            (Ast.IdUid (_loc, "Ast")),
 
11614
                                            (Ast.IdUid (_loc, "PaAli")))))),
 
11615
                                      (meta_loc _loc x0))),
 
11616
                                   (meta_patt _loc x1))),
 
11617
                                (meta_patt _loc x2))
11010
11618
                          | Ast.PaId (x0, x1) ->
11011
11619
                              Ast.PaApp (_loc,
11012
 
                                Ast.PaApp (_loc,
11013
 
                                  Ast.PaId (_loc,
11014
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11015
 
                                      Ast.IdUid (_loc, "PaId"))),
11016
 
                                  meta_loc _loc x0),
11017
 
                                meta_ident _loc x1)
 
11620
                                (Ast.PaApp (_loc,
 
11621
                                   (Ast.PaId (_loc,
 
11622
                                      (Ast.IdAcc (_loc,
 
11623
                                         (Ast.IdUid (_loc, "Ast")),
 
11624
                                         (Ast.IdUid (_loc, "PaId")))))),
 
11625
                                   (meta_loc _loc x0))),
 
11626
                                (meta_ident _loc x1))
11018
11627
                          | Ast.PaNil x0 ->
11019
11628
                              Ast.PaApp (_loc,
11020
 
                                Ast.PaId (_loc,
11021
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11022
 
                                    Ast.IdUid (_loc, "PaNil"))),
11023
 
                                meta_loc _loc x0)
 
11629
                                (Ast.PaId (_loc,
 
11630
                                   (Ast.IdAcc (_loc,
 
11631
                                      (Ast.IdUid (_loc, "Ast")),
 
11632
                                      (Ast.IdUid (_loc, "PaNil")))))),
 
11633
                                (meta_loc _loc x0))
 
11634
                        and meta_private_flag _loc =
 
11635
                          function
 
11636
                          | Ast.PrAnt x0 -> Ast.PaAnt (_loc, x0)
 
11637
                          | Ast.PrNil ->
 
11638
                              Ast.PaId (_loc,
 
11639
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11640
                                   (Ast.IdUid (_loc, "PrNil")))))
 
11641
                          | Ast.PrPrivate ->
 
11642
                              Ast.PaId (_loc,
 
11643
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11644
                                   (Ast.IdUid (_loc, "PrPrivate")))))
11024
11645
                        and meta_rec_binding _loc =
11025
11646
                          function
11026
11647
                          | Ast.RbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
11027
11648
                          | Ast.RbEq (x0, x1, x2) ->
11028
11649
                              Ast.PaApp (_loc,
11029
 
                                Ast.PaApp (_loc,
11030
 
                                  Ast.PaApp (_loc,
11031
 
                                    Ast.PaId (_loc,
11032
 
                                      Ast.IdAcc (_loc,
11033
 
                                        Ast.IdUid (_loc, "Ast"),
11034
 
                                        Ast.IdUid (_loc, "RbEq"))),
11035
 
                                    meta_loc _loc x0),
11036
 
                                  meta_ident _loc x1),
11037
 
                                meta_expr _loc x2)
 
11650
                                (Ast.PaApp (_loc,
 
11651
                                   (Ast.PaApp (_loc,
 
11652
                                      (Ast.PaId (_loc,
 
11653
                                         (Ast.IdAcc (_loc,
 
11654
                                            (Ast.IdUid (_loc, "Ast")),
 
11655
                                            (Ast.IdUid (_loc, "RbEq")))))),
 
11656
                                      (meta_loc _loc x0))),
 
11657
                                   (meta_ident _loc x1))),
 
11658
                                (meta_expr _loc x2))
11038
11659
                          | Ast.RbSem (x0, x1, x2) ->
11039
11660
                              Ast.PaApp (_loc,
11040
 
                                Ast.PaApp (_loc,
11041
 
                                  Ast.PaApp (_loc,
11042
 
                                    Ast.PaId (_loc,
11043
 
                                      Ast.IdAcc (_loc,
11044
 
                                        Ast.IdUid (_loc, "Ast"),
11045
 
                                        Ast.IdUid (_loc, "RbSem"))),
11046
 
                                    meta_loc _loc x0),
11047
 
                                  meta_rec_binding _loc x1),
11048
 
                                meta_rec_binding _loc x2)
 
11661
                                (Ast.PaApp (_loc,
 
11662
                                   (Ast.PaApp (_loc,
 
11663
                                      (Ast.PaId (_loc,
 
11664
                                         (Ast.IdAcc (_loc,
 
11665
                                            (Ast.IdUid (_loc, "Ast")),
 
11666
                                            (Ast.IdUid (_loc, "RbSem")))))),
 
11667
                                      (meta_loc _loc x0))),
 
11668
                                   (meta_rec_binding _loc x1))),
 
11669
                                (meta_rec_binding _loc x2))
11049
11670
                          | Ast.RbNil x0 ->
11050
11671
                              Ast.PaApp (_loc,
11051
 
                                Ast.PaId (_loc,
11052
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11053
 
                                    Ast.IdUid (_loc, "RbNil"))),
11054
 
                                meta_loc _loc x0)
 
11672
                                (Ast.PaId (_loc,
 
11673
                                   (Ast.IdAcc (_loc,
 
11674
                                      (Ast.IdUid (_loc, "Ast")),
 
11675
                                      (Ast.IdUid (_loc, "RbNil")))))),
 
11676
                                (meta_loc _loc x0))
 
11677
                        and meta_rec_flag _loc =
 
11678
                          function
 
11679
                          | Ast.ReAnt x0 -> Ast.PaAnt (_loc, x0)
 
11680
                          | Ast.ReNil ->
 
11681
                              Ast.PaId (_loc,
 
11682
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11683
                                   (Ast.IdUid (_loc, "ReNil")))))
 
11684
                          | Ast.ReRecursive ->
 
11685
                              Ast.PaId (_loc,
 
11686
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11687
                                   (Ast.IdUid (_loc, "ReRecursive")))))
 
11688
                        and meta_row_var_flag _loc =
 
11689
                          function
 
11690
                          | Ast.RvAnt x0 -> Ast.PaAnt (_loc, x0)
 
11691
                          | Ast.RvNil ->
 
11692
                              Ast.PaId (_loc,
 
11693
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11694
                                   (Ast.IdUid (_loc, "RvNil")))))
 
11695
                          | Ast.RvRowVar ->
 
11696
                              Ast.PaId (_loc,
 
11697
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11698
                                   (Ast.IdUid (_loc, "RvRowVar")))))
11055
11699
                        and meta_sig_item _loc =
11056
11700
                          function
11057
11701
                          | Ast.SgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
11058
11702
                          | Ast.SgVal (x0, x1, x2) ->
11059
11703
                              Ast.PaApp (_loc,
11060
 
                                Ast.PaApp (_loc,
11061
 
                                  Ast.PaApp (_loc,
11062
 
                                    Ast.PaId (_loc,
11063
 
                                      Ast.IdAcc (_loc,
11064
 
                                        Ast.IdUid (_loc, "Ast"),
11065
 
                                        Ast.IdUid (_loc, "SgVal"))),
11066
 
                                    meta_loc _loc x0),
11067
 
                                  meta_string _loc x1),
11068
 
                                meta_ctyp _loc x2)
 
11704
                                (Ast.PaApp (_loc,
 
11705
                                   (Ast.PaApp (_loc,
 
11706
                                      (Ast.PaId (_loc,
 
11707
                                         (Ast.IdAcc (_loc,
 
11708
                                            (Ast.IdUid (_loc, "Ast")),
 
11709
                                            (Ast.IdUid (_loc, "SgVal")))))),
 
11710
                                      (meta_loc _loc x0))),
 
11711
                                   (meta_string _loc x1))),
 
11712
                                (meta_ctyp _loc x2))
11069
11713
                          | Ast.SgTyp (x0, x1) ->
11070
11714
                              Ast.PaApp (_loc,
11071
 
                                Ast.PaApp (_loc,
11072
 
                                  Ast.PaId (_loc,
11073
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11074
 
                                      Ast.IdUid (_loc, "SgTyp"))),
11075
 
                                  meta_loc _loc x0),
11076
 
                                meta_ctyp _loc x1)
 
11715
                                (Ast.PaApp (_loc,
 
11716
                                   (Ast.PaId (_loc,
 
11717
                                      (Ast.IdAcc (_loc,
 
11718
                                         (Ast.IdUid (_loc, "Ast")),
 
11719
                                         (Ast.IdUid (_loc, "SgTyp")))))),
 
11720
                                   (meta_loc _loc x0))),
 
11721
                                (meta_ctyp _loc x1))
11077
11722
                          | Ast.SgOpn (x0, x1) ->
11078
11723
                              Ast.PaApp (_loc,
11079
 
                                Ast.PaApp (_loc,
11080
 
                                  Ast.PaId (_loc,
11081
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11082
 
                                      Ast.IdUid (_loc, "SgOpn"))),
11083
 
                                  meta_loc _loc x0),
11084
 
                                meta_ident _loc x1)
 
11724
                                (Ast.PaApp (_loc,
 
11725
                                   (Ast.PaId (_loc,
 
11726
                                      (Ast.IdAcc (_loc,
 
11727
                                         (Ast.IdUid (_loc, "Ast")),
 
11728
                                         (Ast.IdUid (_loc, "SgOpn")))))),
 
11729
                                   (meta_loc _loc x0))),
 
11730
                                (meta_ident _loc x1))
11085
11731
                          | Ast.SgMty (x0, x1, x2) ->
11086
11732
                              Ast.PaApp (_loc,
11087
 
                                Ast.PaApp (_loc,
11088
 
                                  Ast.PaApp (_loc,
11089
 
                                    Ast.PaId (_loc,
11090
 
                                      Ast.IdAcc (_loc,
11091
 
                                        Ast.IdUid (_loc, "Ast"),
11092
 
                                        Ast.IdUid (_loc, "SgMty"))),
11093
 
                                    meta_loc _loc x0),
11094
 
                                  meta_string _loc x1),
11095
 
                                meta_module_type _loc x2)
 
11733
                                (Ast.PaApp (_loc,
 
11734
                                   (Ast.PaApp (_loc,
 
11735
                                      (Ast.PaId (_loc,
 
11736
                                         (Ast.IdAcc (_loc,
 
11737
                                            (Ast.IdUid (_loc, "Ast")),
 
11738
                                            (Ast.IdUid (_loc, "SgMty")))))),
 
11739
                                      (meta_loc _loc x0))),
 
11740
                                   (meta_string _loc x1))),
 
11741
                                (meta_module_type _loc x2))
11096
11742
                          | Ast.SgRecMod (x0, x1) ->
11097
11743
                              Ast.PaApp (_loc,
11098
 
                                Ast.PaApp (_loc,
11099
 
                                  Ast.PaId (_loc,
11100
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11101
 
                                      Ast.IdUid (_loc, "SgRecMod"))),
11102
 
                                  meta_loc _loc x0),
11103
 
                                meta_module_binding _loc x1)
 
11744
                                (Ast.PaApp (_loc,
 
11745
                                   (Ast.PaId (_loc,
 
11746
                                      (Ast.IdAcc (_loc,
 
11747
                                         (Ast.IdUid (_loc, "Ast")),
 
11748
                                         (Ast.IdUid (_loc, "SgRecMod")))))),
 
11749
                                   (meta_loc _loc x0))),
 
11750
                                (meta_module_binding _loc x1))
11104
11751
                          | Ast.SgMod (x0, x1, x2) ->
11105
11752
                              Ast.PaApp (_loc,
11106
 
                                Ast.PaApp (_loc,
11107
 
                                  Ast.PaApp (_loc,
11108
 
                                    Ast.PaId (_loc,
11109
 
                                      Ast.IdAcc (_loc,
11110
 
                                        Ast.IdUid (_loc, "Ast"),
11111
 
                                        Ast.IdUid (_loc, "SgMod"))),
11112
 
                                    meta_loc _loc x0),
11113
 
                                  meta_string _loc x1),
11114
 
                                meta_module_type _loc x2)
 
11753
                                (Ast.PaApp (_loc,
 
11754
                                   (Ast.PaApp (_loc,
 
11755
                                      (Ast.PaId (_loc,
 
11756
                                         (Ast.IdAcc (_loc,
 
11757
                                            (Ast.IdUid (_loc, "Ast")),
 
11758
                                            (Ast.IdUid (_loc, "SgMod")))))),
 
11759
                                      (meta_loc _loc x0))),
 
11760
                                   (meta_string _loc x1))),
 
11761
                                (meta_module_type _loc x2))
11115
11762
                          | Ast.SgInc (x0, x1) ->
11116
11763
                              Ast.PaApp (_loc,
11117
 
                                Ast.PaApp (_loc,
11118
 
                                  Ast.PaId (_loc,
11119
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11120
 
                                      Ast.IdUid (_loc, "SgInc"))),
11121
 
                                  meta_loc _loc x0),
11122
 
                                meta_module_type _loc x1)
 
11764
                                (Ast.PaApp (_loc,
 
11765
                                   (Ast.PaId (_loc,
 
11766
                                      (Ast.IdAcc (_loc,
 
11767
                                         (Ast.IdUid (_loc, "Ast")),
 
11768
                                         (Ast.IdUid (_loc, "SgInc")))))),
 
11769
                                   (meta_loc _loc x0))),
 
11770
                                (meta_module_type _loc x1))
11123
11771
                          | Ast.SgExt (x0, x1, x2, x3) ->
11124
11772
                              Ast.PaApp (_loc,
11125
 
                                Ast.PaApp (_loc,
11126
 
                                  Ast.PaApp (_loc,
11127
 
                                    Ast.PaApp (_loc,
11128
 
                                      Ast.PaId (_loc,
11129
 
                                        Ast.IdAcc (_loc,
11130
 
                                          Ast.IdUid (_loc, "Ast"),
11131
 
                                          Ast.IdUid (_loc, "SgExt"))),
11132
 
                                      meta_loc _loc x0),
11133
 
                                    meta_string _loc x1),
11134
 
                                  meta_ctyp _loc x2),
11135
 
                                meta_meta_list meta_string _loc x3)
 
11773
                                (Ast.PaApp (_loc,
 
11774
                                   (Ast.PaApp (_loc,
 
11775
                                      (Ast.PaApp (_loc,
 
11776
                                         (Ast.PaId (_loc,
 
11777
                                            (Ast.IdAcc (_loc,
 
11778
                                               (Ast.IdUid (_loc, "Ast")),
 
11779
                                               (Ast.IdUid (_loc, "SgExt")))))),
 
11780
                                         (meta_loc _loc x0))),
 
11781
                                      (meta_string _loc x1))),
 
11782
                                   (meta_ctyp _loc x2))),
 
11783
                                (meta_meta_list meta_string _loc x3))
11136
11784
                          | Ast.SgExc (x0, x1) ->
11137
11785
                              Ast.PaApp (_loc,
11138
 
                                Ast.PaApp (_loc,
11139
 
                                  Ast.PaId (_loc,
11140
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11141
 
                                      Ast.IdUid (_loc, "SgExc"))),
11142
 
                                  meta_loc _loc x0),
11143
 
                                meta_ctyp _loc x1)
 
11786
                                (Ast.PaApp (_loc,
 
11787
                                   (Ast.PaId (_loc,
 
11788
                                      (Ast.IdAcc (_loc,
 
11789
                                         (Ast.IdUid (_loc, "Ast")),
 
11790
                                         (Ast.IdUid (_loc, "SgExc")))))),
 
11791
                                   (meta_loc _loc x0))),
 
11792
                                (meta_ctyp _loc x1))
11144
11793
                          | Ast.SgDir (x0, x1, x2) ->
11145
11794
                              Ast.PaApp (_loc,
11146
 
                                Ast.PaApp (_loc,
11147
 
                                  Ast.PaApp (_loc,
11148
 
                                    Ast.PaId (_loc,
11149
 
                                      Ast.IdAcc (_loc,
11150
 
                                        Ast.IdUid (_loc, "Ast"),
11151
 
                                        Ast.IdUid (_loc, "SgDir"))),
11152
 
                                    meta_loc _loc x0),
11153
 
                                  meta_string _loc x1),
11154
 
                                meta_expr _loc x2)
 
11795
                                (Ast.PaApp (_loc,
 
11796
                                   (Ast.PaApp (_loc,
 
11797
                                      (Ast.PaId (_loc,
 
11798
                                         (Ast.IdAcc (_loc,
 
11799
                                            (Ast.IdUid (_loc, "Ast")),
 
11800
                                            (Ast.IdUid (_loc, "SgDir")))))),
 
11801
                                      (meta_loc _loc x0))),
 
11802
                                   (meta_string _loc x1))),
 
11803
                                (meta_expr _loc x2))
11155
11804
                          | Ast.SgSem (x0, x1, x2) ->
11156
11805
                              Ast.PaApp (_loc,
11157
 
                                Ast.PaApp (_loc,
11158
 
                                  Ast.PaApp (_loc,
11159
 
                                    Ast.PaId (_loc,
11160
 
                                      Ast.IdAcc (_loc,
11161
 
                                        Ast.IdUid (_loc, "Ast"),
11162
 
                                        Ast.IdUid (_loc, "SgSem"))),
11163
 
                                    meta_loc _loc x0),
11164
 
                                  meta_sig_item _loc x1),
11165
 
                                meta_sig_item _loc x2)
 
11806
                                (Ast.PaApp (_loc,
 
11807
                                   (Ast.PaApp (_loc,
 
11808
                                      (Ast.PaId (_loc,
 
11809
                                         (Ast.IdAcc (_loc,
 
11810
                                            (Ast.IdUid (_loc, "Ast")),
 
11811
                                            (Ast.IdUid (_loc, "SgSem")))))),
 
11812
                                      (meta_loc _loc x0))),
 
11813
                                   (meta_sig_item _loc x1))),
 
11814
                                (meta_sig_item _loc x2))
11166
11815
                          | Ast.SgClt (x0, x1) ->
11167
11816
                              Ast.PaApp (_loc,
11168
 
                                Ast.PaApp (_loc,
11169
 
                                  Ast.PaId (_loc,
11170
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11171
 
                                      Ast.IdUid (_loc, "SgClt"))),
11172
 
                                  meta_loc _loc x0),
11173
 
                                meta_class_type _loc x1)
 
11817
                                (Ast.PaApp (_loc,
 
11818
                                   (Ast.PaId (_loc,
 
11819
                                      (Ast.IdAcc (_loc,
 
11820
                                         (Ast.IdUid (_loc, "Ast")),
 
11821
                                         (Ast.IdUid (_loc, "SgClt")))))),
 
11822
                                   (meta_loc _loc x0))),
 
11823
                                (meta_class_type _loc x1))
11174
11824
                          | Ast.SgCls (x0, x1) ->
11175
11825
                              Ast.PaApp (_loc,
11176
 
                                Ast.PaApp (_loc,
11177
 
                                  Ast.PaId (_loc,
11178
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11179
 
                                      Ast.IdUid (_loc, "SgCls"))),
11180
 
                                  meta_loc _loc x0),
11181
 
                                meta_class_type _loc x1)
 
11826
                                (Ast.PaApp (_loc,
 
11827
                                   (Ast.PaId (_loc,
 
11828
                                      (Ast.IdAcc (_loc,
 
11829
                                         (Ast.IdUid (_loc, "Ast")),
 
11830
                                         (Ast.IdUid (_loc, "SgCls")))))),
 
11831
                                   (meta_loc _loc x0))),
 
11832
                                (meta_class_type _loc x1))
11182
11833
                          | Ast.SgNil x0 ->
11183
11834
                              Ast.PaApp (_loc,
11184
 
                                Ast.PaId (_loc,
11185
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11186
 
                                    Ast.IdUid (_loc, "SgNil"))),
11187
 
                                meta_loc _loc x0)
 
11835
                                (Ast.PaId (_loc,
 
11836
                                   (Ast.IdAcc (_loc,
 
11837
                                      (Ast.IdUid (_loc, "Ast")),
 
11838
                                      (Ast.IdUid (_loc, "SgNil")))))),
 
11839
                                (meta_loc _loc x0))
11188
11840
                        and meta_str_item _loc =
11189
11841
                          function
11190
11842
                          | Ast.StAnt (x0, x1) -> Ast.PaAnt (x0, x1)
11191
11843
                          | Ast.StVal (x0, x1, x2) ->
11192
11844
                              Ast.PaApp (_loc,
11193
 
                                Ast.PaApp (_loc,
11194
 
                                  Ast.PaApp (_loc,
11195
 
                                    Ast.PaId (_loc,
11196
 
                                      Ast.IdAcc (_loc,
11197
 
                                        Ast.IdUid (_loc, "Ast"),
11198
 
                                        Ast.IdUid (_loc, "StVal"))),
11199
 
                                    meta_loc _loc x0),
11200
 
                                  meta_meta_bool _loc x1),
11201
 
                                meta_binding _loc x2)
 
11845
                                (Ast.PaApp (_loc,
 
11846
                                   (Ast.PaApp (_loc,
 
11847
                                      (Ast.PaId (_loc,
 
11848
                                         (Ast.IdAcc (_loc,
 
11849
                                            (Ast.IdUid (_loc, "Ast")),
 
11850
                                            (Ast.IdUid (_loc, "StVal")))))),
 
11851
                                      (meta_loc _loc x0))),
 
11852
                                   (meta_rec_flag _loc x1))),
 
11853
                                (meta_binding _loc x2))
11202
11854
                          | Ast.StTyp (x0, x1) ->
11203
11855
                              Ast.PaApp (_loc,
11204
 
                                Ast.PaApp (_loc,
11205
 
                                  Ast.PaId (_loc,
11206
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11207
 
                                      Ast.IdUid (_loc, "StTyp"))),
11208
 
                                  meta_loc _loc x0),
11209
 
                                meta_ctyp _loc x1)
 
11856
                                (Ast.PaApp (_loc,
 
11857
                                   (Ast.PaId (_loc,
 
11858
                                      (Ast.IdAcc (_loc,
 
11859
                                         (Ast.IdUid (_loc, "Ast")),
 
11860
                                         (Ast.IdUid (_loc, "StTyp")))))),
 
11861
                                   (meta_loc _loc x0))),
 
11862
                                (meta_ctyp _loc x1))
11210
11863
                          | Ast.StOpn (x0, x1) ->
11211
11864
                              Ast.PaApp (_loc,
11212
 
                                Ast.PaApp (_loc,
11213
 
                                  Ast.PaId (_loc,
11214
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11215
 
                                      Ast.IdUid (_loc, "StOpn"))),
11216
 
                                  meta_loc _loc x0),
11217
 
                                meta_ident _loc x1)
 
11865
                                (Ast.PaApp (_loc,
 
11866
                                   (Ast.PaId (_loc,
 
11867
                                      (Ast.IdAcc (_loc,
 
11868
                                         (Ast.IdUid (_loc, "Ast")),
 
11869
                                         (Ast.IdUid (_loc, "StOpn")))))),
 
11870
                                   (meta_loc _loc x0))),
 
11871
                                (meta_ident _loc x1))
11218
11872
                          | Ast.StMty (x0, x1, x2) ->
11219
11873
                              Ast.PaApp (_loc,
11220
 
                                Ast.PaApp (_loc,
11221
 
                                  Ast.PaApp (_loc,
11222
 
                                    Ast.PaId (_loc,
11223
 
                                      Ast.IdAcc (_loc,
11224
 
                                        Ast.IdUid (_loc, "Ast"),
11225
 
                                        Ast.IdUid (_loc, "StMty"))),
11226
 
                                    meta_loc _loc x0),
11227
 
                                  meta_string _loc x1),
11228
 
                                meta_module_type _loc x2)
 
11874
                                (Ast.PaApp (_loc,
 
11875
                                   (Ast.PaApp (_loc,
 
11876
                                      (Ast.PaId (_loc,
 
11877
                                         (Ast.IdAcc (_loc,
 
11878
                                            (Ast.IdUid (_loc, "Ast")),
 
11879
                                            (Ast.IdUid (_loc, "StMty")))))),
 
11880
                                      (meta_loc _loc x0))),
 
11881
                                   (meta_string _loc x1))),
 
11882
                                (meta_module_type _loc x2))
11229
11883
                          | Ast.StRecMod (x0, x1) ->
11230
11884
                              Ast.PaApp (_loc,
11231
 
                                Ast.PaApp (_loc,
11232
 
                                  Ast.PaId (_loc,
11233
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11234
 
                                      Ast.IdUid (_loc, "StRecMod"))),
11235
 
                                  meta_loc _loc x0),
11236
 
                                meta_module_binding _loc x1)
 
11885
                                (Ast.PaApp (_loc,
 
11886
                                   (Ast.PaId (_loc,
 
11887
                                      (Ast.IdAcc (_loc,
 
11888
                                         (Ast.IdUid (_loc, "Ast")),
 
11889
                                         (Ast.IdUid (_loc, "StRecMod")))))),
 
11890
                                   (meta_loc _loc x0))),
 
11891
                                (meta_module_binding _loc x1))
11237
11892
                          | Ast.StMod (x0, x1, x2) ->
11238
11893
                              Ast.PaApp (_loc,
11239
 
                                Ast.PaApp (_loc,
11240
 
                                  Ast.PaApp (_loc,
11241
 
                                    Ast.PaId (_loc,
11242
 
                                      Ast.IdAcc (_loc,
11243
 
                                        Ast.IdUid (_loc, "Ast"),
11244
 
                                        Ast.IdUid (_loc, "StMod"))),
11245
 
                                    meta_loc _loc x0),
11246
 
                                  meta_string _loc x1),
11247
 
                                meta_module_expr _loc x2)
 
11894
                                (Ast.PaApp (_loc,
 
11895
                                   (Ast.PaApp (_loc,
 
11896
                                      (Ast.PaId (_loc,
 
11897
                                         (Ast.IdAcc (_loc,
 
11898
                                            (Ast.IdUid (_loc, "Ast")),
 
11899
                                            (Ast.IdUid (_loc, "StMod")))))),
 
11900
                                      (meta_loc _loc x0))),
 
11901
                                   (meta_string _loc x1))),
 
11902
                                (meta_module_expr _loc x2))
11248
11903
                          | Ast.StInc (x0, x1) ->
11249
11904
                              Ast.PaApp (_loc,
11250
 
                                Ast.PaApp (_loc,
11251
 
                                  Ast.PaId (_loc,
11252
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11253
 
                                      Ast.IdUid (_loc, "StInc"))),
11254
 
                                  meta_loc _loc x0),
11255
 
                                meta_module_expr _loc x1)
 
11905
                                (Ast.PaApp (_loc,
 
11906
                                   (Ast.PaId (_loc,
 
11907
                                      (Ast.IdAcc (_loc,
 
11908
                                         (Ast.IdUid (_loc, "Ast")),
 
11909
                                         (Ast.IdUid (_loc, "StInc")))))),
 
11910
                                   (meta_loc _loc x0))),
 
11911
                                (meta_module_expr _loc x1))
11256
11912
                          | Ast.StExt (x0, x1, x2, x3) ->
11257
11913
                              Ast.PaApp (_loc,
11258
 
                                Ast.PaApp (_loc,
11259
 
                                  Ast.PaApp (_loc,
11260
 
                                    Ast.PaApp (_loc,
11261
 
                                      Ast.PaId (_loc,
11262
 
                                        Ast.IdAcc (_loc,
11263
 
                                          Ast.IdUid (_loc, "Ast"),
11264
 
                                          Ast.IdUid (_loc, "StExt"))),
11265
 
                                      meta_loc _loc x0),
11266
 
                                    meta_string _loc x1),
11267
 
                                  meta_ctyp _loc x2),
11268
 
                                meta_meta_list meta_string _loc x3)
 
11914
                                (Ast.PaApp (_loc,
 
11915
                                   (Ast.PaApp (_loc,
 
11916
                                      (Ast.PaApp (_loc,
 
11917
                                         (Ast.PaId (_loc,
 
11918
                                            (Ast.IdAcc (_loc,
 
11919
                                               (Ast.IdUid (_loc, "Ast")),
 
11920
                                               (Ast.IdUid (_loc, "StExt")))))),
 
11921
                                         (meta_loc _loc x0))),
 
11922
                                      (meta_string _loc x1))),
 
11923
                                   (meta_ctyp _loc x2))),
 
11924
                                (meta_meta_list meta_string _loc x3))
11269
11925
                          | Ast.StExp (x0, x1) ->
11270
11926
                              Ast.PaApp (_loc,
11271
 
                                Ast.PaApp (_loc,
11272
 
                                  Ast.PaId (_loc,
11273
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11274
 
                                      Ast.IdUid (_loc, "StExp"))),
11275
 
                                  meta_loc _loc x0),
11276
 
                                meta_expr _loc x1)
 
11927
                                (Ast.PaApp (_loc,
 
11928
                                   (Ast.PaId (_loc,
 
11929
                                      (Ast.IdAcc (_loc,
 
11930
                                         (Ast.IdUid (_loc, "Ast")),
 
11931
                                         (Ast.IdUid (_loc, "StExp")))))),
 
11932
                                   (meta_loc _loc x0))),
 
11933
                                (meta_expr _loc x1))
11277
11934
                          | Ast.StExc (x0, x1, x2) ->
11278
11935
                              Ast.PaApp (_loc,
11279
 
                                Ast.PaApp (_loc,
11280
 
                                  Ast.PaApp (_loc,
11281
 
                                    Ast.PaId (_loc,
11282
 
                                      Ast.IdAcc (_loc,
11283
 
                                        Ast.IdUid (_loc, "Ast"),
11284
 
                                        Ast.IdUid (_loc, "StExc"))),
11285
 
                                    meta_loc _loc x0),
11286
 
                                  meta_ctyp _loc x1),
11287
 
                                meta_meta_option meta_ident _loc x2)
 
11936
                                (Ast.PaApp (_loc,
 
11937
                                   (Ast.PaApp (_loc,
 
11938
                                      (Ast.PaId (_loc,
 
11939
                                         (Ast.IdAcc (_loc,
 
11940
                                            (Ast.IdUid (_loc, "Ast")),
 
11941
                                            (Ast.IdUid (_loc, "StExc")))))),
 
11942
                                      (meta_loc _loc x0))),
 
11943
                                   (meta_ctyp _loc x1))),
 
11944
                                (meta_meta_option meta_ident _loc x2))
11288
11945
                          | Ast.StDir (x0, x1, x2) ->
11289
11946
                              Ast.PaApp (_loc,
11290
 
                                Ast.PaApp (_loc,
11291
 
                                  Ast.PaApp (_loc,
11292
 
                                    Ast.PaId (_loc,
11293
 
                                      Ast.IdAcc (_loc,
11294
 
                                        Ast.IdUid (_loc, "Ast"),
11295
 
                                        Ast.IdUid (_loc, "StDir"))),
11296
 
                                    meta_loc _loc x0),
11297
 
                                  meta_string _loc x1),
11298
 
                                meta_expr _loc x2)
 
11947
                                (Ast.PaApp (_loc,
 
11948
                                   (Ast.PaApp (_loc,
 
11949
                                      (Ast.PaId (_loc,
 
11950
                                         (Ast.IdAcc (_loc,
 
11951
                                            (Ast.IdUid (_loc, "Ast")),
 
11952
                                            (Ast.IdUid (_loc, "StDir")))))),
 
11953
                                      (meta_loc _loc x0))),
 
11954
                                   (meta_string _loc x1))),
 
11955
                                (meta_expr _loc x2))
11299
11956
                          | Ast.StSem (x0, x1, x2) ->
11300
11957
                              Ast.PaApp (_loc,
11301
 
                                Ast.PaApp (_loc,
11302
 
                                  Ast.PaApp (_loc,
11303
 
                                    Ast.PaId (_loc,
11304
 
                                      Ast.IdAcc (_loc,
11305
 
                                        Ast.IdUid (_loc, "Ast"),
11306
 
                                        Ast.IdUid (_loc, "StSem"))),
11307
 
                                    meta_loc _loc x0),
11308
 
                                  meta_str_item _loc x1),
11309
 
                                meta_str_item _loc x2)
 
11958
                                (Ast.PaApp (_loc,
 
11959
                                   (Ast.PaApp (_loc,
 
11960
                                      (Ast.PaId (_loc,
 
11961
                                         (Ast.IdAcc (_loc,
 
11962
                                            (Ast.IdUid (_loc, "Ast")),
 
11963
                                            (Ast.IdUid (_loc, "StSem")))))),
 
11964
                                      (meta_loc _loc x0))),
 
11965
                                   (meta_str_item _loc x1))),
 
11966
                                (meta_str_item _loc x2))
11310
11967
                          | Ast.StClt (x0, x1) ->
11311
11968
                              Ast.PaApp (_loc,
11312
 
                                Ast.PaApp (_loc,
11313
 
                                  Ast.PaId (_loc,
11314
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11315
 
                                      Ast.IdUid (_loc, "StClt"))),
11316
 
                                  meta_loc _loc x0),
11317
 
                                meta_class_type _loc x1)
 
11969
                                (Ast.PaApp (_loc,
 
11970
                                   (Ast.PaId (_loc,
 
11971
                                      (Ast.IdAcc (_loc,
 
11972
                                         (Ast.IdUid (_loc, "Ast")),
 
11973
                                         (Ast.IdUid (_loc, "StClt")))))),
 
11974
                                   (meta_loc _loc x0))),
 
11975
                                (meta_class_type _loc x1))
11318
11976
                          | Ast.StCls (x0, x1) ->
11319
11977
                              Ast.PaApp (_loc,
11320
 
                                Ast.PaApp (_loc,
11321
 
                                  Ast.PaId (_loc,
11322
 
                                    Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11323
 
                                      Ast.IdUid (_loc, "StCls"))),
11324
 
                                  meta_loc _loc x0),
11325
 
                                meta_class_expr _loc x1)
 
11978
                                (Ast.PaApp (_loc,
 
11979
                                   (Ast.PaId (_loc,
 
11980
                                      (Ast.IdAcc (_loc,
 
11981
                                         (Ast.IdUid (_loc, "Ast")),
 
11982
                                         (Ast.IdUid (_loc, "StCls")))))),
 
11983
                                   (meta_loc _loc x0))),
 
11984
                                (meta_class_expr _loc x1))
11326
11985
                          | Ast.StNil x0 ->
11327
11986
                              Ast.PaApp (_loc,
11328
 
                                Ast.PaId (_loc,
11329
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11330
 
                                    Ast.IdUid (_loc, "StNil"))),
11331
 
                                meta_loc _loc x0)
 
11987
                                (Ast.PaId (_loc,
 
11988
                                   (Ast.IdAcc (_loc,
 
11989
                                      (Ast.IdUid (_loc, "Ast")),
 
11990
                                      (Ast.IdUid (_loc, "StNil")))))),
 
11991
                                (meta_loc _loc x0))
 
11992
                        and meta_virtual_flag _loc =
 
11993
                          function
 
11994
                          | Ast.ViAnt x0 -> Ast.PaAnt (_loc, x0)
 
11995
                          | Ast.ViNil ->
 
11996
                              Ast.PaId (_loc,
 
11997
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
11998
                                   (Ast.IdUid (_loc, "ViNil")))))
 
11999
                          | Ast.ViVirtual ->
 
12000
                              Ast.PaId (_loc,
 
12001
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
 
12002
                                   (Ast.IdUid (_loc, "ViVirtual")))))
11332
12003
                        and meta_with_constr _loc =
11333
12004
                          function
11334
12005
                          | Ast.WcAnt (x0, x1) -> Ast.PaAnt (x0, x1)
11335
12006
                          | Ast.WcAnd (x0, x1, x2) ->
11336
12007
                              Ast.PaApp (_loc,
11337
 
                                Ast.PaApp (_loc,
11338
 
                                  Ast.PaApp (_loc,
11339
 
                                    Ast.PaId (_loc,
11340
 
                                      Ast.IdAcc (_loc,
11341
 
                                        Ast.IdUid (_loc, "Ast"),
11342
 
                                        Ast.IdUid (_loc, "WcAnd"))),
11343
 
                                    meta_loc _loc x0),
11344
 
                                  meta_with_constr _loc x1),
11345
 
                                meta_with_constr _loc x2)
 
12008
                                (Ast.PaApp (_loc,
 
12009
                                   (Ast.PaApp (_loc,
 
12010
                                      (Ast.PaId (_loc,
 
12011
                                         (Ast.IdAcc (_loc,
 
12012
                                            (Ast.IdUid (_loc, "Ast")),
 
12013
                                            (Ast.IdUid (_loc, "WcAnd")))))),
 
12014
                                      (meta_loc _loc x0))),
 
12015
                                   (meta_with_constr _loc x1))),
 
12016
                                (meta_with_constr _loc x2))
 
12017
                          | Ast.WcMoS (x0, x1, x2) ->
 
12018
                              Ast.PaApp (_loc,
 
12019
                                (Ast.PaApp (_loc,
 
12020
                                   (Ast.PaApp (_loc,
 
12021
                                      (Ast.PaId (_loc,
 
12022
                                         (Ast.IdAcc (_loc,
 
12023
                                            (Ast.IdUid (_loc, "Ast")),
 
12024
                                            (Ast.IdUid (_loc, "WcMoS")))))),
 
12025
                                      (meta_loc _loc x0))),
 
12026
                                   (meta_ident _loc x1))),
 
12027
                                (meta_ident _loc x2))
 
12028
                          | Ast.WcTyS (x0, x1, x2) ->
 
12029
                              Ast.PaApp (_loc,
 
12030
                                (Ast.PaApp (_loc,
 
12031
                                   (Ast.PaApp (_loc,
 
12032
                                      (Ast.PaId (_loc,
 
12033
                                         (Ast.IdAcc (_loc,
 
12034
                                            (Ast.IdUid (_loc, "Ast")),
 
12035
                                            (Ast.IdUid (_loc, "WcTyS")))))),
 
12036
                                      (meta_loc _loc x0))),
 
12037
                                   (meta_ctyp _loc x1))),
 
12038
                                (meta_ctyp _loc x2))
11346
12039
                          | Ast.WcMod (x0, x1, x2) ->
11347
12040
                              Ast.PaApp (_loc,
11348
 
                                Ast.PaApp (_loc,
11349
 
                                  Ast.PaApp (_loc,
11350
 
                                    Ast.PaId (_loc,
11351
 
                                      Ast.IdAcc (_loc,
11352
 
                                        Ast.IdUid (_loc, "Ast"),
11353
 
                                        Ast.IdUid (_loc, "WcMod"))),
11354
 
                                    meta_loc _loc x0),
11355
 
                                  meta_ident _loc x1),
11356
 
                                meta_ident _loc x2)
 
12041
                                (Ast.PaApp (_loc,
 
12042
                                   (Ast.PaApp (_loc,
 
12043
                                      (Ast.PaId (_loc,
 
12044
                                         (Ast.IdAcc (_loc,
 
12045
                                            (Ast.IdUid (_loc, "Ast")),
 
12046
                                            (Ast.IdUid (_loc, "WcMod")))))),
 
12047
                                      (meta_loc _loc x0))),
 
12048
                                   (meta_ident _loc x1))),
 
12049
                                (meta_ident _loc x2))
11357
12050
                          | Ast.WcTyp (x0, x1, x2) ->
11358
12051
                              Ast.PaApp (_loc,
11359
 
                                Ast.PaApp (_loc,
11360
 
                                  Ast.PaApp (_loc,
11361
 
                                    Ast.PaId (_loc,
11362
 
                                      Ast.IdAcc (_loc,
11363
 
                                        Ast.IdUid (_loc, "Ast"),
11364
 
                                        Ast.IdUid (_loc, "WcTyp"))),
11365
 
                                    meta_loc _loc x0),
11366
 
                                  meta_ctyp _loc x1),
11367
 
                                meta_ctyp _loc x2)
 
12052
                                (Ast.PaApp (_loc,
 
12053
                                   (Ast.PaApp (_loc,
 
12054
                                      (Ast.PaId (_loc,
 
12055
                                         (Ast.IdAcc (_loc,
 
12056
                                            (Ast.IdUid (_loc, "Ast")),
 
12057
                                            (Ast.IdUid (_loc, "WcTyp")))))),
 
12058
                                      (meta_loc _loc x0))),
 
12059
                                   (meta_ctyp _loc x1))),
 
12060
                                (meta_ctyp _loc x2))
11368
12061
                          | Ast.WcNil x0 ->
11369
12062
                              Ast.PaApp (_loc,
11370
 
                                Ast.PaId (_loc,
11371
 
                                  Ast.IdAcc (_loc, Ast.IdUid (_loc, "Ast"),
11372
 
                                    Ast.IdUid (_loc, "WcNil"))),
11373
 
                                meta_loc _loc x0)
 
12063
                                (Ast.PaId (_loc,
 
12064
                                   (Ast.IdAcc (_loc,
 
12065
                                      (Ast.IdUid (_loc, "Ast")),
 
12066
                                      (Ast.IdUid (_loc, "WcNil")))))),
 
12067
                                (meta_loc _loc x0))
11374
12068
                          
11375
12069
                      end
11376
12070
                      
11403
12097
                      let _x = o#loc _x in
11404
12098
                      let _x_i1 = o#ident _x_i1 in
11405
12099
                      let _x_i2 = o#ident _x_i2 in WcMod (_x, _x_i1, _x_i2)
 
12100
                  | WcTyS (_x, _x_i1, _x_i2) ->
 
12101
                      let _x = o#loc _x in
 
12102
                      let _x_i1 = o#ctyp _x_i1 in
 
12103
                      let _x_i2 = o#ctyp _x_i2 in WcTyS (_x, _x_i1, _x_i2)
 
12104
                  | WcMoS (_x, _x_i1, _x_i2) ->
 
12105
                      let _x = o#loc _x in
 
12106
                      let _x_i1 = o#ident _x_i1 in
 
12107
                      let _x_i2 = o#ident _x_i2 in WcMoS (_x, _x_i1, _x_i2)
11406
12108
                  | WcAnd (_x, _x_i1, _x_i2) ->
11407
12109
                      let _x = o#loc _x in
11408
12110
                      let _x_i1 = o#with_constr _x_i1 in
11412
12114
                      let _x = o#loc _x in
11413
12115
                      let _x_i1 = o#string _x_i1 in WcAnt (_x, _x_i1)
11414
12116
                  
 
12117
                method virtual_flag : virtual_flag -> virtual_flag =
 
12118
                  function
 
12119
                  | ViVirtual -> ViVirtual
 
12120
                  | ViNil -> ViNil
 
12121
                  | ViAnt _x -> let _x = o#string _x in ViAnt _x
 
12122
                  
11415
12123
                method str_item : str_item -> str_item =
11416
12124
                  function
11417
12125
                  | StNil _x -> let _x = o#loc _x in StNil _x
11469
12177
                      let _x_i1 = o#ctyp _x_i1 in StTyp (_x, _x_i1)
11470
12178
                  | StVal (_x, _x_i1, _x_i2) ->
11471
12179
                      let _x = o#loc _x in
11472
 
                      let _x_i1 = o#meta_bool _x_i1 in
 
12180
                      let _x_i1 = o#rec_flag _x_i1 in
11473
12181
                      let _x_i2 = o#binding _x_i2 in StVal (_x, _x_i1, _x_i2)
11474
12182
                  | StAnt (_x, _x_i1) ->
11475
12183
                      let _x = o#loc _x in
11533
12241
                      let _x = o#loc _x in
11534
12242
                      let _x_i1 = o#string _x_i1 in SgAnt (_x, _x_i1)
11535
12243
                  
 
12244
                method row_var_flag : row_var_flag -> row_var_flag =
 
12245
                  function
 
12246
                  | RvRowVar -> RvRowVar
 
12247
                  | RvNil -> RvNil
 
12248
                  | RvAnt _x -> let _x = o#string _x in RvAnt _x
 
12249
                  
 
12250
                method rec_flag : rec_flag -> rec_flag =
 
12251
                  function
 
12252
                  | ReRecursive -> ReRecursive
 
12253
                  | ReNil -> ReNil
 
12254
                  | ReAnt _x -> let _x = o#string _x in ReAnt _x
 
12255
                  
11536
12256
                method rec_binding : rec_binding -> rec_binding =
11537
12257
                  function
11538
12258
                  | RbNil _x -> let _x = o#loc _x in RbNil _x
11549
12269
                      let _x = o#loc _x in
11550
12270
                      let _x_i1 = o#string _x_i1 in RbAnt (_x, _x_i1)
11551
12271
                  
 
12272
                method private_flag : private_flag -> private_flag =
 
12273
                  function
 
12274
                  | PrPrivate -> PrPrivate
 
12275
                  | PrNil -> PrNil
 
12276
                  | PrAnt _x -> let _x = o#string _x in PrAnt _x
 
12277
                  
11552
12278
                method patt : patt -> patt =
11553
12279
                  function
11554
12280
                  | PaNil _x -> let _x = o#loc _x in PaNil _x
11645
12371
                      let _x = o#loc _x in
11646
12372
                      let _x_i1 = o#patt _x_i1 in PaLaz (_x, _x_i1)
11647
12373
                  
 
12374
                method override_flag : override_flag -> override_flag =
 
12375
                  function
 
12376
                  | OvOverride -> OvOverride
 
12377
                  | OvNil -> OvNil
 
12378
                  | OvAnt _x -> let _x = o#string _x in OvAnt _x
 
12379
                  
 
12380
                method mutable_flag : mutable_flag -> mutable_flag =
 
12381
                  function
 
12382
                  | MuMutable -> MuMutable
 
12383
                  | MuNil -> MuNil
 
12384
                  | MuAnt _x -> let _x = o#string _x in MuAnt _x
 
12385
                  
11648
12386
                method module_type : module_type -> module_type =
11649
12387
                  function
11650
12388
                  | MtNil _x -> let _x = o#loc _x in MtNil _x
11697
12435
                      let _x_i1 = o#module_expr _x_i1 in
11698
12436
                      let _x_i2 = o#module_type _x_i2
11699
12437
                      in MeTyc (_x, _x_i1, _x_i2)
 
12438
                  | MePkg (_x, _x_i1) ->
 
12439
                      let _x = o#loc _x in
 
12440
                      let _x_i1 = o#expr _x_i1 in MePkg (_x, _x_i1)
11700
12441
                  | MeAnt (_x, _x_i1) ->
11701
12442
                      let _x = o#loc _x in
11702
12443
                      let _x_i1 = o#string _x_i1 in MeAnt (_x, _x_i1)
11846
12587
                      let _x_i1 = o#string _x_i1 in
11847
12588
                      let _x_i2 = o#expr _x_i2 in
11848
12589
                      let _x_i3 = o#expr _x_i3 in
11849
 
                      let _x_i4 = o#meta_bool _x_i4 in
 
12590
                      let _x_i4 = o#direction_flag _x_i4 in
11850
12591
                      let _x_i5 = o#expr _x_i5
11851
12592
                      in ExFor (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5)
11852
12593
                  | ExFun (_x, _x_i1) ->
11879
12620
                      let _x_i1 = o#expr _x_i1 in ExLaz (_x, _x_i1)
11880
12621
                  | ExLet (_x, _x_i1, _x_i2, _x_i3) ->
11881
12622
                      let _x = o#loc _x in
11882
 
                      let _x_i1 = o#meta_bool _x_i1 in
 
12623
                      let _x_i1 = o#rec_flag _x_i1 in
11883
12624
                      let _x_i2 = o#binding _x_i2 in
11884
12625
                      let _x_i3 = o#expr _x_i3
11885
12626
                      in ExLet (_x, _x_i1, _x_i2, _x_i3)
11950
12691
                      let _x = o#loc _x in
11951
12692
                      let _x_i1 = o#expr _x_i1 in
11952
12693
                      let _x_i2 = o#expr _x_i2 in ExWhi (_x, _x_i1, _x_i2)
 
12694
                  | ExOpI (_x, _x_i1, _x_i2) ->
 
12695
                      let _x = o#loc _x in
 
12696
                      let _x_i1 = o#ident _x_i1 in
 
12697
                      let _x_i2 = o#expr _x_i2 in ExOpI (_x, _x_i1, _x_i2)
 
12698
                  | ExFUN (_x, _x_i1, _x_i2) ->
 
12699
                      let _x = o#loc _x in
 
12700
                      let _x_i1 = o#string _x_i1 in
 
12701
                      let _x_i2 = o#expr _x_i2 in ExFUN (_x, _x_i1, _x_i2)
 
12702
                  | ExPkg (_x, _x_i1) ->
 
12703
                      let _x = o#loc _x in
 
12704
                      let _x_i1 = o#module_expr _x_i1 in ExPkg (_x, _x_i1)
 
12705
                  
 
12706
                method direction_flag : direction_flag -> direction_flag =
 
12707
                  function
 
12708
                  | DiTo -> DiTo
 
12709
                  | DiDownto -> DiDownto
 
12710
                  | DiAnt _x -> let _x = o#string _x in DiAnt _x
11953
12711
                  
11954
12712
                method ctyp : ctyp -> ctyp =
11955
12713
                  function
11996
12754
                  | TyObj (_x, _x_i1, _x_i2) ->
11997
12755
                      let _x = o#loc _x in
11998
12756
                      let _x_i1 = o#ctyp _x_i1 in
11999
 
                      let _x_i2 = o#meta_bool _x_i2
 
12757
                      let _x_i2 = o#row_var_flag _x_i2
12000
12758
                      in TyObj (_x, _x_i1, _x_i2)
12001
12759
                  | TyOlb (_x, _x_i1, _x_i2) ->
12002
12760
                      let _x = o#loc _x in
12083
12841
                      let _x = o#loc _x in
12084
12842
                      let _x_i1 = o#ctyp _x_i1 in
12085
12843
                      let _x_i2 = o#ctyp _x_i2 in TyOfAmp (_x, _x_i1, _x_i2)
 
12844
                  | TyPkg (_x, _x_i1) ->
 
12845
                      let _x = o#loc _x in
 
12846
                      let _x_i1 = o#module_type _x_i1 in TyPkg (_x, _x_i1)
12086
12847
                  | TyAnt (_x, _x_i1) ->
12087
12848
                      let _x = o#loc _x in
12088
12849
                      let _x_i1 = o#string _x_i1 in TyAnt (_x, _x_i1)
12092
12853
                  | CtNil _x -> let _x = o#loc _x in CtNil _x
12093
12854
                  | CtCon (_x, _x_i1, _x_i2, _x_i3) ->
12094
12855
                      let _x = o#loc _x in
12095
 
                      let _x_i1 = o#meta_bool _x_i1 in
 
12856
                      let _x_i1 = o#virtual_flag _x_i1 in
12096
12857
                      let _x_i2 = o#ident _x_i2 in
12097
12858
                      let _x_i3 = o#ctyp _x_i3
12098
12859
                      in CtCon (_x, _x_i1, _x_i2, _x_i3)
12137
12898
                      let _x = o#loc _x in
12138
12899
                      let _x_i1 = o#ctyp _x_i1 in
12139
12900
                      let _x_i2 = o#ctyp _x_i2 in CrCtr (_x, _x_i1, _x_i2)
12140
 
                  | CrInh (_x, _x_i1, _x_i2) ->
 
12901
                  | CrInh (_x, _x_i1, _x_i2, _x_i3) ->
12141
12902
                      let _x = o#loc _x in
12142
 
                      let _x_i1 = o#class_expr _x_i1 in
12143
 
                      let _x_i2 = o#string _x_i2 in CrInh (_x, _x_i1, _x_i2)
 
12903
                      let _x_i1 = o#override_flag _x_i1 in
 
12904
                      let _x_i2 = o#class_expr _x_i2 in
 
12905
                      let _x_i3 = o#string _x_i3
 
12906
                      in CrInh (_x, _x_i1, _x_i2, _x_i3)
12144
12907
                  | CrIni (_x, _x_i1) ->
12145
12908
                      let _x = o#loc _x in
12146
12909
                      let _x_i1 = o#expr _x_i1 in CrIni (_x, _x_i1)
12147
 
                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
12148
 
                      let _x = o#loc _x in
12149
 
                      let _x_i1 = o#string _x_i1 in
12150
 
                      let _x_i2 = o#meta_bool _x_i2 in
12151
 
                      let _x_i3 = o#expr _x_i3 in
12152
 
                      let _x_i4 = o#ctyp _x_i4
12153
 
                      in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4)
12154
 
                  | CrVal (_x, _x_i1, _x_i2, _x_i3) ->
12155
 
                      let _x = o#loc _x in
12156
 
                      let _x_i1 = o#string _x_i1 in
12157
 
                      let _x_i2 = o#meta_bool _x_i2 in
12158
 
                      let _x_i3 = o#expr _x_i3
12159
 
                      in CrVal (_x, _x_i1, _x_i2, _x_i3)
 
12910
                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) ->
 
12911
                      let _x = o#loc _x in
 
12912
                      let _x_i1 = o#string _x_i1 in
 
12913
                      let _x_i2 = o#override_flag _x_i2 in
 
12914
                      let _x_i3 = o#private_flag _x_i3 in
 
12915
                      let _x_i4 = o#expr _x_i4 in
 
12916
                      let _x_i5 = o#ctyp _x_i5
 
12917
                      in CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5)
 
12918
                  | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
 
12919
                      let _x = o#loc _x in
 
12920
                      let _x_i1 = o#string _x_i1 in
 
12921
                      let _x_i2 = o#override_flag _x_i2 in
 
12922
                      let _x_i3 = o#mutable_flag _x_i3 in
 
12923
                      let _x_i4 = o#expr _x_i4
 
12924
                      in CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4)
12160
12925
                  | CrVir (_x, _x_i1, _x_i2, _x_i3) ->
12161
12926
                      let _x = o#loc _x in
12162
12927
                      let _x_i1 = o#string _x_i1 in
12163
 
                      let _x_i2 = o#meta_bool _x_i2 in
 
12928
                      let _x_i2 = o#private_flag _x_i2 in
12164
12929
                      let _x_i3 = o#ctyp _x_i3
12165
12930
                      in CrVir (_x, _x_i1, _x_i2, _x_i3)
12166
12931
                  | CrVvr (_x, _x_i1, _x_i2, _x_i3) ->
12167
12932
                      let _x = o#loc _x in
12168
12933
                      let _x_i1 = o#string _x_i1 in
12169
 
                      let _x_i2 = o#meta_bool _x_i2 in
 
12934
                      let _x_i2 = o#mutable_flag _x_i2 in
12170
12935
                      let _x_i3 = o#ctyp _x_i3
12171
12936
                      in CrVvr (_x, _x_i1, _x_i2, _x_i3)
12172
12937
                  | CrAnt (_x, _x_i1) ->
12191
12956
                  | CgMth (_x, _x_i1, _x_i2, _x_i3) ->
12192
12957
                      let _x = o#loc _x in
12193
12958
                      let _x_i1 = o#string _x_i1 in
12194
 
                      let _x_i2 = o#meta_bool _x_i2 in
 
12959
                      let _x_i2 = o#private_flag _x_i2 in
12195
12960
                      let _x_i3 = o#ctyp _x_i3
12196
12961
                      in CgMth (_x, _x_i1, _x_i2, _x_i3)
12197
12962
                  | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
12198
12963
                      let _x = o#loc _x in
12199
12964
                      let _x_i1 = o#string _x_i1 in
12200
 
                      let _x_i2 = o#meta_bool _x_i2 in
12201
 
                      let _x_i3 = o#meta_bool _x_i3 in
 
12965
                      let _x_i2 = o#mutable_flag _x_i2 in
 
12966
                      let _x_i3 = o#virtual_flag _x_i3 in
12202
12967
                      let _x_i4 = o#ctyp _x_i4
12203
12968
                      in CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4)
12204
12969
                  | CgVir (_x, _x_i1, _x_i2, _x_i3) ->
12205
12970
                      let _x = o#loc _x in
12206
12971
                      let _x_i1 = o#string _x_i1 in
12207
 
                      let _x_i2 = o#meta_bool _x_i2 in
 
12972
                      let _x_i2 = o#private_flag _x_i2 in
12208
12973
                      let _x_i3 = o#ctyp _x_i3
12209
12974
                      in CgVir (_x, _x_i1, _x_i2, _x_i3)
12210
12975
                  | CgAnt (_x, _x_i1) ->
12220
12985
                      let _x_i2 = o#expr _x_i2 in CeApp (_x, _x_i1, _x_i2)
12221
12986
                  | CeCon (_x, _x_i1, _x_i2, _x_i3) ->
12222
12987
                      let _x = o#loc _x in
12223
 
                      let _x_i1 = o#meta_bool _x_i1 in
 
12988
                      let _x_i1 = o#virtual_flag _x_i1 in
12224
12989
                      let _x_i2 = o#ident _x_i2 in
12225
12990
                      let _x_i3 = o#ctyp _x_i3
12226
12991
                      in CeCon (_x, _x_i1, _x_i2, _x_i3)
12231
12996
                      in CeFun (_x, _x_i1, _x_i2)
12232
12997
                  | CeLet (_x, _x_i1, _x_i2, _x_i3) ->
12233
12998
                      let _x = o#loc _x in
12234
 
                      let _x_i1 = o#meta_bool _x_i1 in
 
12999
                      let _x_i1 = o#rec_flag _x_i1 in
12235
13000
                      let _x_i2 = o#binding _x_i2 in
12236
13001
                      let _x_i3 = o#class_expr _x_i3
12237
13002
                      in CeLet (_x, _x_i1, _x_i2, _x_i3)
12300
13065
                  | WcMod (_x, _x_i1, _x_i2) ->
12301
13066
                      let o = o#loc _x in
12302
13067
                      let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
 
13068
                  | WcTyS (_x, _x_i1, _x_i2) ->
 
13069
                      let o = o#loc _x in
 
13070
                      let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
 
13071
                  | WcMoS (_x, _x_i1, _x_i2) ->
 
13072
                      let o = o#loc _x in
 
13073
                      let o = o#ident _x_i1 in let o = o#ident _x_i2 in o
12303
13074
                  | WcAnd (_x, _x_i1, _x_i2) ->
12304
13075
                      let o = o#loc _x in
12305
13076
                      let o = o#with_constr _x_i1 in
12307
13078
                  | WcAnt (_x, _x_i1) ->
12308
13079
                      let o = o#loc _x in let o = o#string _x_i1 in o
12309
13080
                  
 
13081
                method virtual_flag : virtual_flag -> 'self_type =
 
13082
                  function
 
13083
                  | ViVirtual -> o
 
13084
                  | ViNil -> o
 
13085
                  | ViAnt _x -> let o = o#string _x in o
 
13086
                  
12310
13087
                method str_item : str_item -> 'self_type =
12311
13088
                  function
12312
13089
                  | StNil _x -> let o = o#loc _x in o
12350
13127
                      let o = o#loc _x in let o = o#ctyp _x_i1 in o
12351
13128
                  | StVal (_x, _x_i1, _x_i2) ->
12352
13129
                      let o = o#loc _x in
12353
 
                      let o = o#meta_bool _x_i1 in
 
13130
                      let o = o#rec_flag _x_i1 in
12354
13131
                      let o = o#binding _x_i2 in o
12355
13132
                  | StAnt (_x, _x_i1) ->
12356
13133
                      let o = o#loc _x in let o = o#string _x_i1 in o
12398
13175
                  | SgAnt (_x, _x_i1) ->
12399
13176
                      let o = o#loc _x in let o = o#string _x_i1 in o
12400
13177
                  
 
13178
                method row_var_flag : row_var_flag -> 'self_type =
 
13179
                  function
 
13180
                  | RvRowVar -> o
 
13181
                  | RvNil -> o
 
13182
                  | RvAnt _x -> let o = o#string _x in o
 
13183
                  
 
13184
                method rec_flag : rec_flag -> 'self_type =
 
13185
                  function
 
13186
                  | ReRecursive -> o
 
13187
                  | ReNil -> o
 
13188
                  | ReAnt _x -> let o = o#string _x in o
 
13189
                  
12401
13190
                method rec_binding : rec_binding -> 'self_type =
12402
13191
                  function
12403
13192
                  | RbNil _x -> let o = o#loc _x in o
12411
13200
                  | RbAnt (_x, _x_i1) ->
12412
13201
                      let o = o#loc _x in let o = o#string _x_i1 in o
12413
13202
                  
 
13203
                method private_flag : private_flag -> 'self_type =
 
13204
                  function
 
13205
                  | PrPrivate -> o
 
13206
                  | PrNil -> o
 
13207
                  | PrAnt _x -> let o = o#string _x in o
 
13208
                  
12414
13209
                method patt : patt -> 'self_type =
12415
13210
                  function
12416
13211
                  | PaNil _x -> let o = o#loc _x in o
12480
13275
                  | PaLaz (_x, _x_i1) ->
12481
13276
                      let o = o#loc _x in let o = o#patt _x_i1 in o
12482
13277
                  
 
13278
                method override_flag : override_flag -> 'self_type =
 
13279
                  function
 
13280
                  | OvOverride -> o
 
13281
                  | OvNil -> o
 
13282
                  | OvAnt _x -> let o = o#string _x in o
 
13283
                  
 
13284
                method mutable_flag : mutable_flag -> 'self_type =
 
13285
                  function
 
13286
                  | MuMutable -> o
 
13287
                  | MuNil -> o
 
13288
                  | MuAnt _x -> let o = o#string _x in o
 
13289
                  
12483
13290
                method module_type : module_type -> 'self_type =
12484
13291
                  function
12485
13292
                  | MtNil _x -> let o = o#loc _x in o
12521
13328
                      let o = o#loc _x in
12522
13329
                      let o = o#module_expr _x_i1 in
12523
13330
                      let o = o#module_type _x_i2 in o
 
13331
                  | MePkg (_x, _x_i1) ->
 
13332
                      let o = o#loc _x in let o = o#expr _x_i1 in o
12524
13333
                  | MeAnt (_x, _x_i1) ->
12525
13334
                      let o = o#loc _x in let o = o#string _x_i1 in o
12526
13335
                  
12642
13451
                      let o = o#string _x_i1 in
12643
13452
                      let o = o#expr _x_i2 in
12644
13453
                      let o = o#expr _x_i3 in
12645
 
                      let o = o#meta_bool _x_i4 in let o = o#expr _x_i5 in o
 
13454
                      let o = o#direction_flag _x_i4 in
 
13455
                      let o = o#expr _x_i5 in o
12646
13456
                  | ExFun (_x, _x_i1) ->
12647
13457
                      let o = o#loc _x in let o = o#match_case _x_i1 in o
12648
13458
                  | ExIfe (_x, _x_i1, _x_i2, _x_i3) ->
12664
13474
                      let o = o#loc _x in let o = o#expr _x_i1 in o
12665
13475
                  | ExLet (_x, _x_i1, _x_i2, _x_i3) ->
12666
13476
                      let o = o#loc _x in
12667
 
                      let o = o#meta_bool _x_i1 in
 
13477
                      let o = o#rec_flag _x_i1 in
12668
13478
                      let o = o#binding _x_i2 in let o = o#expr _x_i3 in o
12669
13479
                  | ExLmd (_x, _x_i1, _x_i2, _x_i3) ->
12670
13480
                      let o = o#loc _x in
12715
13525
                  | ExWhi (_x, _x_i1, _x_i2) ->
12716
13526
                      let o = o#loc _x in
12717
13527
                      let o = o#expr _x_i1 in let o = o#expr _x_i2 in o
 
13528
                  | ExOpI (_x, _x_i1, _x_i2) ->
 
13529
                      let o = o#loc _x in
 
13530
                      let o = o#ident _x_i1 in let o = o#expr _x_i2 in o
 
13531
                  | ExFUN (_x, _x_i1, _x_i2) ->
 
13532
                      let o = o#loc _x in
 
13533
                      let o = o#string _x_i1 in let o = o#expr _x_i2 in o
 
13534
                  | ExPkg (_x, _x_i1) ->
 
13535
                      let o = o#loc _x in let o = o#module_expr _x_i1 in o
 
13536
                  
 
13537
                method direction_flag : direction_flag -> 'self_type =
 
13538
                  function
 
13539
                  | DiTo -> o
 
13540
                  | DiDownto -> o
 
13541
                  | DiAnt _x -> let o = o#string _x in o
12718
13542
                  
12719
13543
                method ctyp : ctyp -> 'self_type =
12720
13544
                  function
12752
13576
                      in o
12753
13577
                  | TyObj (_x, _x_i1, _x_i2) ->
12754
13578
                      let o = o#loc _x in
12755
 
                      let o = o#ctyp _x_i1 in let o = o#meta_bool _x_i2 in o
 
13579
                      let o = o#ctyp _x_i1 in
 
13580
                      let o = o#row_var_flag _x_i2 in o
12756
13581
                  | TyOlb (_x, _x_i1, _x_i2) ->
12757
13582
                      let o = o#loc _x in
12758
13583
                      let o = o#string _x_i1 in let o = o#ctyp _x_i2 in o
12813
13638
                  | TyOfAmp (_x, _x_i1, _x_i2) ->
12814
13639
                      let o = o#loc _x in
12815
13640
                      let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
 
13641
                  | TyPkg (_x, _x_i1) ->
 
13642
                      let o = o#loc _x in let o = o#module_type _x_i1 in o
12816
13643
                  | TyAnt (_x, _x_i1) ->
12817
13644
                      let o = o#loc _x in let o = o#string _x_i1 in o
12818
13645
                  
12821
13648
                  | CtNil _x -> let o = o#loc _x in o
12822
13649
                  | CtCon (_x, _x_i1, _x_i2, _x_i3) ->
12823
13650
                      let o = o#loc _x in
12824
 
                      let o = o#meta_bool _x_i1 in
 
13651
                      let o = o#virtual_flag _x_i1 in
12825
13652
                      let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
12826
13653
                  | CtFun (_x, _x_i1, _x_i2) ->
12827
13654
                      let o = o#loc _x in
12855
13682
                  | CrCtr (_x, _x_i1, _x_i2) ->
12856
13683
                      let o = o#loc _x in
12857
13684
                      let o = o#ctyp _x_i1 in let o = o#ctyp _x_i2 in o
12858
 
                  | CrInh (_x, _x_i1, _x_i2) ->
 
13685
                  | CrInh (_x, _x_i1, _x_i2, _x_i3) ->
12859
13686
                      let o = o#loc _x in
12860
 
                      let o = o#class_expr _x_i1 in
12861
 
                      let o = o#string _x_i2 in o
 
13687
                      let o = o#override_flag _x_i1 in
 
13688
                      let o = o#class_expr _x_i2 in
 
13689
                      let o = o#string _x_i3 in o
12862
13690
                  | CrIni (_x, _x_i1) ->
12863
13691
                      let o = o#loc _x in let o = o#expr _x_i1 in o
12864
 
                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
12865
 
                      let o = o#loc _x in
12866
 
                      let o = o#string _x_i1 in
12867
 
                      let o = o#meta_bool _x_i2 in
12868
 
                      let o = o#expr _x_i3 in let o = o#ctyp _x_i4 in o
12869
 
                  | CrVal (_x, _x_i1, _x_i2, _x_i3) ->
12870
 
                      let o = o#loc _x in
12871
 
                      let o = o#string _x_i1 in
12872
 
                      let o = o#meta_bool _x_i2 in let o = o#expr _x_i3 in o
 
13692
                  | CrMth (_x, _x_i1, _x_i2, _x_i3, _x_i4, _x_i5) ->
 
13693
                      let o = o#loc _x in
 
13694
                      let o = o#string _x_i1 in
 
13695
                      let o = o#override_flag _x_i2 in
 
13696
                      let o = o#private_flag _x_i3 in
 
13697
                      let o = o#expr _x_i4 in let o = o#ctyp _x_i5 in o
 
13698
                  | CrVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
 
13699
                      let o = o#loc _x in
 
13700
                      let o = o#string _x_i1 in
 
13701
                      let o = o#override_flag _x_i2 in
 
13702
                      let o = o#mutable_flag _x_i3 in
 
13703
                      let o = o#expr _x_i4 in o
12873
13704
                  | CrVir (_x, _x_i1, _x_i2, _x_i3) ->
12874
13705
                      let o = o#loc _x in
12875
13706
                      let o = o#string _x_i1 in
12876
 
                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
 
13707
                      let o = o#private_flag _x_i2 in
 
13708
                      let o = o#ctyp _x_i3 in o
12877
13709
                  | CrVvr (_x, _x_i1, _x_i2, _x_i3) ->
12878
13710
                      let o = o#loc _x in
12879
13711
                      let o = o#string _x_i1 in
12880
 
                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
 
13712
                      let o = o#mutable_flag _x_i2 in
 
13713
                      let o = o#ctyp _x_i3 in o
12881
13714
                  | CrAnt (_x, _x_i1) ->
12882
13715
                      let o = o#loc _x in let o = o#string _x_i1 in o
12883
13716
                  
12896
13729
                  | CgMth (_x, _x_i1, _x_i2, _x_i3) ->
12897
13730
                      let o = o#loc _x in
12898
13731
                      let o = o#string _x_i1 in
12899
 
                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
 
13732
                      let o = o#private_flag _x_i2 in
 
13733
                      let o = o#ctyp _x_i3 in o
12900
13734
                  | CgVal (_x, _x_i1, _x_i2, _x_i3, _x_i4) ->
12901
13735
                      let o = o#loc _x in
12902
13736
                      let o = o#string _x_i1 in
12903
 
                      let o = o#meta_bool _x_i2 in
12904
 
                      let o = o#meta_bool _x_i3 in let o = o#ctyp _x_i4 in o
 
13737
                      let o = o#mutable_flag _x_i2 in
 
13738
                      let o = o#virtual_flag _x_i3 in
 
13739
                      let o = o#ctyp _x_i4 in o
12905
13740
                  | CgVir (_x, _x_i1, _x_i2, _x_i3) ->
12906
13741
                      let o = o#loc _x in
12907
13742
                      let o = o#string _x_i1 in
12908
 
                      let o = o#meta_bool _x_i2 in let o = o#ctyp _x_i3 in o
 
13743
                      let o = o#private_flag _x_i2 in
 
13744
                      let o = o#ctyp _x_i3 in o
12909
13745
                  | CgAnt (_x, _x_i1) ->
12910
13746
                      let o = o#loc _x in let o = o#string _x_i1 in o
12911
13747
                  
12917
13753
                      let o = o#class_expr _x_i1 in let o = o#expr _x_i2 in o
12918
13754
                  | CeCon (_x, _x_i1, _x_i2, _x_i3) ->
12919
13755
                      let o = o#loc _x in
12920
 
                      let o = o#meta_bool _x_i1 in
 
13756
                      let o = o#virtual_flag _x_i1 in
12921
13757
                      let o = o#ident _x_i2 in let o = o#ctyp _x_i3 in o
12922
13758
                  | CeFun (_x, _x_i1, _x_i2) ->
12923
13759
                      let o = o#loc _x in
12924
13760
                      let o = o#patt _x_i1 in let o = o#class_expr _x_i2 in o
12925
13761
                  | CeLet (_x, _x_i1, _x_i2, _x_i3) ->
12926
13762
                      let o = o#loc _x in
12927
 
                      let o = o#meta_bool _x_i1 in
 
13763
                      let o = o#rec_flag _x_i1 in
12928
13764
                      let o = o#binding _x_i2 in
12929
13765
                      let o = o#class_expr _x_i3 in o
12930
13766
                  | CeStr (_x, _x_i1, _x_i2) ->
13276
14112
                | Loc.Exc_located (qloc, exc) ->
13277
14113
                    raise
13278
14114
                      (Loc.Exc_located (qloc,
13279
 
                         Error.E ((name, pos_tag, Finding, exc))))
 
14115
                         (Error.E ((name, pos_tag, Finding, exc)))))
13280
14116
                | exc ->
13281
14117
                    raise
13282
14118
                      (Loc.Exc_located (loc,
13283
 
                         Error.E ((name, pos_tag, Finding, exc)))) in
 
14119
                         (Error.E ((name, pos_tag, Finding, exc))))) in
13284
14120
              let loc = Loc.join (Loc.move `start quotation.q_shift loc)
13285
14121
              in expand_quotation loc expander pos_tag quotation
13286
14122
              
13401
14237
              | Ptyp_poly (_, _) -> t
13402
14238
              | _ -> { (t) with ptyp_desc = Ptyp_poly ([], t); }
13403
14239
              
13404
 
            let mb2b =
 
14240
            let mkvirtual =
13405
14241
              function
13406
 
              | Ast.BTrue -> true
13407
 
              | Ast.BFalse -> false
13408
 
              | Ast.BAnt _ -> assert false
 
14242
              | Ast.ViVirtual -> Virtual
 
14243
              | Ast.ViNil -> Concrete
 
14244
              | _ -> assert false
13409
14245
              
13410
 
            let mkvirtual m = if mb2b m then Virtual else Concrete
 
14246
            let mkdirection =
 
14247
              function
 
14248
              | Ast.DiTo -> Upto
 
14249
              | Ast.DiDownto -> Downto
 
14250
              | _ -> assert false
13411
14251
              
13412
14252
            let lident s = Lident s
13413
14253
              
13436
14276
              
13437
14277
            let mkrf =
13438
14278
              function
13439
 
              | Ast.BTrue -> Recursive
13440
 
              | Ast.BFalse -> Nonrecursive
13441
 
              | Ast.BAnt _ -> assert false
 
14279
              | Ast.ReRecursive -> Recursive
 
14280
              | Ast.ReNil -> Nonrecursive
 
14281
              | _ -> assert false
13442
14282
              
13443
14283
            let mkli s =
13444
14284
              let rec loop f =
13456
14296
                | Ast.IdAcc (_, i1, i2) -> self i2 (Some (self i1 acc))
13457
14297
                | Ast.IdApp (_, i1, i2) ->
13458
14298
                    let i' =
13459
 
                      Lapply (fst (self i1 None), fst (self i2 None)) in
 
14299
                      Lapply ((fst (self i1 None)), (fst (self i2 None))) in
13460
14300
                    let x =
13461
14301
                      (match acc with
13462
14302
                       | None -> i'
13534
14374
                     | (t, TyQuo (_, s)) -> (t, s)
13535
14375
                     | (TyQuo (_, s), t) -> (t, s)
13536
14376
                     | _ -> error loc "invalid alias type")
13537
 
                  in mktyp loc (Ptyp_alias (ctyp t, i))
 
14377
                  in mktyp loc (Ptyp_alias ((ctyp t), i))
13538
14378
              | TyAny loc -> mktyp loc Ptyp_any
13539
14379
              | (TyApp (loc, _, _) as f) ->
13540
14380
                  let (f, al) = ctyp_fa [] f in
13541
14381
                  let (is_cls, li) = ctyp_long_id f
13542
14382
                  in
13543
14383
                    if is_cls
13544
 
                    then mktyp loc (Ptyp_class (li, List.map ctyp al, []))
13545
 
                    else mktyp loc (Ptyp_constr (li, List.map ctyp al))
 
14384
                    then mktyp loc (Ptyp_class (li, (List.map ctyp al), []))
 
14385
                    else mktyp loc (Ptyp_constr (li, (List.map ctyp al)))
13546
14386
              | TyArr (loc, (TyLab (_, lab, t1)), t2) ->
13547
 
                  mktyp loc (Ptyp_arrow (lab, ctyp t1, ctyp t2))
 
14387
                  mktyp loc (Ptyp_arrow (lab, (ctyp t1), (ctyp t2)))
13548
14388
              | TyArr (loc, (TyOlb (loc1, lab, t1)), t2) ->
13549
14389
                  let t1 =
13550
 
                    TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")),
13551
 
                      t1)
13552
 
                  in mktyp loc (Ptyp_arrow ("?" ^ lab, ctyp t1, ctyp t2))
 
14390
                    TyApp (loc1,
 
14391
                      (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t1)
 
14392
                  in
 
14393
                    mktyp loc
 
14394
                      (Ptyp_arrow (("?" ^ lab), (ctyp t1), (ctyp t2)))
13553
14395
              | TyArr (loc, t1, t2) ->
13554
 
                  mktyp loc (Ptyp_arrow ("", ctyp t1, ctyp t2))
13555
 
              | Ast.TyObj (loc, fl, Ast.BFalse) ->
 
14396
                  mktyp loc (Ptyp_arrow ("", (ctyp t1), (ctyp t2)))
 
14397
              | Ast.TyObj (loc, fl, Ast.RvNil) ->
13556
14398
                  mktyp loc (Ptyp_object (meth_list fl []))
13557
 
              | Ast.TyObj (loc, fl, Ast.BTrue) ->
 
14399
              | Ast.TyObj (loc, fl, Ast.RvRowVar) ->
13558
14400
                  mktyp loc
13559
14401
                    (Ptyp_object (meth_list fl [ mkfield loc Pfield_var ]))
13560
 
              | TyCls (loc, id) -> mktyp loc (Ptyp_class (ident id, [], []))
 
14402
              | TyCls (loc, id) ->
 
14403
                  mktyp loc (Ptyp_class ((ident id), [], []))
 
14404
              | Ast.TyPkg (loc, pt) ->
 
14405
                  let (i, cs) = package_type pt
 
14406
                  in mktyp loc (Ptyp_package (i, cs))
13561
14407
              | TyLab (loc, _, _) ->
13562
14408
                  error loc "labelled type not allowed here"
13563
14409
              | TyMan (loc, _, _) ->
13565
14411
              | TyOlb (loc, _, _) ->
13566
14412
                  error loc "labelled type not allowed here"
13567
14413
              | TyPol (loc, t1, t2) ->
13568
 
                  mktyp loc (Ptyp_poly (ty_var_list_of_ctyp t1, ctyp t2))
 
14414
                  mktyp loc (Ptyp_poly ((ty_var_list_of_ctyp t1), (ctyp t2)))
13569
14415
              | TyQuo (loc, s) -> mktyp loc (Ptyp_var s)
13570
14416
              | TyRec (loc, _) -> error loc "record type not allowed here"
13571
14417
              | TySum (loc, _) -> error loc "sum type not allowed here"
13586
14432
                    (Ptyp_tuple
13587
14433
                       (List.map ctyp (list_of_ctyp t1 (list_of_ctyp t2 []))))
13588
14434
              | Ast.TyVrnEq (loc, t) ->
13589
 
                  mktyp loc (Ptyp_variant (row_field t, true, None))
 
14435
                  mktyp loc (Ptyp_variant ((row_field t), true, None))
13590
14436
              | Ast.TyVrnSup (loc, t) ->
13591
 
                  mktyp loc (Ptyp_variant (row_field t, false, None))
 
14437
                  mktyp loc (Ptyp_variant ((row_field t), false, None))
13592
14438
              | Ast.TyVrnInf (loc, t) ->
13593
 
                  mktyp loc (Ptyp_variant (row_field t, true, Some []))
 
14439
                  mktyp loc (Ptyp_variant ((row_field t), true, (Some [])))
13594
14440
              | Ast.TyVrnInfSup (loc, t, t') ->
13595
14441
                  mktyp loc
13596
 
                    (Ptyp_variant (row_field t, true, Some (name_tags t')))
 
14442
                    (Ptyp_variant ((row_field t), true,
 
14443
                       (Some (name_tags t'))))
13597
14444
              | TyAnt (loc, _) -> error loc "antiquotation not allowed here"
13598
14445
              | TyOfAmp (_, _, _) | TyAmp (_, _, _) | TySta (_, _, _) |
13599
14446
                  TyCom (_, _, _) | TyVrn (_, _) | TyQuM (_, _) |
13600
14447
                  TyQuP (_, _) | TyDcl (_, _, _, _, _) |
13601
 
                  TyObj (_, _, (BAnt _)) | TyNil _ | TyTup (_, _) ->
 
14448
                  TyObj (_, _, (RvAnt _)) | TyNil _ | TyTup (_, _) ->
13602
14449
                  assert false
13603
14450
            and row_field =
13604
14451
              function
13605
14452
              | Ast.TyNil _ -> []
13606
14453
              | Ast.TyVrn (_, i) -> [ Rtag (i, true, []) ]
13607
14454
              | Ast.TyOfAmp (_, (Ast.TyVrn (_, i)), t) ->
13608
 
                  [ Rtag (i, true, List.map ctyp (list_of_ctyp t [])) ]
 
14455
                  [ Rtag (i, true, (List.map ctyp (list_of_ctyp t []))) ]
13609
14456
              | Ast.TyOf (_, (Ast.TyVrn (_, i)), t) ->
13610
 
                  [ Rtag (i, false, List.map ctyp (list_of_ctyp t [])) ]
 
14457
                  [ Rtag (i, false, (List.map ctyp (list_of_ctyp t []))) ]
13611
14458
              | Ast.TyOr (_, t1, t2) -> (row_field t1) @ (row_field t2)
13612
14459
              | t -> [ Rinherit (ctyp t) ]
13613
14460
            and name_tags =
13620
14467
              | Ast.TyNil _ -> acc
13621
14468
              | Ast.TySem (_, t1, t2) -> meth_list t1 (meth_list t2 acc)
13622
14469
              | Ast.TyCol (loc, (Ast.TyId (_, (Ast.IdLid (_, lab)))), t) ->
13623
 
                  (mkfield loc (Pfield (lab, mkpolytype (ctyp t)))) :: acc
 
14470
                  (mkfield loc (Pfield (lab, (mkpolytype (ctyp t))))) :: acc
13624
14471
              | _ -> assert false
 
14472
            and package_type_constraints wc acc =
 
14473
              match wc with
 
14474
              | Ast.WcNil _ -> acc
 
14475
              | Ast.WcTyp (_, (Ast.TyId (_, (Ast.IdLid (_, id)))), ct) ->
 
14476
                  (id, (ctyp ct)) :: acc
 
14477
              | Ast.WcAnd (_, wc1, wc2) ->
 
14478
                  package_type_constraints wc1
 
14479
                    (package_type_constraints wc2 acc)
 
14480
              | _ ->
 
14481
                  error (loc_of_with_constr wc)
 
14482
                    "unexpected `with constraint' for a package type"
 
14483
            and package_type : module_type -> package_type =
 
14484
              function
 
14485
              | Ast.MtWit (_, (Ast.MtId (_, i)), wc) ->
 
14486
                  ((long_uident i), (package_type_constraints wc []))
 
14487
              | Ast.MtId (_, i) -> ((long_uident i), [])
 
14488
              | mt -> error (loc_of_module_type mt) "unexpected package type"
13625
14489
              
13626
14490
            let mktype loc tl cl tk tp tm =
13627
14491
              let (params, variance) = List.split tl
13638
14502
              
13639
14503
            let mkprivate' m = if m then Private else Public
13640
14504
              
13641
 
            let mkprivate m = mkprivate' (mb2b m)
 
14505
            let mkprivate =
 
14506
              function
 
14507
              | Ast.PrPrivate -> Private
 
14508
              | Ast.PrNil -> Public
 
14509
              | _ -> assert false
13642
14510
              
13643
14511
            let mktrecord =
13644
14512
              function
13693
14561
              | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs)
13694
14562
              | Ast.LAnt _ -> assert false
13695
14563
              
13696
 
            let mkmutable m = if mb2b m then Mutable else Immutable
 
14564
            let mkmutable =
 
14565
              function
 
14566
              | Ast.MuMutable -> Mutable
 
14567
              | Ast.MuNil -> Immutable
 
14568
              | _ -> assert false
13697
14569
              
13698
14570
            let paolab lab p =
13699
14571
              match (lab, p) with
13734
14606
              | Ast.TyId (_, i) -> ((ident i), acc)
13735
14607
              | _ -> assert false
13736
14608
              
 
14609
            let mkwithtyp pwith_type loc id_tpl ct =
 
14610
              let (id, tpl) = type_parameters_and_type_name id_tpl [] in
 
14611
              let (params, variance) = List.split tpl in
 
14612
              let (kind, priv, ct) = opt_private_ctyp ct
 
14613
              in
 
14614
                (id,
 
14615
                 (pwith_type
 
14616
                    {
 
14617
                      ptype_params = params;
 
14618
                      ptype_cstrs = [];
 
14619
                      ptype_kind = kind;
 
14620
                      ptype_private = priv;
 
14621
                      ptype_manifest = Some ct;
 
14622
                      ptype_loc = mkloc loc;
 
14623
                      ptype_variance = variance;
 
14624
                    }))
 
14625
              
13737
14626
            let rec mkwithc wc acc =
13738
14627
              match wc with
13739
 
              | WcNil _ -> acc
13740
 
              | WcTyp (loc, id_tpl, ct) ->
13741
 
                  let (id, tpl) = type_parameters_and_type_name id_tpl [] in
13742
 
                  let (params, variance) = List.split tpl in
13743
 
                  let (kind, priv, ct) = opt_private_ctyp ct
13744
 
                  in
13745
 
                    (id,
13746
 
                     (Pwith_type
13747
 
                        {
13748
 
                          ptype_params = params;
13749
 
                          ptype_cstrs = [];
13750
 
                          ptype_kind = kind;
13751
 
                          ptype_private = priv;
13752
 
                          ptype_manifest = Some ct;
13753
 
                          ptype_loc = mkloc loc;
13754
 
                          ptype_variance = variance;
13755
 
                        })) ::
13756
 
                      acc
13757
 
              | WcMod (_, i1, i2) ->
 
14628
              | Ast.WcNil _ -> acc
 
14629
              | Ast.WcTyp (loc, id_tpl, ct) ->
 
14630
                  (mkwithtyp (fun x -> Pwith_type x) loc id_tpl ct) :: acc
 
14631
              | Ast.WcMod (_, i1, i2) ->
13758
14632
                  ((long_uident i1), (Pwith_module (long_uident i2))) :: acc
 
14633
              | Ast.WcTyS (loc, id_tpl, ct) ->
 
14634
                  (mkwithtyp (fun x -> Pwith_typesubst x) loc id_tpl ct) ::
 
14635
                    acc
 
14636
              | Ast.WcMoS (_, i1, i2) ->
 
14637
                  ((long_uident i1), (Pwith_modsubst (long_uident i2))) ::
 
14638
                    acc
13759
14639
              | Ast.WcAnd (_, wc1, wc2) -> mkwithc wc1 (mkwithc wc2 acc)
13760
14640
              | Ast.WcAnt (loc, _) ->
13761
14641
                  error loc "bad with constraint (antiquotation)"
13770
14650
              then mkghpat loc (Ppat_constant (Const_char c1))
13771
14651
              else
13772
14652
                mkghpat loc
13773
 
                  (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)),
13774
 
                     deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2))
 
14653
                  (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))),
 
14654
                     (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2)))
13775
14655
              
13776
14656
            let rec mkrangepat loc c1 c2 =
13777
14657
              if c1 > c2
13781
14661
                then mkpat loc (Ppat_constant (Const_char c1))
13782
14662
                else
13783
14663
                  mkpat loc
13784
 
                    (Ppat_or (mkghpat loc (Ppat_constant (Const_char c1)),
13785
 
                       deep_mkrangepat loc (Char.chr ((Char.code c1) + 1)) c2))
 
14664
                    (Ppat_or ((mkghpat loc (Ppat_constant (Const_char c1))),
 
14665
                       (deep_mkrangepat loc (Char.chr ((Char.code c1) + 1))
 
14666
                          c2)))
13786
14667
              
13787
14668
            let rec patt =
13788
14669
              function
13789
14670
              | Ast.PaId (loc, (Ast.IdLid (_, s))) -> mkpat loc (Ppat_var s)
13790
14671
              | Ast.PaId (loc, i) ->
13791
14672
                  let p =
13792
 
                    Ppat_construct (long_uident ~conv_con i, None,
13793
 
                      constructors_arity ())
 
14673
                    Ppat_construct ((long_uident ~conv_con i), None,
 
14674
                      (constructors_arity ()))
13794
14675
                  in mkpat loc p
13795
14676
              | PaAli (loc, p1, p2) ->
13796
14677
                  let (p, i) =
13798
14679
                     | (p, Ast.PaId (_, (Ast.IdLid (_, s)))) -> (p, s)
13799
14680
                     | (Ast.PaId (_, (Ast.IdLid (_, s))), p) -> (p, s)
13800
14681
                     | _ -> error loc "invalid alias pattern")
13801
 
                  in mkpat loc (Ppat_alias (patt p, i))
 
14682
                  in mkpat loc (Ppat_alias ((patt p), i))
13802
14683
              | PaAnt (loc, _) -> error loc "antiquotation not allowed here"
13803
14684
              | PaAny loc -> mkpat loc Ppat_any
13804
14685
              | Ast.PaApp (loc, (Ast.PaId (_, (Ast.IdUid (_, s)))),
13805
14686
                  (Ast.PaTup (_, (Ast.PaAny loc_any)))) ->
13806
14687
                  mkpat loc
13807
 
                    (Ppat_construct (lident (conv_con s),
13808
 
                       Some (mkpat loc_any Ppat_any), false))
 
14688
                    (Ppat_construct ((lident (conv_con s)),
 
14689
                       (Some (mkpat loc_any Ppat_any)), false))
13809
14690
              | (PaApp (loc, _, _) as f) ->
13810
14691
                  let (f, al) = patt_fa [] f in
13811
14692
                  let al = List.map patt al
13816
14697
                         then
13817
14698
                           mkpat loc
13818
14699
                             (Ppat_construct (li,
13819
 
                                Some (mkpat loc (Ppat_tuple al)), true))
 
14700
                                (Some (mkpat loc (Ppat_tuple al))), true))
13820
14701
                         else
13821
14702
                           (let a =
13822
14703
                              match al with
13823
14704
                              | [ a ] -> a
13824
14705
                              | _ -> mkpat loc (Ppat_tuple al)
13825
 
                            in mkpat loc (Ppat_construct (li, Some a, false)))
 
14706
                            in
 
14707
                              mkpat loc
 
14708
                                (Ppat_construct (li, (Some a), false)))
13826
14709
                     | Ppat_variant (s, None) ->
13827
14710
                         let a =
13828
14711
                           if constructors_arity ()
13831
14714
                             (match al with
13832
14715
                              | [ a ] -> a
13833
14716
                              | _ -> mkpat loc (Ppat_tuple al))
13834
 
                         in mkpat loc (Ppat_variant (s, Some a))
 
14717
                         in mkpat loc (Ppat_variant (s, (Some a)))
13835
14718
                     | _ ->
13836
14719
                         error (loc_of_patt f)
13837
14720
                           "this is not a constructor, it cannot be applied in a pattern")
13879
14762
                  error loc "labeled pattern not allowed here"
13880
14763
              | PaOlb (loc, _, _) | PaOlbi (loc, _, _, _) ->
13881
14764
                  error loc "labeled pattern not allowed here"
13882
 
              | PaOrp (loc, p1, p2) -> mkpat loc (Ppat_or (patt p1, patt p2))
 
14765
              | PaOrp (loc, p1, p2) ->
 
14766
                  mkpat loc (Ppat_or ((patt p1), (patt p2)))
13883
14767
              | PaRng (loc, p1, p2) ->
13884
14768
                  (match (p1, p2) with
13885
14769
                   | (PaChr (loc1, c1), PaChr (loc2, c2)) ->
13889
14773
                   | _ ->
13890
14774
                       error loc "range pattern allowed only for characters")
13891
14775
              | PaRec (loc, p) ->
13892
 
                  mkpat loc
13893
 
                    (Ppat_record (List.map mklabpat (list_of_patt p [])))
 
14776
                  let ps = list_of_patt p [] in
 
14777
                  let is_wildcard =
 
14778
                    (function | Ast.PaAny _ -> true | _ -> false) in
 
14779
                  let (wildcards, ps) = List.partition is_wildcard ps in
 
14780
                  let is_closed = if wildcards = [] then Closed else Open
 
14781
                  in
 
14782
                    mkpat loc
 
14783
                      (Ppat_record (((List.map mklabpat ps), is_closed)))
13894
14784
              | PaStr (loc, s) ->
13895
14785
                  mkpat loc
13896
14786
                    (Ppat_constant
13901
14791
                       (List.map patt (list_of_patt p1 (list_of_patt p2 []))))
13902
14792
              | Ast.PaTup (loc, _) -> error loc "singleton tuple pattern"
13903
14793
              | PaTyc (loc, p, t) ->
13904
 
                  mkpat loc (Ppat_constraint (patt p, ctyp t))
 
14794
                  mkpat loc (Ppat_constraint ((patt p), (ctyp t)))
13905
14795
              | PaTyp (loc, i) -> mkpat loc (Ppat_type (long_type_ident i))
13906
14796
              | PaVrn (loc, s) -> mkpat loc (Ppat_variant (s, None))
13907
14797
              | PaLaz (loc, p) -> mkpat loc (Ppat_lazy (patt p))
13935
14825
                  let rec normalize_acc =
13936
14826
                    (function
13937
14827
                     | Ast.IdAcc (_loc, i1, i2) ->
13938
 
                         Ast.ExAcc (_loc, normalize_acc i1, normalize_acc i2)
 
14828
                         Ast.ExAcc (_loc, (normalize_acc i1),
 
14829
                           (normalize_acc i2))
13939
14830
                     | Ast.IdApp (_loc, i1, i2) ->
13940
 
                         Ast.ExApp (_loc, normalize_acc i1, normalize_acc i2)
 
14831
                         Ast.ExApp (_loc, (normalize_acc i1),
 
14832
                           (normalize_acc i2))
13941
14833
                     | (Ast.IdAnt (_loc, _) | Ast.IdUid (_loc, _) |
13942
14834
                          Ast.IdLid (_loc, _)
13943
14835
                        as i) -> Ast.ExId (_loc, i))
13944
14836
                  in sep_expr_acc l (normalize_acc i)
13945
14837
              | e -> ((loc_of_expr e), [], e) :: l
13946
14838
              
 
14839
            let override_flag loc =
 
14840
              function
 
14841
              | Ast.OvOverride -> Override
 
14842
              | Ast.OvNil -> Fresh
 
14843
              | _ -> error loc "antiquotation not allowed here"
 
14844
              
13947
14845
            let list_of_opt_ctyp ot acc =
13948
14846
              match ot with | Ast.TyNil _ -> acc | t -> list_of_ctyp t acc
13949
14847
              
13951
14849
              function
13952
14850
              | Ast.ExAcc (loc, x, (Ast.ExId (_, (Ast.IdLid (_, "val"))))) ->
13953
14851
                  mkexp loc
13954
 
                    (Pexp_apply (mkexp loc (Pexp_ident (Lident "!")),
 
14852
                    (Pexp_apply ((mkexp loc (Pexp_ident (Lident "!"))),
13955
14853
                       [ ("", (expr x)) ]))
13956
14854
              | (ExAcc (loc, _, _) | Ast.ExId (loc, (Ast.IdAcc (_, _, _))) as
13957
14855
                 e) ->
13961
14859
                         let ca = constructors_arity ()
13962
14860
                         in
13963
14861
                           ((mkexp loc
13964
 
                               (Pexp_construct (mkli (conv_con s) ml, None,
 
14862
                               (Pexp_construct ((mkli (conv_con s) ml), None,
13965
14863
                                  ca))),
13966
14864
                            l)
13967
14865
                     | (loc, ml, Ast.ExId (_, (Ast.IdLid (_, s)))) :: l ->
13977
14875
                             in
13978
14876
                               (loc,
13979
14877
                                (mkexp loc
13980
 
                                   (Pexp_field (e1, mkli (conv_lab s) ml))))
 
14878
                                   (Pexp_field (e1, (mkli (conv_lab s) ml)))))
13981
14879
                         | _ ->
13982
14880
                             error (loc_of_expr e2)
13983
14881
                               "lowercase identifier expected")
13996
14894
                           then
13997
14895
                             mkexp loc
13998
14896
                               (Pexp_construct (li,
13999
 
                                  Some (mkexp loc (Pexp_tuple al)), true))
 
14897
                                  (Some (mkexp loc (Pexp_tuple al))), true))
14000
14898
                           else
14001
14899
                             (let a =
14002
14900
                                match al with
14004
14902
                                | _ -> mkexp loc (Pexp_tuple al)
14005
14903
                              in
14006
14904
                                mkexp loc
14007
 
                                  (Pexp_construct (li, Some a, false)))
 
14905
                                  (Pexp_construct (li, (Some a), false)))
14008
14906
                     | Pexp_variant (s, None) ->
14009
14907
                         let al = List.map snd al in
14010
14908
                         let a =
14014
14912
                             (match al with
14015
14913
                              | [ a ] -> a
14016
14914
                              | _ -> mkexp loc (Pexp_tuple al))
14017
 
                         in mkexp loc (Pexp_variant (s, Some a))
14018
 
                     | _ -> mkexp loc (Pexp_apply (expr f, al)))
 
14915
                         in mkexp loc (Pexp_variant (s, (Some a)))
 
14916
                     | _ -> mkexp loc (Pexp_apply ((expr f), al)))
14019
14917
              | ExAre (loc, e1, e2) ->
14020
14918
                  mkexp loc
14021
14919
                    (Pexp_apply
14022
 
                       (mkexp loc (Pexp_ident (array_function "Array" "get")),
 
14920
                       ((mkexp loc
 
14921
                           (Pexp_ident (array_function "Array" "get"))),
14023
14922
                       [ ("", (expr e1)); ("", (expr e2)) ]))
14024
14923
              | ExArr (loc, e) ->
14025
14924
                  mkexp loc (Pexp_array (List.map expr (list_of_expr e [])))
14029
14928
                    (match e with
14030
14929
                     | Ast.ExAcc (loc, x,
14031
14930
                         (Ast.ExId (_, (Ast.IdLid (_, "val"))))) ->
14032
 
                         Pexp_apply (mkexp loc (Pexp_ident (Lident ":=")),
 
14931
                         Pexp_apply ((mkexp loc (Pexp_ident (Lident ":="))),
14033
14932
                           [ ("", (expr x)); ("", (expr v)) ])
14034
14933
                     | ExAcc (loc, _, _) ->
14035
14934
                         (match (expr e).pexp_desc with
14036
14935
                          | Pexp_field (e, lab) ->
14037
 
                              Pexp_setfield (e, lab, expr v)
 
14936
                              Pexp_setfield (e, lab, (expr v))
14038
14937
                          | _ -> error loc "bad record access")
14039
14938
                     | ExAre (_, e1, e2) ->
14040
14939
                         Pexp_apply
14041
 
                           (mkexp loc
14042
 
                              (Pexp_ident (array_function "Array" "set")),
 
14940
                           ((mkexp loc
 
14941
                               (Pexp_ident (array_function "Array" "set"))),
14043
14942
                           [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ])
14044
14943
                     | Ast.ExId (_, (Ast.IdLid (_, lab))) ->
14045
 
                         Pexp_setinstvar (lab, expr v)
 
14944
                         Pexp_setinstvar (lab, (expr v))
14046
14945
                     | ExSte (_, e1, e2) ->
14047
14946
                         Pexp_apply
14048
 
                           (mkexp loc
14049
 
                              (Pexp_ident (array_function "String" "set")),
 
14947
                           ((mkexp loc
 
14948
                               (Pexp_ident (array_function "String" "set"))),
14050
14949
                           [ ("", (expr e1)); ("", (expr e2)); ("", (expr v)) ])
14051
14950
                     | _ -> error loc "bad left part of assignment")
14052
14951
                  in mkexp loc e
14057
14956
              | ExCoe (loc, e, t1, t2) ->
14058
14957
                  let t1 =
14059
14958
                    (match t1 with | Ast.TyNil _ -> None | t -> Some (ctyp t))
14060
 
                  in mkexp loc (Pexp_constraint (expr e, t1, Some (ctyp t2)))
 
14959
                  in
 
14960
                    mkexp loc
 
14961
                      (Pexp_constraint ((expr e), t1, (Some (ctyp t2))))
14061
14962
              | ExFlo (loc, s) ->
14062
14963
                  mkexp loc
14063
14964
                    (Pexp_constant (Const_float (remove_underscores s)))
14064
14965
              | ExFor (loc, i, e1, e2, df, el) ->
14065
 
                  let e3 = ExSeq (loc, el) in
14066
 
                  let df = if mb2b df then Upto else Downto
14067
 
                  in mkexp loc (Pexp_for (i, expr e1, expr e2, df, expr e3))
 
14966
                  let e3 = ExSeq (loc, el)
 
14967
                  in
 
14968
                    mkexp loc
 
14969
                      (Pexp_for (i, (expr e1), (expr e2), (mkdirection df),
 
14970
                         (expr e3)))
14068
14971
              | Ast.ExFun (loc, (Ast.McArr (_, (PaLab (_, lab, po)), w, e)))
14069
14972
                  ->
14070
14973
                  mkexp loc
14075
14978
                  let lab = paolab lab p
14076
14979
                  in
14077
14980
                    mkexp loc
14078
 
                      (Pexp_function ("?" ^ lab, Some (expr e1),
 
14981
                      (Pexp_function (("?" ^ lab), (Some (expr e1)),
14079
14982
                         [ ((patt p), (when_expr e2 w)) ]))
14080
14983
              | Ast.ExFun (loc, (Ast.McArr (_, (PaOlb (_, lab, p)), w, e)))
14081
14984
                  ->
14082
14985
                  let lab = paolab lab p
14083
14986
                  in
14084
14987
                    mkexp loc
14085
 
                      (Pexp_function ("?" ^ lab, None,
 
14988
                      (Pexp_function (("?" ^ lab), None,
14086
14989
                         [ ((patt_of_lab loc lab p), (when_expr e w)) ]))
14087
14990
              | ExFun (loc, a) ->
14088
 
                  mkexp loc (Pexp_function ("", None, match_case a []))
 
14991
                  mkexp loc (Pexp_function ("", None, (match_case a [])))
14089
14992
              | ExIfe (loc, e1, e2, e3) ->
14090
14993
                  mkexp loc
14091
 
                    (Pexp_ifthenelse (expr e1, expr e2, Some (expr e3)))
 
14994
                    (Pexp_ifthenelse ((expr e1), (expr e2), (Some (expr e3))))
14092
14995
              | ExInt (loc, s) ->
14093
14996
                  let i =
14094
14997
                    (try int_of_string s
14125
15028
                  error loc "labeled expression not allowed here"
14126
15029
              | ExLaz (loc, e) -> mkexp loc (Pexp_lazy (expr e))
14127
15030
              | ExLet (loc, rf, bi, e) ->
14128
 
                  mkexp loc (Pexp_let (mkrf rf, binding bi [], expr e))
 
15031
                  mkexp loc (Pexp_let ((mkrf rf), (binding bi []), (expr e)))
14129
15032
              | ExLmd (loc, i, me, e) ->
14130
 
                  mkexp loc (Pexp_letmodule (i, module_expr me, expr e))
 
15033
                  mkexp loc (Pexp_letmodule (i, (module_expr me), (expr e)))
14131
15034
              | ExMat (loc, e, a) ->
14132
 
                  mkexp loc (Pexp_match (expr e, match_case a []))
 
15035
                  mkexp loc (Pexp_match ((expr e), (match_case a [])))
14133
15036
              | ExNew (loc, id) -> mkexp loc (Pexp_new (long_type_ident id))
14134
15037
              | ExObj (loc, po, cfl) ->
14135
15038
                  let p =
14148
15051
                         (match eo with
14149
15052
                          | Ast.ExNil _ -> None
14150
15053
                          | e -> Some (expr e))
14151
 
                       in mkexp loc (Pexp_record (mklabexp lel [], eo)))
 
15054
                       in mkexp loc (Pexp_record ((mklabexp lel []), eo)))
14152
15055
              | ExSeq (_loc, e) ->
14153
15056
                  let rec loop =
14154
15057
                    (function
14155
 
                     | [] -> expr (Ast.ExId (_loc, Ast.IdUid (_loc, "()")))
 
15058
                     | [] -> expr (Ast.ExId (_loc, (Ast.IdUid (_loc, "()"))))
14156
15059
                     | [ e ] -> expr e
14157
15060
                     | e :: el ->
14158
15061
                         let _loc = Loc.merge (loc_of_expr e) _loc
14159
 
                         in mkexp _loc (Pexp_sequence (expr e, loop el)))
 
15062
                         in mkexp _loc (Pexp_sequence ((expr e), (loop el))))
14160
15063
                  in loop (list_of_expr e [])
14161
 
              | ExSnd (loc, e, s) -> mkexp loc (Pexp_send (expr e, s))
 
15064
              | ExSnd (loc, e, s) -> mkexp loc (Pexp_send ((expr e), s))
14162
15065
              | ExSte (loc, e1, e2) ->
14163
15066
                  mkexp loc
14164
15067
                    (Pexp_apply
14165
 
                       (mkexp loc
14166
 
                          (Pexp_ident (array_function "String" "get")),
 
15068
                       ((mkexp loc
 
15069
                           (Pexp_ident (array_function "String" "get"))),
14167
15070
                       [ ("", (expr e1)); ("", (expr e2)) ]))
14168
15071
              | ExStr (loc, s) ->
14169
15072
                  mkexp loc
14170
15073
                    (Pexp_constant
14171
15074
                       (Const_string (string_of_string_token loc s)))
14172
15075
              | ExTry (loc, e, a) ->
14173
 
                  mkexp loc (Pexp_try (expr e, match_case a []))
 
15076
                  mkexp loc (Pexp_try ((expr e), (match_case a [])))
14174
15077
              | Ast.ExTup (loc, (Ast.ExCom (_, e1, e2))) ->
14175
15078
                  mkexp loc
14176
15079
                    (Pexp_tuple
14177
15080
                       (List.map expr (list_of_expr e1 (list_of_expr e2 []))))
14178
15081
              | Ast.ExTup (loc, _) -> error loc "singleton tuple"
14179
15082
              | ExTyc (loc, e, t) ->
14180
 
                  mkexp loc (Pexp_constraint (expr e, Some (ctyp t), None))
 
15083
                  mkexp loc
 
15084
                    (Pexp_constraint ((expr e), (Some (ctyp t)), None))
14181
15085
              | Ast.ExId (loc, (Ast.IdUid (_, "()"))) ->
14182
 
                  mkexp loc (Pexp_construct (lident "()", None, true))
 
15086
                  mkexp loc (Pexp_construct ((lident "()"), None, true))
14183
15087
              | Ast.ExId (loc, (Ast.IdLid (_, s))) ->
14184
15088
                  mkexp loc (Pexp_ident (lident s))
14185
15089
              | Ast.ExId (loc, (Ast.IdUid (_, s))) ->
14186
15090
                  mkexp loc
14187
 
                    (Pexp_construct (lident (conv_con s), None, true))
 
15091
                    (Pexp_construct ((lident (conv_con s)), None, true))
14188
15092
              | ExVrn (loc, s) -> mkexp loc (Pexp_variant (s, None))
14189
15093
              | ExWhi (loc, e1, el) ->
14190
15094
                  let e2 = ExSeq (loc, el)
14191
 
                  in mkexp loc (Pexp_while (expr e1, expr e2))
 
15095
                  in mkexp loc (Pexp_while ((expr e1), (expr e2)))
 
15096
              | Ast.ExOpI (loc, i, e) ->
 
15097
                  mkexp loc (Pexp_open ((long_uident i), (expr e)))
 
15098
              | Ast.ExPkg (loc, (Ast.MeTyc (_, me, pt))) ->
 
15099
                  mkexp loc (Pexp_pack ((module_expr me), (package_type pt)))
 
15100
              | Ast.ExPkg (loc, _) ->
 
15101
                  error loc "(module_expr : package_type) expected here"
 
15102
              | ExFUN (loc, i, e) -> mkexp loc (Pexp_newtype (i, (expr e)))
14192
15103
              | Ast.ExCom (loc, _, _) ->
14193
15104
                  error loc "expr, expr: not allowed here"
14194
15105
              | Ast.ExSem (loc, _, _) ->
14198
15109
                  error (loc_of_expr e) "invalid expr"
14199
15110
            and patt_of_lab _loc lab =
14200
15111
              function
14201
 
              | Ast.PaNil _ -> patt (Ast.PaId (_loc, Ast.IdLid (_loc, lab)))
 
15112
              | Ast.PaNil _ ->
 
15113
                  patt (Ast.PaId (_loc, (Ast.IdLid (_loc, lab))))
14202
15114
              | p -> patt p
14203
15115
            and expr_of_lab _loc lab =
14204
15116
              function
14205
 
              | Ast.ExNil _ -> expr (Ast.ExId (_loc, Ast.IdLid (_loc, lab)))
 
15117
              | Ast.ExNil _ ->
 
15118
                  expr (Ast.ExId (_loc, (Ast.IdLid (_loc, lab))))
14206
15119
              | e -> expr e
14207
15120
            and label_expr =
14208
15121
              function
14213
15126
            and binding x acc =
14214
15127
              match x with
14215
15128
              | Ast.BiAnd (_, x, y) -> binding x (binding y acc)
 
15129
              | Ast.BiEq (_loc, p,
 
15130
                  (Ast.ExTyc (_, e, (Ast.TyPol (_, vs, ty))))) ->
 
15131
                  ((patt (Ast.PaTyc (_loc, p, (Ast.TyPol (_loc, vs, ty))))),
 
15132
                   (expr e)) :: acc
14216
15133
              | Ast.BiEq (_, p, e) -> ((patt p), (expr e)) :: acc
14217
15134
              | Ast.BiNil _ -> acc
14218
15135
              | _ -> assert false
14225
15142
            and when_expr e w =
14226
15143
              match w with
14227
15144
              | Ast.ExNil _ -> expr e
14228
 
              | w -> mkexp (loc_of_expr w) (Pexp_when (expr w, expr e))
 
15145
              | w -> mkexp (loc_of_expr w) (Pexp_when ((expr w), (expr e)))
14229
15146
            and mklabexp x acc =
14230
15147
              match x with
14231
15148
              | Ast.RbSem (_, x, y) -> mklabexp x (mklabexp y acc)
14261
15178
              | Ast.MtId (loc, i) -> mkmty loc (Pmty_ident (long_uident i))
14262
15179
              | Ast.MtFun (loc, n, nt, mt) ->
14263
15180
                  mkmty loc
14264
 
                    (Pmty_functor (n, module_type nt, module_type mt))
 
15181
                    (Pmty_functor (n, (module_type nt), (module_type mt)))
14265
15182
              | Ast.MtQuo (loc, _) ->
14266
15183
                  error loc "module type variable not allowed here"
14267
15184
              | Ast.MtSig (loc, sl) ->
14268
15185
                  mkmty loc (Pmty_signature (sig_item sl []))
14269
15186
              | Ast.MtWit (loc, mt, wc) ->
14270
 
                  mkmty loc (Pmty_with (module_type mt, mkwithc wc []))
 
15187
                  mkmty loc (Pmty_with ((module_type mt), (mkwithc wc [])))
14271
15188
              | Ast.MtAnt (_, _) -> assert false
14272
15189
            and sig_item s l =
14273
15190
              match s with
14287
15204
              | Ast.SgSem (_, sg1, sg2) -> sig_item sg1 (sig_item sg2 l)
14288
15205
              | SgDir (_, _, _) -> l
14289
15206
              | Ast.SgExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s))))) ->
14290
 
                  (mksig loc (Psig_exception (conv_con s, []))) :: l
 
15207
                  (mksig loc (Psig_exception ((conv_con s), []))) :: l
14291
15208
              | Ast.SgExc (loc,
14292
15209
                  (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t))) ->
14293
15210
                  (mksig loc
14294
 
                     (Psig_exception (conv_con s,
14295
 
                        List.map ctyp (list_of_ctyp t [])))) ::
 
15211
                     (Psig_exception ((conv_con s),
 
15212
                        (List.map ctyp (list_of_ctyp t []))))) ::
14296
15213
                    l
14297
15214
              | SgExc (_, _) -> assert false
14298
15215
              | SgExt (loc, n, t, sl) ->
14299
15216
                  (mksig loc
14300
 
                     (Psig_value (n, mkvalue_desc t (list_of_meta_list sl)))) ::
 
15217
                     (Psig_value (n, (mkvalue_desc t (list_of_meta_list sl))))) ::
14301
15218
                    l
14302
15219
              | SgInc (loc, mt) ->
14303
15220
                  (mksig loc (Psig_include (module_type mt))) :: l
14304
15221
              | SgMod (loc, n, mt) ->
14305
 
                  (mksig loc (Psig_module (n, module_type mt))) :: l
 
15222
                  (mksig loc (Psig_module (n, (module_type mt)))) :: l
14306
15223
              | SgRecMod (loc, mb) ->
14307
15224
                  (mksig loc (Psig_recmodule (module_sig_binding mb []))) ::
14308
15225
                    l
14317
15234
              | SgTyp (loc, tdl) ->
14318
15235
                  (mksig loc (Psig_type (mktype_decl tdl []))) :: l
14319
15236
              | SgVal (loc, n, t) ->
14320
 
                  (mksig loc (Psig_value (n, mkvalue_desc t []))) :: l
 
15237
                  (mksig loc (Psig_value (n, (mkvalue_desc t [])))) :: l
14321
15238
              | Ast.SgAnt (loc, _) -> error loc "antiquotation in sig_item"
14322
15239
            and module_sig_binding x acc =
14323
15240
              match x with
14337
15254
              | Ast.MeNil loc -> error loc "nil module expression"
14338
15255
              | Ast.MeId (loc, i) -> mkmod loc (Pmod_ident (long_uident i))
14339
15256
              | Ast.MeApp (loc, me1, me2) ->
14340
 
                  mkmod loc (Pmod_apply (module_expr me1, module_expr me2))
 
15257
                  mkmod loc
 
15258
                    (Pmod_apply ((module_expr me1), (module_expr me2)))
14341
15259
              | Ast.MeFun (loc, n, mt, me) ->
14342
15260
                  mkmod loc
14343
 
                    (Pmod_functor (n, module_type mt, module_expr me))
 
15261
                    (Pmod_functor (n, (module_type mt), (module_expr me)))
14344
15262
              | Ast.MeStr (loc, sl) ->
14345
15263
                  mkmod loc (Pmod_structure (str_item sl []))
14346
15264
              | Ast.MeTyc (loc, me, mt) ->
14347
15265
                  mkmod loc
14348
 
                    (Pmod_constraint (module_expr me, module_type mt))
 
15266
                    (Pmod_constraint ((module_expr me), (module_type mt)))
 
15267
              | Ast.MePkg (loc, (Ast.ExTyc (_, e, (Ast.TyPkg (_, pt))))) ->
 
15268
                  mkmod loc (Pmod_unpack ((expr e), (package_type pt)))
 
15269
              | Ast.MePkg (loc, _) ->
 
15270
                  error loc "(value expr) not supported yet"
14349
15271
              | Ast.MeAnt (loc, _) ->
14350
15272
                  error loc "antiquotation in module_expr"
14351
15273
            and str_item s l =
14367
15289
              | StDir (_, _, _) -> l
14368
15290
              | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))), Ast.
14369
15291
                  ONone) ->
14370
 
                  (mkstr loc (Pstr_exception (conv_con s, []))) :: l
 
15292
                  (mkstr loc (Pstr_exception ((conv_con s), []))) :: l
14371
15293
              | Ast.StExc (loc,
14372
15294
                  (Ast.TyOf (_, (Ast.TyId (_, (Ast.IdUid (_, s)))), t)), Ast.
14373
15295
                  ONone) ->
14374
15296
                  (mkstr loc
14375
 
                     (Pstr_exception (conv_con s,
14376
 
                        List.map ctyp (list_of_ctyp t [])))) ::
 
15297
                     (Pstr_exception ((conv_con s),
 
15298
                        (List.map ctyp (list_of_ctyp t []))))) ::
14377
15299
                    l
14378
15300
              | Ast.StExc (loc, (Ast.TyId (_, (Ast.IdUid (_, s)))),
14379
15301
                  (Ast.OSome i)) ->
14380
 
                  (mkstr loc (Pstr_exn_rebind (conv_con s, ident i))) :: l
 
15302
                  (mkstr loc (Pstr_exn_rebind ((conv_con s), (ident i)))) ::
 
15303
                    l
14381
15304
              | StExc (_, _, _) -> assert false
14382
15305
              | StExp (loc, e) -> (mkstr loc (Pstr_eval (expr e))) :: l
14383
15306
              | StExt (loc, n, t, sl) ->
14384
15307
                  (mkstr loc
14385
15308
                     (Pstr_primitive (n,
14386
 
                        mkvalue_desc t (list_of_meta_list sl)))) ::
 
15309
                        (mkvalue_desc t (list_of_meta_list sl))))) ::
14387
15310
                    l
14388
15311
              | StInc (loc, me) ->
14389
15312
                  (mkstr loc (Pstr_include (module_expr me))) :: l
14390
15313
              | StMod (loc, n, me) ->
14391
 
                  (mkstr loc (Pstr_module (n, module_expr me))) :: l
 
15314
                  (mkstr loc (Pstr_module (n, (module_expr me)))) :: l
14392
15315
              | StRecMod (loc, mb) ->
14393
15316
                  (mkstr loc (Pstr_recmodule (module_str_binding mb []))) ::
14394
15317
                    l
14395
15318
              | StMty (loc, n, mt) ->
14396
 
                  (mkstr loc (Pstr_modtype (n, module_type mt))) :: l
 
15319
                  (mkstr loc (Pstr_modtype (n, (module_type mt)))) :: l
14397
15320
              | StOpn (loc, id) ->
14398
15321
                  (mkstr loc (Pstr_open (long_uident id))) :: l
14399
15322
              | StTyp (loc, tdl) ->
14400
15323
                  (mkstr loc (Pstr_type (mktype_decl tdl []))) :: l
14401
15324
              | StVal (loc, rf, bi) ->
14402
 
                  (mkstr loc (Pstr_value (mkrf rf, binding bi []))) :: l
 
15325
                  (mkstr loc (Pstr_value ((mkrf rf), (binding bi [])))) :: l
14403
15326
              | Ast.StAnt (loc, _) -> error loc "antiquotation in str_item"
14404
15327
            and class_type =
14405
15328
              function
14406
 
              | CtCon (loc, Ast.BFalse, id, tl) ->
 
15329
              | CtCon (loc, ViNil, id, tl) ->
14407
15330
                  mkcty loc
14408
 
                    (Pcty_constr (long_class_ident id,
14409
 
                       List.map ctyp (list_of_opt_ctyp tl [])))
 
15331
                    (Pcty_constr ((long_class_ident id),
 
15332
                       (List.map ctyp (list_of_opt_ctyp tl []))))
14410
15333
              | CtFun (loc, (TyLab (_, lab, t)), ct) ->
14411
 
                  mkcty loc (Pcty_fun (lab, ctyp t, class_type ct))
 
15334
                  mkcty loc (Pcty_fun (lab, (ctyp t), (class_type ct)))
14412
15335
              | CtFun (loc, (TyOlb (loc1, lab, t)), ct) ->
14413
15336
                  let t =
14414
 
                    TyApp (loc1, Ast.TyId (loc1, Ast.IdLid (loc1, "option")),
14415
 
                      t)
14416
 
                  in mkcty loc (Pcty_fun ("?" ^ lab, ctyp t, class_type ct))
 
15337
                    TyApp (loc1,
 
15338
                      (Ast.TyId (loc1, (Ast.IdLid (loc1, "option")))), t)
 
15339
                  in
 
15340
                    mkcty loc
 
15341
                      (Pcty_fun (("?" ^ lab), (ctyp t), (class_type ct)))
14417
15342
              | CtFun (loc, t, ct) ->
14418
 
                  mkcty loc (Pcty_fun ("", ctyp t, class_type ct))
 
15343
                  mkcty loc (Pcty_fun ("", (ctyp t), (class_type ct)))
14419
15344
              | CtSig (loc, t_o, ctfl) ->
14420
15345
                  let t =
14421
15346
                    (match t_o with | Ast.TyNil _ -> Ast.TyAny loc | t -> t) in
14437
15362
                          (List.split (class_parameters t []))))
14438
15363
                  in
14439
15364
                    {
14440
 
                      pci_virt = if mb2b vir then Virtual else Concrete;
 
15365
                      pci_virt = mkvirtual vir;
14441
15366
                      pci_params = (params, (mkloc loc_params));
14442
15367
                      pci_name = name;
14443
15368
                      pci_expr = class_expr ce;
14459
15384
                          (List.split (class_parameters t []))))
14460
15385
                  in
14461
15386
                    {
14462
 
                      pci_virt = if mb2b vir then Virtual else Concrete;
 
15387
                      pci_virt = mkvirtual vir;
14463
15388
                      pci_params = (params, (mkloc loc_params));
14464
15389
                      pci_name = name;
14465
15390
                      pci_expr = class_type ct;
14496
15421
              | (CeApp (loc, _, _) as c) ->
14497
15422
                  let (ce, el) = class_expr_fa [] c in
14498
15423
                  let el = List.map label_expr el
14499
 
                  in mkpcl loc (Pcl_apply (class_expr ce, el))
14500
 
              | CeCon (loc, Ast.BFalse, id, tl) ->
 
15424
                  in mkpcl loc (Pcl_apply ((class_expr ce), el))
 
15425
              | CeCon (loc, ViNil, id, tl) ->
14501
15426
                  mkpcl loc
14502
 
                    (Pcl_constr (long_class_ident id,
14503
 
                       List.map ctyp (list_of_opt_ctyp tl [])))
 
15427
                    (Pcl_constr ((long_class_ident id),
 
15428
                       (List.map ctyp (list_of_opt_ctyp tl []))))
14504
15429
              | CeFun (loc, (PaLab (_, lab, po)), ce) ->
14505
15430
                  mkpcl loc
14506
 
                    (Pcl_fun (lab, None, patt_of_lab loc lab po,
14507
 
                       class_expr ce))
 
15431
                    (Pcl_fun (lab, None, (patt_of_lab loc lab po),
 
15432
                       (class_expr ce)))
14508
15433
              | CeFun (loc, (PaOlbi (_, lab, p, e)), ce) ->
14509
15434
                  let lab = paolab lab p
14510
15435
                  in
14511
15436
                    mkpcl loc
14512
 
                      (Pcl_fun ("?" ^ lab, Some (expr e), patt p,
14513
 
                         class_expr ce))
 
15437
                      (Pcl_fun (("?" ^ lab), (Some (expr e)), (patt p),
 
15438
                         (class_expr ce)))
14514
15439
              | CeFun (loc, (PaOlb (_, lab, p)), ce) ->
14515
15440
                  let lab = paolab lab p
14516
15441
                  in
14517
15442
                    mkpcl loc
14518
 
                      (Pcl_fun ("?" ^ lab, None, patt_of_lab loc lab p,
14519
 
                         class_expr ce))
 
15443
                      (Pcl_fun (("?" ^ lab), None, (patt_of_lab loc lab p),
 
15444
                         (class_expr ce)))
14520
15445
              | CeFun (loc, p, ce) ->
14521
 
                  mkpcl loc (Pcl_fun ("", None, patt p, class_expr ce))
 
15446
                  mkpcl loc (Pcl_fun ("", None, (patt p), (class_expr ce)))
14522
15447
              | CeLet (loc, rf, bi, ce) ->
14523
 
                  mkpcl loc (Pcl_let (mkrf rf, binding bi [], class_expr ce))
 
15448
                  mkpcl loc
 
15449
                    (Pcl_let ((mkrf rf), (binding bi []), (class_expr ce)))
14524
15450
              | CeStr (loc, po, cfl) ->
14525
15451
                  let p =
14526
15452
                    (match po with | Ast.PaNil _ -> Ast.PaAny loc | p -> p) in
14527
15453
                  let cil = class_str_item cfl []
14528
15454
                  in mkpcl loc (Pcl_structure (((patt p), cil)))
14529
15455
              | CeTyc (loc, ce, ct) ->
14530
 
                  mkpcl loc (Pcl_constraint (class_expr ce, class_type ct))
 
15456
                  mkpcl loc
 
15457
                    (Pcl_constraint ((class_expr ce), (class_type ct)))
14531
15458
              | CeCon (loc, _, _, _) ->
14532
15459
                  error loc "invalid virtual class inside a class expression"
14533
15460
              | CeAnt (_, _) | CeEq (_, _, _) | CeAnd (_, _, _) | CeNil _ ->
14539
15466
                  (Pcf_cstr (((ctyp t1), (ctyp t2), (mkloc loc)))) :: l
14540
15467
              | Ast.CrSem (_, cst1, cst2) ->
14541
15468
                  class_str_item cst1 (class_str_item cst2 l)
14542
 
              | CrInh (_, ce, "") -> (Pcf_inher (class_expr ce, None)) :: l
14543
 
              | CrInh (_, ce, pb) ->
14544
 
                  (Pcf_inher (class_expr ce, Some pb)) :: l
 
15469
              | CrInh (loc, ov, ce, pb) ->
 
15470
                  let opb = if pb = "" then None else Some pb
 
15471
                  in
 
15472
                    (Pcf_inher ((override_flag loc ov), (class_expr ce), opb)) ::
 
15473
                      l
14545
15474
              | CrIni (_, e) -> (Pcf_init (expr e)) :: l
14546
 
              | CrMth (loc, s, b, e, t) ->
 
15475
              | CrMth (loc, s, ov, pf, e, t) ->
14547
15476
                  let t =
14548
15477
                    (match t with
14549
15478
                     | Ast.TyNil _ -> None
14550
15479
                     | t -> Some (mkpolytype (ctyp t))) in
14551
 
                  let e = mkexp loc (Pexp_poly (expr e, t))
14552
 
                  in (Pcf_meth ((s, (mkprivate b), e, (mkloc loc)))) :: l
14553
 
              | CrVal (loc, s, b, e) ->
14554
 
                  (Pcf_val ((s, (mkmutable b), (expr e), (mkloc loc)))) :: l
14555
 
              | CrVir (loc, s, b, t) ->
 
15480
                  let e = mkexp loc (Pexp_poly ((expr e), t))
 
15481
                  in
 
15482
                    (Pcf_meth
 
15483
                       ((s, (mkprivate pf), (override_flag loc ov), e,
 
15484
                         (mkloc loc)))) ::
 
15485
                      l
 
15486
              | CrVal (loc, s, ov, mf, e) ->
 
15487
                  (Pcf_val
 
15488
                     ((s, (mkmutable mf), (override_flag loc ov), (expr e),
 
15489
                       (mkloc loc)))) ::
 
15490
                    l
 
15491
              | CrVir (loc, s, pf, t) ->
14556
15492
                  (Pcf_virt
14557
 
                     ((s, (mkprivate b), (mkpolytype (ctyp t)), (mkloc loc)))) ::
 
15493
                     ((s, (mkprivate pf), (mkpolytype (ctyp t)), (mkloc loc)))) ::
14558
15494
                    l
14559
 
              | CrVvr (loc, s, b, t) ->
14560
 
                  (Pcf_valvirt ((s, (mkmutable b), (ctyp t), (mkloc loc)))) ::
 
15495
              | CrVvr (loc, s, mf, t) ->
 
15496
                  (Pcf_valvirt ((s, (mkmutable mf), (ctyp t), (mkloc loc)))) ::
14561
15497
                    l
14562
15498
              | CrAnt (_, _) -> assert false
14563
15499
              
14576
15512
              
14577
15513
            let phrase =
14578
15514
              function
14579
 
              | StDir (_, d, dp) -> Ptop_dir (d, directive dp)
 
15515
              | StDir (_, d, dp) -> Ptop_dir (d, (directive dp))
14580
15516
              | si -> Ptop_def (str_item si)
14581
15517
              
14582
15518
          end
14858
15794
                  | Dynlink.Error e ->
14859
15795
                      raise
14860
15796
                        (Error ("Camlp4's dynamic loader initialization",
14861
 
                           Dynlink.error_message e)))
 
15797
                           (Dynlink.error_message e))))
14862
15798
               else ();
14863
15799
               let fname =
14864
15800
                 try find_in_path _path file
14869
15805
                 try Dynlink.loadfile fname
14870
15806
                 with
14871
15807
                 | Dynlink.Error e ->
14872
 
                     raise (Error (fname, Dynlink.error_message e)))
 
15808
                     raise (Error (fname, (Dynlink.error_message e))))
14873
15809
          
14874
15810
        let is_native = Dynlink.is_native
14875
15811
          
15012
15948
                      Ast.ExLab (_, s, (Ast.ExNil _)) |
15013
15949
                      Ast.ExOlb (_, s, (Ast.ExNil _)) ->
15014
15950
                      if S.mem s env then o else {< free = f s free; >}
15015
 
                  | Ast.ExLet (_, Ast.BFalse, bi, e) ->
 
15951
                  | Ast.ExLet (_, Ast.ReNil, bi, e) ->
15016
15952
                      (((o#add_binding bi)#expr e)#set_env env)#binding bi
15017
 
                  | Ast.ExLet (_, Ast.BTrue, bi, e) ->
 
15953
                  | Ast.ExLet (_, Ast.ReRecursive, bi, e) ->
15018
15954
                      (((o#add_binding bi)#expr e)#binding bi)#set_env env
15019
15955
                  | Ast.ExFor (_, s, e1, e2, _, e3) ->
15020
15956
                      ((((o#expr e1)#expr e2)#add_atom s)#expr e3)#set_env
15033
15969
                method str_item =
15034
15970
                  function
15035
15971
                  | Ast.StExt (_, s, t, _) -> (o#ctyp t)#add_atom s
15036
 
                  | Ast.StVal (_, Ast.BFalse, bi) ->
 
15972
                  | Ast.StVal (_, Ast.ReNil, bi) ->
15037
15973
                      (o#binding bi)#add_binding bi
15038
 
                  | Ast.StVal (_, Ast.BTrue, bi) ->
 
15974
                  | Ast.StVal (_, Ast.ReRecursive, bi) ->
15039
15975
                      (o#add_binding bi)#binding bi
15040
15976
                  | st -> super#str_item st
15041
15977
                  
15043
15979
                  function
15044
15980
                  | Ast.CeFun (_, p, ce) ->
15045
15981
                      ((o#add_patt p)#class_expr ce)#set_env env
15046
 
                  | Ast.CeLet (_, Ast.BFalse, bi, ce) ->
 
15982
                  | Ast.CeLet (_, Ast.ReNil, bi, ce) ->
15047
15983
                      (((o#binding bi)#add_binding bi)#class_expr ce)#set_env
15048
15984
                        env
15049
 
                  | Ast.CeLet (_, Ast.BTrue, bi, ce) ->
 
15985
                  | Ast.CeLet (_, Ast.ReRecursive, bi, ce) ->
15050
15986
                      (((o#add_binding bi)#binding bi)#class_expr ce)#set_env
15051
15987
                        env
15052
15988
                  | Ast.CeStr (_, p, cst) ->
15055
15991
                  
15056
15992
                method class_str_item =
15057
15993
                  function
15058
 
                  | (Ast.CrInh (_, _, "") as cst) -> super#class_str_item cst
15059
 
                  | Ast.CrInh (_, ce, s) -> (o#class_expr ce)#add_atom s
15060
 
                  | Ast.CrVal (_, s, _, e) -> (o#expr e)#add_atom s
 
15994
                  | (Ast.CrInh (_, _, _, "") as cst) ->
 
15995
                      super#class_str_item cst
 
15996
                  | Ast.CrInh (_, _, ce, s) -> (o#class_expr ce)#add_atom s
 
15997
                  | Ast.CrVal (_, s, _, _, e) -> (o#expr e)#add_atom s
15061
15998
                  | Ast.CrVvr (_, s, _, t) -> (o#ctyp t)#add_atom s
15062
15999
                  | cst -> super#class_str_item cst
15063
16000
                  
15078
16015
      
15079
16016
    module Grammar =
15080
16017
      struct
15081
 
        module Context =
15082
 
          struct
15083
 
            module type S =
15084
 
              sig
15085
 
                module Token : Sig.Token
15086
 
                  
15087
 
                open Token
15088
 
                  
15089
 
                type t
15090
 
                
15091
 
                val call_with_ctx :
15092
 
                  (Token.t * Loc.t) Stream.t -> (t -> 'a) -> 'a
15093
 
                  
15094
 
                val loc_bp : t -> Loc.t
15095
 
                  
15096
 
                val loc_ep : t -> Loc.t
15097
 
                  
15098
 
                val stream : t -> (Token.t * Loc.t) Stream.t
15099
 
                  
15100
 
                val peek_nth : t -> int -> (Token.t * Loc.t) option
15101
 
                  
15102
 
                val njunk : t -> int -> unit
15103
 
                  
15104
 
                val junk : (Token.t * Loc.t) Stream.t -> unit
15105
 
                  
15106
 
                val bp : (Token.t * Loc.t) Stream.t -> Loc.t
15107
 
                  
15108
 
              end
15109
 
              
15110
 
            module Make (Token : Sig.Token) : S with module Token = Token =
15111
 
              struct
15112
 
                module Token = Token
15113
 
                  
15114
 
                open Token
15115
 
                  
15116
 
                type t =
15117
 
                  { mutable strm : (Token.t * Loc.t) Stream.t;
15118
 
                    mutable loc : Loc.t
15119
 
                  }
15120
 
                
15121
 
                let loc_bp c =
15122
 
                  match Stream.peek c.strm with
15123
 
                  | None -> Loc.ghost
15124
 
                  | Some ((_, loc)) -> loc
15125
 
                  
15126
 
                let loc_ep c = c.loc
15127
 
                  
15128
 
                let set_loc c =
15129
 
                  match Stream.peek c.strm with
15130
 
                  | Some ((_, loc)) -> c.loc <- loc
15131
 
                  | None -> ()
15132
 
                  
15133
 
                let mk strm =
15134
 
                  match Stream.peek strm with
15135
 
                  | Some ((_, loc)) -> { strm = strm; loc = loc; }
15136
 
                  | None -> { strm = strm; loc = Loc.ghost; }
15137
 
                  
15138
 
                let stream c = c.strm
15139
 
                  
15140
 
                let peek_nth c n =
15141
 
                  let list = Stream.npeek n c.strm in
15142
 
                  let rec loop list n =
15143
 
                    match (list, n) with
15144
 
                    | ((((_, loc) as x)) :: _, 1) -> (c.loc <- loc; Some x)
15145
 
                    | (_ :: l, n) -> loop l (n - 1)
15146
 
                    | ([], _) -> None
15147
 
                  in loop list n
15148
 
                  
15149
 
                let njunk c n =
15150
 
                  (for i = 1 to n do Stream.junk c.strm done; set_loc c)
15151
 
                  
15152
 
                let streams = ref []
15153
 
                  
15154
 
                let mk strm =
15155
 
                  let c = mk strm in
15156
 
                  let () = streams := (strm, c) :: !streams in c
15157
 
                  
15158
 
                let junk strm =
15159
 
                  (set_loc (List.assq strm !streams); Stream.junk strm)
15160
 
                  
15161
 
                let bp strm = loc_bp (List.assq strm !streams)
15162
 
                  
15163
 
                let call_with_ctx strm f =
15164
 
                  let streams_v = !streams in
15165
 
                  let r =
15166
 
                    try f (mk strm)
15167
 
                    with | exc -> (streams := streams_v; raise exc)
15168
 
                  in (streams := streams_v; r)
15169
 
                  
15170
 
              end
15171
 
              
15172
 
          end
15173
 
          
15174
16018
        module Structure =
15175
16019
          struct
15176
16020
            open Sig.Grammar
15184
16028
                module Lexer : Sig.Lexer with module Loc = Loc
15185
16029
                  and module Token = Token
15186
16030
                  
15187
 
                module Context : Context.S with module Token = Token
15188
 
                  
15189
16031
                module Action : Sig.Grammar.Action
15190
16032
                  
15191
16033
                type gram =
15196
16038
                    warning_verbose : bool ref; error_verbose : bool ref
15197
16039
                  }
15198
16040
                
15199
 
                type efun =
15200
 
                  Context.t -> (Token.t * Loc.t) Stream.t -> Action.t
 
16041
                type token_info = { prev_loc : Loc.t; cur_loc : Loc.t }
 
16042
                
 
16043
                type token_stream = (Token.t * token_info) Stream.t
 
16044
                
 
16045
                type efun = token_stream -> Action.t
15201
16046
                
15202
16047
                type token_pattern = ((Token.t -> bool) * string)
15203
16048
                
15209
16054
                  }
15210
16055
                  and desc =
15211
16056
                  | Dlevels of level list
15212
 
                  | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t)
 
16057
                  | Dparser of (token_stream -> Action.t)
15213
16058
                  and level =
15214
16059
                  { assoc : assoc; lname : string option; lsuffix : tree;
15215
16060
                    lprefix : tree
15223
16068
                  | Slist1 of symbol
15224
16069
                  | Slist1sep of symbol * symbol
15225
16070
                  | Sopt of symbol
 
16071
                  | Stry of symbol
15226
16072
                  | Sself
15227
16073
                  | Snext
15228
16074
                  | Stoken of token_pattern
15294
16140
                    warning_verbose : bool ref; error_verbose : bool ref
15295
16141
                  }
15296
16142
                
15297
 
                module Context = Context.Make(Token)
15298
 
                  
15299
 
                type efun =
15300
 
                  Context.t -> (Token.t * Loc.t) Stream.t -> Action.t
 
16143
                type token_info = { prev_loc : Loc.t; cur_loc : Loc.t }
 
16144
                
 
16145
                type token_stream = (Token.t * token_info) Stream.t
 
16146
                
 
16147
                type efun = token_stream -> Action.t
15301
16148
                
15302
16149
                type token_pattern = ((Token.t -> bool) * string)
15303
16150
                
15309
16156
                  }
15310
16157
                  and desc =
15311
16158
                  | Dlevels of level list
15312
 
                  | Dparser of ((Token.t * Loc.t) Stream.t -> Action.t)
 
16159
                  | Dparser of (token_stream -> Action.t)
15313
16160
                  and level =
15314
16161
                  { assoc : assoc; lname : string option; lsuffix : tree;
15315
16162
                    lprefix : tree
15323
16170
                  | Slist1 of symbol
15324
16171
                  | Slist1sep of symbol * symbol
15325
16172
                  | Sopt of symbol
 
16173
                  | Stry of symbol
15326
16174
                  | Sself
15327
16175
                  | Snext
15328
16176
                  | Stoken of token_pattern
15358
16206
                
15359
16207
                let get_filter g = g.gfilter
15360
16208
                  
 
16209
                let token_location r = r.cur_loc
 
16210
                  
15361
16211
                type 'a not_filtered = 'a
15362
16212
                
15363
16213
                let using { gkeywords = table; gfilter = filter } kwd =
15437
16287
                        (match symb with
15438
16288
                         | Snterm _ | Snterml (_, _) | Slist0 _ |
15439
16289
                             Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
15440
 
                             Sopt _ | Stoken _ | Stree _ | Skeyword _ when
15441
 
                             symb == prev_symb -> Some symb
 
16290
                             Sopt _ | Stry _ | Stoken _ | Stree _ |
 
16291
                             Skeyword _ when symb == prev_symb -> Some symb
15442
16292
                         | Slist0 symb ->
15443
16293
                             (match search_symbol symb with
15444
16294
                              | Some symb -> Some (Slist0 symb)
15465
16315
                             (match search_symbol symb with
15466
16316
                              | Some symb -> Some (Sopt symb)
15467
16317
                              | None -> None)
 
16318
                         | Stry symb ->
 
16319
                             (match search_symbol symb with
 
16320
                              | Some symb -> Some (Stry symb)
 
16321
                              | None -> None)
15468
16322
                         | Stree t ->
15469
16323
                             (match search_tree t with
15470
16324
                              | Some t -> Some (Stree t)
15483
16337
              struct
15484
16338
                open Structure
15485
16339
                  
15486
 
                let empty_entry ename _ _ _ =
 
16340
                let empty_entry ename _ =
15487
16341
                  raise (Stream.Error ("entry [" ^ (ename ^ "] is empty")))
15488
16342
                  
 
16343
                let rec stream_map f (__strm : _ Stream.t) =
 
16344
                  match Stream.peek __strm with
 
16345
                  | Some x ->
 
16346
                      (Stream.junk __strm;
 
16347
                       let strm = __strm
 
16348
                       in
 
16349
                         Stream.lcons (fun _ -> f x)
 
16350
                           (Stream.slazy (fun _ -> stream_map f strm)))
 
16351
                  | _ -> Stream.sempty
 
16352
                  
 
16353
                let keep_prev_loc strm =
 
16354
                  match Stream.peek strm with
 
16355
                  | None -> Stream.sempty
 
16356
                  | Some ((_, init_loc)) ->
 
16357
                      let rec go prev_loc (__strm : _ Stream.t) =
 
16358
                        (match Stream.peek __strm with
 
16359
                         | Some ((tok, cur_loc)) ->
 
16360
                             (Stream.junk __strm;
 
16361
                              let strm = __strm
 
16362
                              in
 
16363
                                Stream.lcons
 
16364
                                  (fun _ ->
 
16365
                                     (tok,
 
16366
                                      {
 
16367
                                        prev_loc = prev_loc;
 
16368
                                        cur_loc = cur_loc;
 
16369
                                      }))
 
16370
                                  (Stream.slazy (fun _ -> go cur_loc strm)))
 
16371
                         | _ -> Stream.sempty)
 
16372
                      in go init_loc strm
 
16373
                  
 
16374
                let drop_prev_loc strm =
 
16375
                  stream_map (fun (tok, r) -> (tok, (r.cur_loc))) strm
 
16376
                  
 
16377
                let get_cur_loc strm =
 
16378
                  match Stream.peek strm with
 
16379
                  | Some ((_, r)) -> r.cur_loc
 
16380
                  | None -> Loc.ghost
 
16381
                  
 
16382
                let get_prev_loc strm =
 
16383
                  match Stream.peek strm with
 
16384
                  | Some ((_, r)) -> r.prev_loc
 
16385
                  | None -> Loc.ghost
 
16386
                  
15489
16387
                let is_level_labelled n lev =
15490
16388
                  match lev.lname with | Some n1 -> n = n1 | None -> false
15491
16389
                  
15521
16419
                    | (Sself, Snterm e2) -> entry.ename = e2.ename
15522
16420
                    | (Snterml (e1, l1), Snterml (e2, l2)) ->
15523
16421
                        (e1.ename = e2.ename) && (l1 = l2)
15524
 
                    | (Slist0 s1, Slist0 s2) -> eq_symbols s1 s2
15525
 
                    | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) ->
15526
 
                        (eq_symbols s1 s2) && (eq_symbols sep1 sep2)
15527
 
                    | (Slist1 s1, Slist1 s2) -> eq_symbols s1 s2
15528
 
                    | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
15529
 
                        (eq_symbols s1 s2) && (eq_symbols sep1 sep2)
15530
 
                    | (Sopt s1, Sopt s2) -> eq_symbols s1 s2
 
16422
                    | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) |
 
16423
                        (Sopt s1, Sopt s2) | (Stry s1, Stry s2) ->
 
16424
                        eq_symbols s1 s2
 
16425
                    | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) |
 
16426
                        (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
 
16427
                        (eq_symbols s1 s2) && (eq_symbols sep1 sep2)
15531
16428
                    | (Stree t1, Stree t2) -> eq_trees t1 t2
15532
16429
                    | (Stoken ((_, s1)), Stoken ((_, s2))) ->
15533
16430
                        eq_Stoken_ids s1 s2
15548
16445
                  | (Snterm e1, Snterm e2) -> e1 == e2
15549
16446
                  | (Snterml (e1, l1), Snterml (e2, l2)) ->
15550
16447
                      (e1 == e2) && (l1 = l2)
15551
 
                  | (Slist0 s1, Slist0 s2) -> eq_symbol s1 s2
15552
 
                  | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) ->
15553
 
                      (eq_symbol s1 s2) && (eq_symbol sep1 sep2)
15554
 
                  | (Slist1 s1, Slist1 s2) -> eq_symbol s1 s2
15555
 
                  | (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
15556
 
                      (eq_symbol s1 s2) && (eq_symbol sep1 sep2)
15557
 
                  | (Sopt s1, Sopt s2) -> eq_symbol s1 s2
 
16448
                  | (Slist0 s1, Slist0 s2) | (Slist1 s1, Slist1 s2) |
 
16449
                      (Sopt s1, Sopt s2) | (Stry s1, Stry s2) ->
 
16450
                      eq_symbol s1 s2
 
16451
                  | (Slist0sep (s1, sep1), Slist0sep (s2, sep2)) |
 
16452
                      (Slist1sep (s1, sep1), Slist1sep (s2, sep2)) ->
 
16453
                      (eq_symbol s1 s2) && (eq_symbol sep1 sep2)
15558
16454
                  | (Stree _, Stree _) -> false
15559
16455
                  | (Stoken ((_, s1)), Stoken ((_, s2))) ->
15560
16456
                      eq_Stoken_ids s1 s2
15651
16547
                      fprintf ppf "LIST1 %a SEP %a" print_symbol1 s
15652
16548
                        print_symbol1 t
15653
16549
                  | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
 
16550
                  | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
15654
16551
                  | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
15655
16552
                  | (Snterm _ | Snext | Sself | Stree _ | Stoken _ |
15656
16553
                       Skeyword _
15683
16580
                      print_level ppf pp_print_space (flatten_tree t)
15684
16581
                  | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ |
15685
16582
                       Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
15686
 
                       Sopt _
 
16583
                       Sopt _ | Stry _
15687
16584
                     as s) -> fprintf ppf "(%a)" print_symbol s
15688
16585
                and print_rule ppf symbols =
15689
16586
                  (fprintf ppf "@[<hov 0>";
15752
16649
                    | DeadEnd -> List.rev acc
15753
16650
                    | LocAct (_, _) -> List.rev acc
15754
16651
                    | Node { node = n; brother = b; son = s } ->
15755
 
                        get_brothers ((Bro (n, get_brothers [] s)) :: acc) b
 
16652
                        get_brothers ((Bro (n, (get_brothers [] s))) :: acc)
 
16653
                          b
15756
16654
                  and print_brothers ppf brothers =
15757
16655
                    if brothers = []
15758
16656
                    then fprintf ppf "@ []"
15792
16690
                      fprintf ppf "LIST1 %a SEP %a" print_symbol1 s
15793
16691
                        print_symbol1 t
15794
16692
                  | Sopt s -> fprintf ppf "OPT %a" print_symbol1 s
 
16693
                  | Stry s -> fprintf ppf "TRY %a" print_symbol1 s
15795
16694
                  | Snterml (e, l) -> fprintf ppf "%s@ LEVEL@ %S" e.ename l
15796
16695
                  | (Snterm _ | Snext | Sself | Stree _ | Stoken _ |
15797
16696
                       Skeyword _
15823
16722
                  | Stree t -> print_tree ppf t
15824
16723
                  | (Smeta (_, _, _) | Snterml (_, _) | Slist0 _ |
15825
16724
                       Slist0sep (_, _) | Slist1 _ | Slist1sep (_, _) |
15826
 
                       Sopt _
 
16725
                       Sopt _ | Stry _
15827
16726
                     as s) -> fprintf ppf "(%a)" print_symbol s
15828
16727
                and print_rule ppf symbols =
15829
16728
                  (fprintf ppf "@[<hov 0>";
15903
16802
                  
15904
16803
                let rec name_of_symbol_failed entry =
15905
16804
                  function
15906
 
                  | Slist0 s -> name_of_symbol_failed entry s
15907
 
                  | Slist0sep (s, _) -> name_of_symbol_failed entry s
15908
 
                  | Slist1 s -> name_of_symbol_failed entry s
15909
 
                  | Slist1sep (s, _) -> name_of_symbol_failed entry s
15910
 
                  | Sopt s -> name_of_symbol_failed entry s
 
16805
                  | Slist0 s | Slist0sep (s, _) | Slist1 s | Slist1sep (s, _)
 
16806
                      | Sopt s | Stry s -> name_of_symbol_failed entry s
15911
16807
                  | Stree t -> name_of_tree_failed entry t
15912
16808
                  | s -> name_of_symbol entry s
15913
16809
                and name_of_tree_failed entry =
15980
16876
                         | _ ->
15981
16877
                             let txt1 = name_of_symbol_failed entry sep
15982
16878
                             in txt1 ^ (" or " ^ (txt ^ " expected")))
15983
 
                    | Sopt _ | Stree _ -> txt ^ " expected"
 
16879
                    | Stry _ | Sopt _ | Stree _ -> txt ^ " expected"
15984
16880
                    | _ ->
15985
16881
                        txt ^
15986
16882
                          (" expected after " ^
16031
16927
                  
16032
16928
                open Sig.Grammar
16033
16929
                  
16034
 
                module Stream =
16035
 
                  struct
16036
 
                    include Stream
16037
 
                      
16038
 
                    let junk strm = Context.junk strm
16039
 
                      
16040
 
                    let count strm = Context.bp strm
16041
 
                      
16042
 
                  end
16043
 
                  
16044
 
                let add_loc c bp parse_fun strm =
16045
 
                  let x = parse_fun c strm in
16046
 
                  let ep = Context.loc_ep c in
 
16930
                module StreamOrig = Stream
 
16931
                  
 
16932
                let njunk strm n = for i = 1 to n do Stream.junk strm done
 
16933
                  
 
16934
                let loc_bp = Tools.get_cur_loc
 
16935
                  
 
16936
                let loc_ep = Tools.get_prev_loc
 
16937
                  
 
16938
                let drop_prev_loc = Tools.drop_prev_loc
 
16939
                  
 
16940
                let add_loc bp parse_fun strm =
 
16941
                  let x = parse_fun strm in
 
16942
                  let ep = loc_ep strm in
16047
16943
                  let loc = Loc.merge bp ep in (x, loc)
16048
16944
                  
 
16945
                let stream_peek_nth strm n =
 
16946
                  let rec loop i =
 
16947
                    function
 
16948
                    | x :: xs -> if i = 1 then Some x else loop (i - 1) xs
 
16949
                    | [] -> None
 
16950
                  in loop n (Stream.npeek n strm)
 
16951
                  
 
16952
                module Stream =
 
16953
                  struct
 
16954
                    type 'a t = 'a StreamOrig.t
 
16955
                    
 
16956
                    exception Failure = StreamOrig.Failure
 
16957
                      
 
16958
                    exception Error = StreamOrig.Error
 
16959
                      
 
16960
                    let peek = StreamOrig.peek
 
16961
                      
 
16962
                    let junk = StreamOrig.junk
 
16963
                      
 
16964
                    let dup strm =
 
16965
                      let peek_nth n =
 
16966
                        let rec loop n =
 
16967
                          function
 
16968
                          | [] -> None
 
16969
                          | [ x ] -> if n = 0 then Some x else None
 
16970
                          | _ :: l -> loop (n - 1) l
 
16971
                        in loop n (Stream.npeek (n + 1) strm)
 
16972
                      in Stream.from peek_nth
 
16973
                      
 
16974
                  end
 
16975
                  
 
16976
                let try_parser ps strm =
 
16977
                  let strm' = Stream.dup strm in
 
16978
                  let r =
 
16979
                    try ps strm'
 
16980
                    with
 
16981
                    | Stream.Error _ | Loc.Exc_located (_, (Stream.Error _))
 
16982
                        -> raise Stream.Failure
 
16983
                    | exc -> raise exc
 
16984
                  in (njunk strm (StreamOrig.count strm'); r)
 
16985
                  
16049
16986
                let level_number entry lab =
16050
16987
                  let rec lookup levn =
16051
16988
                    function
16067
17004
                  function
16068
17005
                  | Sself | Snext -> Snterm entry
16069
17006
                  | Snterml (e, _) -> Snterm e
16070
 
                  | Slist1sep (s, sep) -> Slist1sep (top_symb entry s, sep)
 
17007
                  | Slist1sep (s, sep) -> Slist1sep ((top_symb entry s), sep)
16071
17008
                  | _ -> raise Stream.Failure
16072
17009
                  
16073
17010
                let top_tree entry =
16085
17022
                  | Snterml (e, _) -> e
16086
17023
                  | _ -> raise Stream.Failure
16087
17024
                  
16088
 
                let continue entry loc a s c son p1 (__strm : _ Stream.t) =
16089
 
                  let a =
16090
 
                    (entry_of_symb entry s).econtinue 0 loc a c __strm in
 
17025
                let continue entry loc a s son p1 (__strm : _ Stream.t) =
 
17026
                  let a = (entry_of_symb entry s).econtinue 0 loc a __strm in
16091
17027
                  let act =
16092
17028
                    try p1 __strm
16093
17029
                    with
16096
17032
                          (Stream.Error (Failed.tree_failed entry a s son))
16097
17033
                  in Action.mk (fun _ -> Action.getf act a)
16098
17034
                  
16099
 
                let skip_if_empty c bp _ =
16100
 
                  if (Context.loc_bp c) = bp
 
17035
                let skip_if_empty bp strm =
 
17036
                  if (loc_bp strm) = bp
16101
17037
                  then Action.mk (fun _ -> raise Stream.Failure)
16102
17038
                  else raise Stream.Failure
16103
17039
                  
16104
 
                let do_recover parser_of_tree entry nlevn alevn loc a s c son
 
17040
                let do_recover parser_of_tree entry nlevn alevn loc a s son
16105
17041
                               (__strm : _ Stream.t) =
16106
17042
                  try
16107
 
                    parser_of_tree entry nlevn alevn (top_tree entry son) c
 
17043
                    parser_of_tree entry nlevn alevn (top_tree entry son)
16108
17044
                      __strm
16109
17045
                  with
16110
17046
                  | Stream.Failure ->
16111
 
                      (try skip_if_empty c loc __strm
 
17047
                      (try skip_if_empty loc __strm
16112
17048
                       with
16113
17049
                       | Stream.Failure ->
16114
 
                           continue entry loc a s c son
16115
 
                             (parser_of_tree entry nlevn alevn son c) __strm)
 
17050
                           continue entry loc a s son
 
17051
                             (parser_of_tree entry nlevn alevn son) __strm)
16116
17052
                  
16117
 
                let recover parser_of_tree entry nlevn alevn loc a s c son
16118
 
                            strm =
 
17053
                let recover parser_of_tree entry nlevn alevn loc a s son strm
 
17054
                            =
16119
17055
                  if !strict_parsing
16120
17056
                  then
16121
17057
                    raise (Stream.Error (Failed.tree_failed entry a s son))
16133
17069
                             Format.eprintf "\n%s%a@." msg Loc.print loc))
16134
17070
                       else ()
16135
17071
                     in
16136
 
                       do_recover parser_of_tree entry nlevn alevn loc a s c
 
17072
                       do_recover parser_of_tree entry nlevn alevn loc a s
16137
17073
                         son strm)
16138
17074
                  
16139
17075
                let rec parser_of_tree entry nlevn alevn =
16140
17076
                  function
16141
17077
                  | DeadEnd ->
16142
 
                      (fun _ (__strm : _ Stream.t) -> raise Stream.Failure)
16143
 
                  | LocAct (act, _) -> (fun _ (__strm : _ Stream.t) -> act)
 
17078
                      (fun (__strm : _ Stream.t) -> raise Stream.Failure)
 
17079
                  | LocAct (act, _) -> (fun (__strm : _ Stream.t) -> act)
16144
17080
                  | Node
16145
17081
                      {
16146
17082
                        node = Sself;
16147
17083
                        son = LocAct (act, _);
16148
17084
                        brother = DeadEnd
16149
17085
                      } ->
16150
 
                      (fun c (__strm : _ Stream.t) ->
16151
 
                         let a = entry.estart alevn c __strm
 
17086
                      (fun (__strm : _ Stream.t) ->
 
17087
                         let a = entry.estart alevn __strm
16152
17088
                         in Action.getf act a)
16153
17089
                  | Node { node = Sself; son = LocAct (act, _); brother = bro
16154
17090
                      } ->
16155
17091
                      let p2 = parser_of_tree entry nlevn alevn bro
16156
17092
                      in
16157
 
                        (fun c (__strm : _ Stream.t) ->
16158
 
                           match try Some (entry.estart alevn c __strm)
 
17093
                        (fun (__strm : _ Stream.t) ->
 
17094
                           match try Some (entry.estart alevn __strm)
16159
17095
                                 with | Stream.Failure -> None
16160
17096
                           with
16161
17097
                           | Some a -> Action.getf act a
16162
 
                           | _ -> p2 c __strm)
 
17098
                           | _ -> p2 __strm)
16163
17099
                  | Node { node = s; son = son; brother = DeadEnd } ->
16164
17100
                      let tokl =
16165
17101
                        (match s with
16173
17109
                             let p1 = parser_of_tree entry nlevn alevn son in
16174
17110
                             let p1 = parser_cont p1 entry nlevn alevn s son
16175
17111
                             in
16176
 
                               (fun c (__strm : _ Stream.t) ->
16177
 
                                  let bp = Stream.count __strm in
16178
 
                                  let a = ps c __strm in
 
17112
                               (fun strm ->
 
17113
                                  let bp = loc_bp strm in
 
17114
                                  let (__strm : _ Stream.t) = strm in
 
17115
                                  let a = ps __strm in
16179
17116
                                  let act =
16180
 
                                    try p1 c bp a __strm
 
17117
                                    try p1 bp a __strm
16181
17118
                                    with
16182
17119
                                    | Stream.Failure ->
16183
17120
                                        raise (Stream.Error "")
16202
17139
                               parser_cont p1 entry nlevn alevn s son in
16203
17140
                             let p2 = parser_of_tree entry nlevn alevn bro
16204
17141
                             in
16205
 
                               (fun c (__strm : _ Stream.t) ->
16206
 
                                  let bp = Stream.count __strm
 
17142
                               (fun strm ->
 
17143
                                  let bp = loc_bp strm in
 
17144
                                  let (__strm : _ Stream.t) = strm
16207
17145
                                  in
16208
 
                                    match try Some (ps c __strm)
 
17146
                                    match try Some (ps __strm)
16209
17147
                                          with | Stream.Failure -> None
16210
17148
                                    with
16211
17149
                                    | Some a ->
16212
17150
                                        let act =
16213
 
                                          (try p1 c bp a __strm
 
17151
                                          (try p1 bp a __strm
16214
17152
                                           with
16215
17153
                                           | Stream.Failure ->
16216
17154
                                               raise (Stream.Error ""))
16217
17155
                                        in Action.getf act a
16218
 
                                    | _ -> p2 c __strm)
 
17156
                                    | _ -> p2 __strm)
16219
17157
                         | Some ((tokl, last_tok, son)) ->
16220
17158
                             let p1 = parser_of_tree entry nlevn alevn son in
16221
17159
                             let p1 =
16223
17161
                             let p1 = parser_of_token_list p1 tokl in
16224
17162
                             let p2 = parser_of_tree entry nlevn alevn bro
16225
17163
                             in
16226
 
                               (fun c (__strm : _ Stream.t) ->
16227
 
                                  try p1 c __strm
16228
 
                                  with | Stream.Failure -> p2 c __strm))
 
17164
                               (fun (__strm : _ Stream.t) ->
 
17165
                                  try p1 __strm
 
17166
                                  with | Stream.Failure -> p2 __strm))
16229
17167
                and
16230
 
                  parser_cont p1 entry nlevn alevn s son c loc a
 
17168
                  parser_cont p1 entry nlevn alevn s son loc a
16231
17169
                              (__strm : _ Stream.t) =
16232
 
                  try p1 c __strm
 
17170
                  try p1 __strm
16233
17171
                  with
16234
17172
                  | Stream.Failure ->
16235
17173
                      (try
16236
 
                         recover parser_of_tree entry nlevn alevn loc a s c
16237
 
                           son __strm
 
17174
                         recover parser_of_tree entry nlevn alevn loc a s son
 
17175
                           __strm
16238
17176
                       with
16239
17177
                       | Stream.Failure ->
16240
17178
                           raise
16245
17183
                    | Stoken ((tematch, _)) :: tokl ->
16246
17184
                        (match tokl with
16247
17185
                         | [] ->
16248
 
                             let ps c _ =
16249
 
                               (match Context.peek_nth c n with
 
17186
                             let ps strm =
 
17187
                               (match stream_peek_nth strm n with
16250
17188
                                | Some ((tok, _)) when tematch tok ->
16251
 
                                    (Context.njunk c n; Action.mk tok)
 
17189
                                    (njunk strm n; Action.mk tok)
16252
17190
                                | _ -> raise Stream.Failure)
16253
17191
                             in
16254
 
                               (fun c (__strm : _ Stream.t) ->
16255
 
                                  let bp = Stream.count __strm in
16256
 
                                  let a = ps c __strm in
 
17192
                               (fun strm ->
 
17193
                                  let bp = loc_bp strm in
 
17194
                                  let (__strm : _ Stream.t) = strm in
 
17195
                                  let a = ps __strm in
16257
17196
                                  let act =
16258
 
                                    try p1 c bp a __strm
 
17197
                                    try p1 bp a __strm
16259
17198
                                    with
16260
17199
                                    | Stream.Failure ->
16261
17200
                                        raise (Stream.Error "")
16262
17201
                                  in Action.getf act a)
16263
17202
                         | _ ->
16264
 
                             let ps c _ =
16265
 
                               (match Context.peek_nth c n with
 
17203
                             let ps strm =
 
17204
                               (match stream_peek_nth strm n with
16266
17205
                                | Some ((tok, _)) when tematch tok -> tok
16267
17206
                                | _ -> raise Stream.Failure) in
16268
17207
                             let p1 = loop (n + 1) tokl
16269
17208
                             in
16270
 
                               (fun c (__strm : _ Stream.t) ->
16271
 
                                  let tok = ps c __strm in
 
17209
                               (fun (__strm : _ Stream.t) ->
 
17210
                                  let tok = ps __strm in
16272
17211
                                  let s = __strm in
16273
 
                                  let act = p1 c s in Action.getf act tok))
 
17212
                                  let act = p1 s in Action.getf act tok))
16274
17213
                    | Skeyword kwd :: tokl ->
16275
17214
                        (match tokl with
16276
17215
                         | [] ->
16277
 
                             let ps c _ =
16278
 
                               (match Context.peek_nth c n with
 
17216
                             let ps strm =
 
17217
                               (match stream_peek_nth strm n with
16279
17218
                                | Some ((tok, _)) when
16280
17219
                                    Token.match_keyword kwd tok ->
16281
 
                                    (Context.njunk c n; Action.mk tok)
 
17220
                                    (njunk strm n; Action.mk tok)
16282
17221
                                | _ -> raise Stream.Failure)
16283
17222
                             in
16284
 
                               (fun c (__strm : _ Stream.t) ->
16285
 
                                  let bp = Stream.count __strm in
16286
 
                                  let a = ps c __strm in
 
17223
                               (fun strm ->
 
17224
                                  let bp = loc_bp strm in
 
17225
                                  let (__strm : _ Stream.t) = strm in
 
17226
                                  let a = ps __strm in
16287
17227
                                  let act =
16288
 
                                    try p1 c bp a __strm
 
17228
                                    try p1 bp a __strm
16289
17229
                                    with
16290
17230
                                    | Stream.Failure ->
16291
17231
                                        raise (Stream.Error "")
16292
17232
                                  in Action.getf act a)
16293
17233
                         | _ ->
16294
 
                             let ps c _ =
16295
 
                               (match Context.peek_nth c n with
 
17234
                             let ps strm =
 
17235
                               (match stream_peek_nth strm n with
16296
17236
                                | Some ((tok, _)) when
16297
17237
                                    Token.match_keyword kwd tok -> tok
16298
17238
                                | _ -> raise Stream.Failure) in
16299
17239
                             let p1 = loop (n + 1) tokl
16300
17240
                             in
16301
 
                               (fun c (__strm : _ Stream.t) ->
16302
 
                                  let tok = ps c __strm in
 
17241
                               (fun (__strm : _ Stream.t) ->
 
17242
                                  let tok = ps __strm in
16303
17243
                                  let s = __strm in
16304
 
                                  let act = p1 c s in Action.getf act tok))
 
17244
                                  let act = p1 s in Action.getf act tok))
16305
17245
                    | _ -> invalid_arg "parser_of_token_list"
16306
17246
                  in loop 1 tokl
16307
17247
                and parser_of_symbol entry nlevn =
16310
17250
                      let act = Obj.magic act entry symbl in
16311
17251
                      let pl = List.map (parser_of_symbol entry nlevn) symbl
16312
17252
                      in
16313
 
                        (fun c ->
16314
 
                           Obj.magic
16315
 
                             (List.fold_left
16316
 
                                (fun act p -> Obj.magic act (p c)) act pl))
 
17253
                        Obj.magic
 
17254
                          (List.fold_left (fun act p -> Obj.magic act p) act
 
17255
                             pl)
16317
17256
                  | Slist0 s ->
16318
17257
                      let ps = parser_of_symbol entry nlevn s in
16319
 
                      let rec loop c al (__strm : _ Stream.t) =
16320
 
                        (match try Some (ps c __strm)
 
17258
                      let rec loop al (__strm : _ Stream.t) =
 
17259
                        (match try Some (ps __strm)
16321
17260
                               with | Stream.Failure -> None
16322
17261
                         with
16323
 
                         | Some a -> loop c (a :: al) __strm
 
17262
                         | Some a -> loop (a :: al) __strm
16324
17263
                         | _ -> al)
16325
17264
                      in
16326
 
                        (fun c (__strm : _ Stream.t) ->
16327
 
                           let a = loop c [] __strm in Action.mk (List.rev a))
 
17265
                        (fun (__strm : _ Stream.t) ->
 
17266
                           let a = loop [] __strm in Action.mk (List.rev a))
16328
17267
                  | Slist0sep (symb, sep) ->
16329
17268
                      let ps = parser_of_symbol entry nlevn symb in
16330
17269
                      let pt = parser_of_symbol entry nlevn sep in
16331
 
                      let rec kont c al (__strm : _ Stream.t) =
16332
 
                        (match try Some (pt c __strm)
 
17270
                      let rec kont al (__strm : _ Stream.t) =
 
17271
                        (match try Some (pt __strm)
16333
17272
                               with | Stream.Failure -> None
16334
17273
                         with
16335
17274
                         | Some v ->
16336
17275
                             let a =
16337
 
                               (try ps c __strm
 
17276
                               (try ps __strm
16338
17277
                                with
16339
17278
                                | Stream.Failure ->
16340
17279
                                    raise
16341
17280
                                      (Stream.Error
16342
17281
                                         (Failed.symb_failed entry v sep symb)))
16343
 
                             in kont c (a :: al) __strm
 
17282
                             in kont (a :: al) __strm
16344
17283
                         | _ -> al)
16345
17284
                      in
16346
 
                        (fun c (__strm : _ Stream.t) ->
16347
 
                           match try Some (ps c __strm)
 
17285
                        (fun (__strm : _ Stream.t) ->
 
17286
                           match try Some (ps __strm)
16348
17287
                                 with | Stream.Failure -> None
16349
17288
                           with
16350
17289
                           | Some a ->
16351
17290
                               let s = __strm
16352
 
                               in Action.mk (List.rev (kont c [ a ] s))
 
17291
                               in Action.mk (List.rev (kont [ a ] s))
16353
17292
                           | _ -> Action.mk [])
16354
17293
                  | Slist1 s ->
16355
17294
                      let ps = parser_of_symbol entry nlevn s in
16356
 
                      let rec loop c al (__strm : _ Stream.t) =
16357
 
                        (match try Some (ps c __strm)
 
17295
                      let rec loop al (__strm : _ Stream.t) =
 
17296
                        (match try Some (ps __strm)
16358
17297
                               with | Stream.Failure -> None
16359
17298
                         with
16360
 
                         | Some a -> loop c (a :: al) __strm
 
17299
                         | Some a -> loop (a :: al) __strm
16361
17300
                         | _ -> al)
16362
17301
                      in
16363
 
                        (fun c (__strm : _ Stream.t) ->
16364
 
                           let a = ps c __strm in
 
17302
                        (fun (__strm : _ Stream.t) ->
 
17303
                           let a = ps __strm in
16365
17304
                           let s = __strm
16366
 
                           in Action.mk (List.rev (loop c [ a ] s)))
 
17305
                           in Action.mk (List.rev (loop [ a ] s)))
16367
17306
                  | Slist1sep (symb, sep) ->
16368
17307
                      let ps = parser_of_symbol entry nlevn symb in
16369
17308
                      let pt = parser_of_symbol entry nlevn sep in
16370
 
                      let rec kont c al (__strm : _ Stream.t) =
16371
 
                        (match try Some (pt c __strm)
 
17309
                      let rec kont al (__strm : _ Stream.t) =
 
17310
                        (match try Some (pt __strm)
16372
17311
                               with | Stream.Failure -> None
16373
17312
                         with
16374
17313
                         | Some v ->
16375
17314
                             let a =
16376
 
                               (try ps c __strm
 
17315
                               (try ps __strm
16377
17316
                                with
16378
17317
                                | Stream.Failure ->
16379
 
                                    (try parse_top_symb' entry symb c __strm
 
17318
                                    (try parse_top_symb entry symb __strm
16380
17319
                                     with
16381
17320
                                     | Stream.Failure ->
16382
17321
                                         raise
16383
17322
                                           (Stream.Error
16384
17323
                                              (Failed.symb_failed entry v sep
16385
17324
                                                 symb))))
16386
 
                             in kont c (a :: al) __strm
 
17325
                             in kont (a :: al) __strm
16387
17326
                         | _ -> al)
16388
17327
                      in
16389
 
                        (fun c (__strm : _ Stream.t) ->
16390
 
                           let a = ps c __strm in
 
17328
                        (fun (__strm : _ Stream.t) ->
 
17329
                           let a = ps __strm in
16391
17330
                           let s = __strm
16392
 
                           in Action.mk (List.rev (kont c [ a ] s)))
 
17331
                           in Action.mk (List.rev (kont [ a ] s)))
16393
17332
                  | Sopt s ->
16394
17333
                      let ps = parser_of_symbol entry nlevn s
16395
17334
                      in
16396
 
                        (fun c (__strm : _ Stream.t) ->
16397
 
                           match try Some (ps c __strm)
 
17335
                        (fun (__strm : _ Stream.t) ->
 
17336
                           match try Some (ps __strm)
16398
17337
                                 with | Stream.Failure -> None
16399
17338
                           with
16400
17339
                           | Some a -> Action.mk (Some a)
16401
17340
                           | _ -> Action.mk None)
 
17341
                  | Stry s ->
 
17342
                      let ps = parser_of_symbol entry nlevn s
 
17343
                      in try_parser ps
16402
17344
                  | Stree t ->
16403
17345
                      let pt = parser_of_tree entry 1 0 t
16404
17346
                      in
16405
 
                        (fun c (__strm : _ Stream.t) ->
16406
 
                           let bp = Stream.count __strm in
16407
 
                           let (act, loc) = add_loc c bp pt __strm
 
17347
                        (fun strm ->
 
17348
                           let bp = loc_bp strm in
 
17349
                           let (__strm : _ Stream.t) = strm in
 
17350
                           let (act, loc) = add_loc bp pt __strm
16408
17351
                           in Action.getf act loc)
16409
17352
                  | Snterm e ->
16410
 
                      (fun c (__strm : _ Stream.t) -> e.estart 0 c __strm)
 
17353
                      (fun (__strm : _ Stream.t) -> e.estart 0 __strm)
16411
17354
                  | Snterml (e, l) ->
16412
 
                      (fun c (__strm : _ Stream.t) ->
16413
 
                         e.estart (level_number e l) c __strm)
 
17355
                      (fun (__strm : _ Stream.t) ->
 
17356
                         e.estart (level_number e l) __strm)
16414
17357
                  | Sself ->
16415
 
                      (fun c (__strm : _ Stream.t) -> entry.estart 0 c __strm)
 
17358
                      (fun (__strm : _ Stream.t) -> entry.estart 0 __strm)
16416
17359
                  | Snext ->
16417
 
                      (fun c (__strm : _ Stream.t) ->
16418
 
                         entry.estart nlevn c __strm)
 
17360
                      (fun (__strm : _ Stream.t) -> entry.estart nlevn __strm)
16419
17361
                  | Skeyword kwd ->
16420
 
                      (fun _ (__strm : _ Stream.t) ->
 
17362
                      (fun (__strm : _ Stream.t) ->
16421
17363
                         match Stream.peek __strm with
16422
17364
                         | Some ((tok, _)) when Token.match_keyword kwd tok
16423
17365
                             -> (Stream.junk __strm; Action.mk tok)
16424
17366
                         | _ -> raise Stream.Failure)
16425
17367
                  | Stoken ((f, _)) ->
16426
 
                      (fun _ (__strm : _ Stream.t) ->
 
17368
                      (fun (__strm : _ Stream.t) ->
16427
17369
                         match Stream.peek __strm with
16428
17370
                         | Some ((tok, _)) when f tok ->
16429
17371
                             (Stream.junk __strm; Action.mk tok)
16430
17372
                         | _ -> raise Stream.Failure)
16431
 
                and parse_top_symb' entry symb c =
16432
 
                  parser_of_symbol entry 0 (top_symb entry symb) c
16433
17373
                and parse_top_symb entry symb strm =
16434
 
                  Context.call_with_ctx strm
16435
 
                    (fun c -> parse_top_symb' entry symb c (Context.stream c))
 
17374
                  parser_of_symbol entry 0 (top_symb entry symb) strm
16436
17375
                  
16437
17376
                let rec start_parser_of_levels entry clevn =
16438
17377
                  function
16439
17378
                  | [] ->
16440
 
                      (fun _ _ (__strm : _ Stream.t) -> raise Stream.Failure)
 
17379
                      (fun _ (__strm : _ Stream.t) -> raise Stream.Failure)
16441
17380
                  | lev :: levs ->
16442
17381
                      let p1 = start_parser_of_levels entry (succ clevn) levs
16443
17382
                      in
16453
17392
                             in
16454
17393
                               (match levs with
16455
17394
                                | [] ->
16456
 
                                    (fun levn c (__strm : _ Stream.t) ->
16457
 
                                       let bp = Stream.count __strm in
 
17395
                                    (fun levn strm ->
 
17396
                                       let bp = loc_bp strm in
 
17397
                                       let (__strm : _ Stream.t) = strm in
16458
17398
                                       let (act, loc) =
16459
 
                                         add_loc c bp p2 __strm in
 
17399
                                         add_loc bp p2 __strm in
16460
17400
                                       let strm = __strm in
16461
17401
                                       let a = Action.getf act loc
16462
 
                                       in entry.econtinue levn loc a c strm)
 
17402
                                       in entry.econtinue levn loc a strm)
16463
17403
                                | _ ->
16464
 
                                    (fun levn c strm ->
 
17404
                                    (fun levn strm ->
16465
17405
                                       if levn > clevn
16466
 
                                       then p1 levn c strm
 
17406
                                       then p1 levn strm
16467
17407
                                       else
16468
 
                                         (let (__strm : _ Stream.t) = strm in
16469
 
                                          let bp = Stream.count __strm
 
17408
                                         (let bp = loc_bp strm in
 
17409
                                          let (__strm : _ Stream.t) = strm
16470
17410
                                          in
16471
17411
                                            match try
16472
17412
                                                    Some
16473
 
                                                      (add_loc c bp p2 __strm)
 
17413
                                                      (add_loc bp p2 __strm)
16474
17414
                                                  with
16475
17415
                                                  | Stream.Failure -> None
16476
17416
                                            with
16478
17418
                                                let a = Action.getf act loc
16479
17419
                                                in
16480
17420
                                                  entry.econtinue levn loc a
16481
 
                                                    c strm
16482
 
                                            | _ -> p1 levn c __strm))))
 
17421
                                                    strm
 
17422
                                            | _ -> p1 levn __strm))))
16483
17423
                  
16484
17424
                let start_parser_of_entry entry =
16485
17425
                  match entry.edesc with
16486
17426
                  | Dlevels [] -> Tools.empty_entry entry.ename
16487
17427
                  | Dlevels elev -> start_parser_of_levels entry 0 elev
16488
 
                  | Dparser p -> (fun _ _ strm -> p strm)
 
17428
                  | Dparser p -> (fun _ -> p)
16489
17429
                  
16490
17430
                let rec continue_parser_of_levels entry clevn =
16491
17431
                  function
16492
17432
                  | [] ->
16493
 
                      (fun _ _ _ _ (__strm : _ Stream.t) ->
 
17433
                      (fun _ _ _ (__strm : _ Stream.t) ->
16494
17434
                         raise Stream.Failure)
16495
17435
                  | lev :: levs ->
16496
17436
                      let p1 =
16506
17446
                             let p2 =
16507
17447
                               parser_of_tree entry (succ clevn) alevn tree
16508
17448
                             in
16509
 
                               (fun c levn bp a strm ->
 
17449
                               (fun levn bp a strm ->
16510
17450
                                  if levn > clevn
16511
 
                                  then p1 c levn bp a strm
 
17451
                                  then p1 levn bp a strm
16512
17452
                                  else
16513
17453
                                    (let (__strm : _ Stream.t) = strm
16514
17454
                                     in
16515
 
                                       try p1 c levn bp a __strm
 
17455
                                       try p1 levn bp a __strm
16516
17456
                                       with
16517
17457
                                       | Stream.Failure ->
16518
17458
                                           let (act, loc) =
16519
 
                                             add_loc c bp p2 __strm in
 
17459
                                             add_loc bp p2 __strm in
16520
17460
                                           let a = Action.getf2 act a loc
16521
 
                                           in
16522
 
                                             entry.econtinue levn loc a c
16523
 
                                               strm)))
 
17461
                                           in entry.econtinue levn loc a strm)))
16524
17462
                  
16525
17463
                let continue_parser_of_entry entry =
16526
17464
                  match entry.edesc with
16527
17465
                  | Dlevels elev ->
16528
17466
                      let p = continue_parser_of_levels entry 0 elev
16529
17467
                      in
16530
 
                        (fun levn bp a c (__strm : _ Stream.t) ->
16531
 
                           try p c levn bp a __strm
16532
 
                           with | Stream.Failure -> a)
 
17468
                        (fun levn bp a (__strm : _ Stream.t) ->
 
17469
                           try p levn bp a __strm with | Stream.Failure -> a)
16533
17470
                  | Dparser _ ->
16534
 
                      (fun _ _ _ _ (__strm : _ Stream.t) ->
 
17471
                      (fun _ _ _ (__strm : _ Stream.t) ->
16535
17472
                         raise Stream.Failure)
16536
17473
                  
16537
17474
              end
16561
17498
                  
16562
17499
                let rec derive_eps =
16563
17500
                  function
16564
 
                  | Slist0 _ -> true
16565
 
                  | Slist0sep (_, _) -> true
16566
 
                  | Sopt _ -> true
 
17501
                  | Slist0 _ | Slist0sep (_, _) | Sopt _ -> true
 
17502
                  | Stry s -> derive_eps s
16567
17503
                  | Stree t -> tree_derive_eps t
16568
 
                  | Smeta (_, _, _) | Slist1 _ | Slist1sep (_, _) | Snterm _
16569
 
                      | Snterml (_, _) | Snext | Sself | Stoken _ |
16570
 
                      Skeyword _ -> false
 
17504
                  | Slist1 _ | Slist1sep (_, _) | Stoken _ | Skeyword _ ->
 
17505
                      false
 
17506
                  | Smeta (_, _, _) | Snterm _ | Snterml (_, _) | Snext |
 
17507
                      Sself -> false
16571
17508
                and tree_derive_eps =
16572
17509
                  function
16573
17510
                  | LocAct (_, _) -> true
16597
17534
                           (eprintf
16598
17535
                              "<W> Changing associativity of level \"%s\"\n"
16599
17536
                              n;
16600
 
                            flush stderr)
 
17537
                            flush Pervasives.stderr)
16601
17538
                         else ();
16602
17539
                         a)
16603
17540
                  in
16608
17545
                              !(entry.egram.warning_verbose)
16609
17546
                          then
16610
17547
                            (eprintf "<W> Level label \"%s\" ignored\n" n;
16611
 
                             flush stderr)
 
17548
                             flush Pervasives.stderr)
16612
17549
                          else ()
16613
17550
                      | None -> ());
16614
17551
                     {
16632
17569
                             (eprintf
16633
17570
                                "No level labelled \"%s\" in entry \"%s\"\n"
16634
17571
                                n entry.ename;
16635
 
                              flush stderr;
 
17572
                              flush Pervasives.stderr;
16636
17573
                              failwith "Grammar.extend")
16637
17574
                         | lev :: levs ->
16638
17575
                             if Tools.is_level_labelled n lev
16648
17585
                             (eprintf
16649
17586
                                "No level labelled \"%s\" in entry \"%s\"\n"
16650
17587
                                n entry.ename;
16651
 
                              flush stderr;
 
17588
                              flush Pervasives.stderr;
16652
17589
                              failwith "Grammar.extend")
16653
17590
                         | lev :: levs ->
16654
17591
                             if Tools.is_level_labelled n lev
16664
17601
                             (eprintf
16665
17602
                                "No level labelled \"%s\" in entry \"%s\"\n"
16666
17603
                                n entry.ename;
16667
 
                              flush stderr;
 
17604
                              flush Pervasives.stderr;
16668
17605
                              failwith "Grammar.extend")
16669
17606
                         | lev :: levs ->
16670
17607
                             if Tools.is_level_labelled n lev
16688
17625
                           "\
16689
17626
  Error: entries \"%s\" and \"%s\" do not belong to the same grammar.\n"
16690
17627
                           entry.ename e.ename;
16691
 
                         flush stderr;
 
17628
                         flush Pervasives.stderr;
16692
17629
                         failwith "Grammar.extend error")
16693
17630
                      else ()
16694
17631
                  | Snterml (e, _) ->
16698
17635
                           "\
16699
17636
  Error: entries \"%s\" and \"%s\" do not belong to the same grammar.\n"
16700
17637
                           entry.ename e.ename;
16701
 
                         flush stderr;
 
17638
                         flush Pervasives.stderr;
16702
17639
                         failwith "Grammar.extend error")
16703
17640
                      else ()
16704
17641
                  | Smeta (_, sl, _) -> List.iter (check_gram entry) sl
16706
17643
                      (check_gram entry t; check_gram entry s)
16707
17644
                  | Slist1sep (s, t) ->
16708
17645
                      (check_gram entry t; check_gram entry s)
16709
 
                  | Slist0 s -> check_gram entry s
16710
 
                  | Slist1 s -> check_gram entry s
16711
 
                  | Sopt s -> check_gram entry s
 
17646
                  | Slist0 s | Slist1 s | Sopt s | Stry s ->
 
17647
                      check_gram entry s
16712
17648
                  | Stree t -> tree_check_gram entry t
16713
17649
                  | Snext | Sself | Stoken _ | Skeyword _ -> ()
16714
17650
                and tree_check_gram entry =
16728
17664
                  let rec insert =
16729
17665
                    function
16730
17666
                    | Smeta (_, sl, _) -> List.iter insert sl
16731
 
                    | Slist0 s -> insert s
16732
 
                    | Slist1 s -> insert s
 
17667
                    | Slist0 s | Slist1 s | Sopt s | Stry s -> insert s
16733
17668
                    | Slist0sep (s, t) -> (insert s; insert t)
16734
17669
                    | Slist1sep (s, t) -> (insert s; insert t)
16735
 
                    | Sopt s -> insert s
16736
17670
                    | Stree t -> tinsert t
16737
17671
                    | Skeyword kwd -> using gram kwd
16738
17672
                    | Snterm _ | Snterml (_, _) | Snext | Sself | Stoken _ ->
16765
17699
                                   "<W> Grammar extension: in [%s] some rule has been masked@."
16766
17700
                                   entry.ename
16767
17701
                               else ()
16768
 
                             in LocAct (action, old_action :: action_list)
 
17702
                             in LocAct (action, (old_action :: action_list))
16769
17703
                         | DeadEnd -> LocAct (action, []))
16770
17704
                  and insert_in_tree s sl tree =
16771
17705
                    match try_insert s sl tree with
16852
17786
                    | Dparser _ ->
16853
17787
                        (eprintf "Error: entry not extensible: \"%s\"\n"
16854
17788
                           entry.ename;
16855
 
                         flush stderr;
 
17789
                         flush Pervasives.stderr;
16856
17790
                         failwith "Grammar.extend")
16857
17791
                  in
16858
17792
                    if rules = []
16888
17822
                  in
16889
17823
                    (entry.edesc <- Dlevels elev;
16890
17824
                     entry.estart <-
16891
 
                       (fun lev c strm ->
 
17825
                       (fun lev strm ->
16892
17826
                          let f = Parser.start_parser_of_entry entry
16893
 
                          in (entry.estart <- f; f lev c strm));
 
17827
                          in (entry.estart <- f; f lev strm));
16894
17828
                     entry.econtinue <-
16895
 
                       fun lev bp a c strm ->
 
17829
                       fun lev bp a strm ->
16896
17830
                         let f = Parser.continue_parser_of_entry entry
16897
 
                         in (entry.econtinue <- f; f lev bp a c strm))
 
17831
                         in (entry.econtinue <- f; f lev bp a strm))
16898
17832
                  
16899
17833
              end
16900
17834
              
16966
17900
                  function
16967
17901
                  | Skeyword kwd -> removing gram kwd
16968
17902
                  | Smeta (_, sl, _) -> List.iter (decr_keyw_use gram) sl
16969
 
                  | Slist0 s -> decr_keyw_use gram s
16970
 
                  | Slist1 s -> decr_keyw_use gram s
 
17903
                  | Slist0 s | Slist1 s | Sopt s | Stry s ->
 
17904
                      decr_keyw_use gram s
16971
17905
                  | Slist0sep (s1, s2) ->
16972
17906
                      (decr_keyw_use gram s1; decr_keyw_use gram s2)
16973
17907
                  | Slist1sep (s1, s2) ->
16974
17908
                      (decr_keyw_use gram s1; decr_keyw_use gram s2)
16975
 
                  | Sopt s -> decr_keyw_use gram s
16976
17909
                  | Stree t -> decr_keyw_use_in_tree gram t
16977
17910
                  | Sself | Snext | Snterm _ | Snterml (_, _) | Stoken _ ->
16978
17911
                      ()
17053
17986
                      in
17054
17987
                        (entry.edesc <- Dlevels levs;
17055
17988
                         entry.estart <-
17056
 
                           (fun lev c strm ->
 
17989
                           (fun lev strm ->
17057
17990
                              let f = Parser.start_parser_of_entry entry
17058
 
                              in (entry.estart <- f; f lev c strm));
 
17991
                              in (entry.estart <- f; f lev strm));
17059
17992
                         entry.econtinue <-
17060
 
                           (fun lev bp a c strm ->
 
17993
                           (fun lev bp a strm ->
17061
17994
                              let f = Parser.continue_parser_of_entry entry
17062
 
                              in (entry.econtinue <- f; f lev bp a c strm)))
 
17995
                              in (entry.econtinue <- f; f lev bp a strm)))
17063
17996
                  | Dparser _ -> ()
17064
17997
                  
17065
17998
              end
17096
18029
                  
17097
18030
                module Stream =
17098
18031
                  struct
17099
 
                    include Stream
17100
 
                      
17101
 
                    let junk strm = Context.junk strm
17102
 
                      
17103
 
                    let count strm = Context.bp strm
 
18032
                    type 'a t = 'a Stream.t
 
18033
                    
 
18034
                    exception Failure = Stream.Failure
 
18035
                      
 
18036
                    exception Error = Stream.Error
17104
18037
                      
17105
18038
                  end
17106
18039
                  
17202
18135
                  
17203
18136
                open Structure
17204
18137
                  
 
18138
                open Tools
 
18139
                  
17205
18140
                type 'a t = internal_entry
17206
18141
                
17207
18142
                let name e = e.ename
17214
18149
                  {
17215
18150
                    egram = g;
17216
18151
                    ename = n;
17217
 
                    estart = Tools.empty_entry n;
 
18152
                    estart = empty_entry n;
17218
18153
                    econtinue =
17219
 
                      (fun _ _ _ _ (__strm : _ Stream.t) ->
 
18154
                      (fun _ _ _ (__strm : _ Stream.t) ->
17220
18155
                         raise Stream.Failure);
17221
18156
                    edesc = Dlevels [];
17222
18157
                  }
17223
18158
                  
17224
18159
                let action_parse entry ts : Action.t =
17225
 
                  Context.call_with_ctx ts
17226
 
                    (fun c ->
17227
 
                       try entry.estart 0 c (Context.stream c)
17228
 
                       with
17229
 
                       | Stream.Failure ->
17230
 
                           Loc.raise (Context.loc_ep c)
17231
 
                             (Stream.Error
17232
 
                                ("illegal begin of " ^ entry.ename))
17233
 
                       | (Loc.Exc_located (_, _) as exc) -> raise exc
17234
 
                       | exc -> Loc.raise (Context.loc_ep c) exc)
 
18160
                  try entry.estart 0 ts
 
18161
                  with
 
18162
                  | Stream.Failure ->
 
18163
                      Loc.raise (get_prev_loc ts)
 
18164
                        (Stream.Error ("illegal begin of " ^ entry.ename))
 
18165
                  | (Loc.Exc_located (_, _) as exc) -> raise exc
 
18166
                  | exc -> Loc.raise (get_prev_loc ts) exc
17235
18167
                  
17236
18168
                let lex entry loc cs = entry.egram.glexer loc cs
17237
18169
                  
17239
18171
                  lex entry loc (Stream.of_string str)
17240
18172
                  
17241
18173
                let filter entry ts =
17242
 
                  Token.Filter.filter (get_filter entry.egram) ts
 
18174
                  keep_prev_loc
 
18175
                    (Token.Filter.filter (get_filter entry.egram) ts)
17243
18176
                  
17244
18177
                let parse_tokens_after_filter entry ts =
17245
18178
                  Action.get (action_parse entry ts)
17253
18186
                let parse_string entry loc str =
17254
18187
                  parse_tokens_before_filter entry (lex_string entry loc str)
17255
18188
                  
17256
 
                let of_parser g n (p : (Token.t * Loc.t) Stream.t -> 'a) :
17257
 
                  'a t =
17258
 
                  {
17259
 
                    egram = g;
17260
 
                    ename = n;
17261
 
                    estart = (fun _ _ ts -> Action.mk (p ts));
17262
 
                    econtinue =
17263
 
                      (fun _ _ _ _ (__strm : _ Stream.t) ->
17264
 
                         raise Stream.Failure);
17265
 
                    edesc = Dparser (fun ts -> Action.mk (p ts));
17266
 
                  }
 
18189
                let of_parser g n
 
18190
                  (p : (Token.t * token_info) Stream.t -> 'a) : 'a t =
 
18191
                  let f ts = Action.mk (p ts)
 
18192
                  in
 
18193
                    {
 
18194
                      egram = g;
 
18195
                      ename = n;
 
18196
                      estart = (fun _ -> f);
 
18197
                      econtinue =
 
18198
                        (fun _ _ _ (__strm : _ Stream.t) ->
 
18199
                           raise Stream.Failure);
 
18200
                      edesc = Dparser f;
 
18201
                    }
17267
18202
                  
17268
 
                let setup_parser e (p : (Token.t * Loc.t) Stream.t -> 'a) =
 
18203
                let setup_parser e
 
18204
                                 (p : (Token.t * token_info) Stream.t -> 'a)
 
18205
                                 =
17269
18206
                  let f ts = Action.mk (p ts)
17270
18207
                  in
17271
 
                    (e.estart <- (fun _ _ -> f);
 
18208
                    (e.estart <- (fun _ -> f);
17272
18209
                     e.econtinue <-
17273
 
                       (fun _ _ _ _ (__strm : _ Stream.t) ->
 
18210
                       (fun _ _ _ (__strm : _ Stream.t) ->
17274
18211
                          raise Stream.Failure);
17275
18212
                     e.edesc <- Dparser f)
17276
18213
                  
17277
18214
                let clear e =
17278
18215
                  (e.estart <-
17279
 
                     (fun _ _ (__strm : _ Stream.t) -> raise Stream.Failure);
 
18216
                     (fun _ (__strm : _ Stream.t) -> raise Stream.Failure);
17280
18217
                   e.econtinue <-
17281
 
                     (fun _ _ _ _ (__strm : _ Stream.t) ->
17282
 
                        raise Stream.Failure);
 
18218
                     (fun _ _ _ (__strm : _ Stream.t) -> raise Stream.Failure);
17283
18219
                   e.edesc <- Dlevels [])
17284
18220
                  
17285
18221
                let obj x = x
17306
18242
                  
17307
18243
                module Fold = Fold.Make(Structure)
17308
18244
                  
 
18245
                module Tools = Tools.Make(Structure)
 
18246
                  
17309
18247
                include Structure
17310
18248
                  
17311
18249
                let gram =
17349
18287
                  
17350
18288
                let lex_string loc str = lex loc (Stream.of_string str)
17351
18289
                  
17352
 
                let filter ts = Token.Filter.filter gram.gfilter ts
 
18290
                let filter ts =
 
18291
                  Tools.keep_prev_loc (Token.Filter.filter gram.gfilter ts)
17353
18292
                  
17354
18293
                let parse_tokens_after_filter entry ts =
17355
18294
                  Entry.E.parse_tokens_after_filter entry ts
17398
18337
                  
17399
18338
                module Fold = Fold.Make(Structure)
17400
18339
                  
 
18340
                module Tools = Tools.Make(Structure)
 
18341
                  
17401
18342
                include Structure
17402
18343
                  
17403
18344
                let mk () =
17417
18358
                  
17418
18359
                let lex_string g loc str = lex g loc (Stream.of_string str)
17419
18360
                  
17420
 
                let filter g ts = Token.Filter.filter g.gfilter ts
 
18361
                let filter g ts =
 
18362
                  Tools.keep_prev_loc (Token.Filter.filter g.gfilter ts)
17421
18363
                  
17422
18364
                let parse_tokens_after_filter entry ts =
17423
18365
                  Entry.parse_tokens_after_filter entry ts
17598
18540
              
17599
18541
            type sep = (unit, formatter, unit) format
17600
18542
            
 
18543
            type fun_binding = [ | `patt of Ast.patt | `newtype of string ]
 
18544
            
17601
18545
            val list' :
17602
18546
              (formatter -> 'a -> unit) ->
17603
18547
                ('b, formatter, unit) format ->
17625
18569
            val get_ctyp_args :
17626
18570
              Ast.ctyp -> Ast.ctyp list -> (Ast.ctyp * (Ast.ctyp list))
17627
18571
              
17628
 
            val expr_fun_args : Ast.expr -> ((Ast.patt list) * Ast.expr)
 
18572
            val expr_fun_args : Ast.expr -> ((fun_binding list) * Ast.expr)
17629
18573
              
17630
18574
            class printer :
17631
18575
              ?curry_constr: bool ->
17646
18590
                        
17647
18591
                      val semisep : sep
17648
18592
                        
17649
 
                      val value_val : string
17650
 
                        
17651
 
                      val value_let : string
 
18593
                      method value_val : string
 
18594
                        
 
18595
                      method value_let : string
 
18596
                        
 
18597
                      method andsep : sep
17652
18598
                        
17653
18599
                      method anti : formatter -> string -> unit
17654
18600
                        
17685
18631
                      method expr_list_cons :
17686
18632
                        bool -> formatter -> Ast.expr -> unit
17687
18633
                        
 
18634
                      method fun_binding : formatter -> fun_binding -> unit
 
18635
                        
17688
18636
                      method functor_arg :
17689
18637
                        formatter -> (string * Ast.module_type) -> unit
17690
18638
                        
17729
18677
                      method module_type :
17730
18678
                        formatter -> Ast.module_type -> unit
17731
18679
                        
 
18680
                      method override_flag :
 
18681
                        formatter -> Ast.override_flag -> unit
 
18682
                        
17732
18683
                      method mutable_flag :
17733
 
                        formatter -> Ast.meta_bool -> unit
 
18684
                        formatter -> Ast.mutable_flag -> unit
17734
18685
                        
17735
18686
                      method direction_flag :
17736
 
                        formatter -> Ast.meta_bool -> unit
17737
 
                        
17738
 
                      method rec_flag : formatter -> Ast.meta_bool -> unit
17739
 
                        
17740
 
                      method flag :
17741
 
                        formatter -> Ast.meta_bool -> string -> unit
 
18687
                        formatter -> Ast.direction_flag -> unit
 
18688
                        
 
18689
                      method rec_flag : formatter -> Ast.rec_flag -> unit
17742
18690
                        
17743
18691
                      method node : formatter -> 'b -> ('b -> Loc.t) -> unit
17744
18692
                        
17757
18705
                      method patt_tycon : formatter -> Ast.patt -> unit
17758
18706
                        
17759
18707
                      method patt_expr_fun_args :
17760
 
                        formatter -> (Ast.patt * Ast.expr) -> unit
 
18708
                        formatter -> (fun_binding * Ast.expr) -> unit
17761
18709
                        
17762
18710
                      method patt_class_expr_fun_args :
17763
18711
                        formatter -> (Ast.patt * Ast.class_expr) -> unit
17766
18714
                        Loc.t -> formatter -> unit
17767
18715
                        
17768
18716
                      method private_flag :
17769
 
                        formatter -> Ast.meta_bool -> unit
 
18717
                        formatter -> Ast.private_flag -> unit
17770
18718
                        
17771
18719
                      method virtual_flag :
17772
 
                        formatter -> Ast.meta_bool -> unit
 
18720
                        formatter -> Ast.virtual_flag -> unit
17773
18721
                        
17774
18722
                      method quoted_string : formatter -> string -> unit
17775
18723
                        
17846
18794
              
17847
18795
            type sep = (unit, formatter, unit) format
17848
18796
            
 
18797
            type fun_binding = [ | `patt of Ast.patt | `newtype of string ]
 
18798
            
17849
18799
            let pp = fprintf
17850
18800
              
17851
18801
            let cut f = fprintf f "@ "
17874
18824
              function
17875
18825
              | Ast.LNil -> []
17876
18826
              | Ast.LCons (x, xs) -> x :: (list_of_meta_list xs)
17877
 
              | Ast.LAnt x -> assert false
 
18827
              | Ast.LAnt _ -> assert false
17878
18828
              
17879
18829
            let meta_list elt sep f mxs =
17880
18830
              let xs = list_of_meta_list mxs in list elt sep f xs
17972
18922
              | (Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e))) as ge)
17973
18923
                  ->
17974
18924
                  if is_irrefut_patt p
17975
 
                  then (let (pl, e) = expr_fun_args e in ((p :: pl), e))
 
18925
                  then
 
18926
                    (let (pl, e) = expr_fun_args e in (((`patt p) :: pl), e))
17976
18927
                  else ([], ge)
 
18928
              | Ast.ExFUN (_, i, e) ->
 
18929
                  let (pl, e) = expr_fun_args e in (((`newtype i) :: pl), e)
17977
18930
              | ge -> ([], ge)
17978
18931
              
17979
18932
            let rec class_expr_fun_args =
18012
18965
                  
18013
18966
                val semisep = (";;" : sep)
18014
18967
                  
18015
 
                val andsep = ("@]@ @[<2>and@ " : sep)
18016
 
                  
18017
 
                val value_val = "val"
18018
 
                  
18019
 
                val value_let = "let"
18020
 
                  
18021
18968
                val mode = if comments then `comments else `no_comments
18022
18969
                  
18023
18970
                val curry_constr = init_curry_constr
18024
18971
                  
18025
18972
                val var_conversion = false
18026
18973
                  
 
18974
                method andsep : sep = "@]@ @[<2>and@ "
 
18975
                  
 
18976
                method value_val = "val"
 
18977
                  
 
18978
                method value_let = "let"
 
18979
                  
18027
18980
                method semisep = semisep
18028
18981
                  
18029
18982
                method set_semisep = fun s -> {< semisep = s; >}
18094
19047
                          o#class_params t2
18095
19048
                    | x -> o#ctyp f x
18096
19049
                  
18097
 
                method mutable_flag = fun f b -> o#flag f b "mutable"
18098
 
                  
18099
 
                method rec_flag = fun f b -> o#flag f b "rec"
18100
 
                  
18101
 
                method virtual_flag = fun f b -> o#flag f b "virtual"
18102
 
                  
18103
 
                method private_flag = fun f b -> o#flag f b "private"
18104
 
                  
18105
 
                method flag =
18106
 
                  fun f b n ->
18107
 
                    match b with
18108
 
                    | Ast.BTrue -> (pp_print_string f n; pp f "@ ")
18109
 
                    | Ast.BFalse -> ()
18110
 
                    | Ast.BAnt s -> o#anti f s
 
19050
                method override_flag =
 
19051
                  fun f ->
 
19052
                    function
 
19053
                    | Ast.OvOverride -> pp f "!"
 
19054
                    | Ast.OvNil -> ()
 
19055
                    | Ast.OvAnt s -> o#anti f s
 
19056
                  
 
19057
                method mutable_flag =
 
19058
                  fun f ->
 
19059
                    function
 
19060
                    | Ast.MuMutable -> pp f "mutable@ "
 
19061
                    | Ast.MuNil -> ()
 
19062
                    | Ast.MuAnt s -> o#anti f s
 
19063
                  
 
19064
                method rec_flag =
 
19065
                  fun f ->
 
19066
                    function
 
19067
                    | Ast.ReRecursive -> pp f "rec@ "
 
19068
                    | Ast.ReNil -> ()
 
19069
                    | Ast.ReAnt s -> o#anti f s
 
19070
                  
 
19071
                method virtual_flag =
 
19072
                  fun f ->
 
19073
                    function
 
19074
                    | Ast.ViVirtual -> pp f "virtual@ "
 
19075
                    | Ast.ViNil -> ()
 
19076
                    | Ast.ViAnt s -> o#anti f s
 
19077
                  
 
19078
                method private_flag =
 
19079
                  fun f ->
 
19080
                    function
 
19081
                    | Ast.PrPrivate -> pp f "private@ "
 
19082
                    | Ast.PrNil -> ()
 
19083
                    | Ast.PrAnt s -> o#anti f s
18111
19084
                  
18112
19085
                method anti = fun f s -> pp f "$%s$" s
18113
19086
                  
18140
19113
                        pp f "@ | @[<2>%a@ when@ %a@ ->@ %a@]" o#patt p
18141
19114
                          o#under_pipe#expr w o#under_pipe#expr e
18142
19115
                  
 
19116
                method fun_binding =
 
19117
                  fun f ->
 
19118
                    function
 
19119
                    | `patt p -> o#simple_patt f p
 
19120
                    | `newtype i -> pp f "(type %s)" i
 
19121
                  
18143
19122
                method binding =
18144
19123
                  fun f bi ->
18145
19124
                    let () = o#node f bi Ast.loc_of_binding
18147
19126
                      match bi with
18148
19127
                      | Ast.BiNil _ -> ()
18149
19128
                      | Ast.BiAnd (_, b1, b2) ->
18150
 
                          (o#binding f b1; pp f andsep; o#binding f b2)
 
19129
                          (o#binding f b1; pp f o#andsep; o#binding f b2)
18151
19130
                      | Ast.BiEq (_, p, e) ->
18152
19131
                          let (pl, e) =
18153
19132
                            (match p with
18158
19137
                             | (Ast.PaId (_, (Ast.IdLid (_, _))),
18159
19138
                                Ast.ExTyc (_, e, t)) ->
18160
19139
                                 pp f "%a :@ %a =@ %a"
18161
 
                                   (list o#simple_patt "@ ") (p :: pl) 
18162
 
                                   o#ctyp t o#expr e
 
19140
                                   (list o#fun_binding "@ ")
 
19141
                                   ((`patt p) :: pl) o#ctyp t o#expr e
18163
19142
                             | _ ->
18164
19143
                                 pp f "%a @[<0>%a=@]@ %a" o#simple_patt p
18165
 
                                   (list' o#simple_patt "" "@ ") pl o#expr e)
 
19144
                                   (list' o#fun_binding "" "@ ") pl o#expr e)
18166
19145
                      | Ast.BiAnt (_, s) -> o#anti f s
18167
19146
                  
18168
19147
                method record_binding =
18223
19202
                  fun f (p, e) ->
18224
19203
                    let (pl, e) = expr_fun_args e
18225
19204
                    in
18226
 
                      pp f "%a@ ->@ %a" (list o#simple_patt "@ ") (p :: pl)
 
19205
                      pp f "%a@ ->@ %a" (list o#fun_binding "@ ") (p :: pl)
18227
19206
                        o#expr e
18228
19207
                  
18229
19208
                method patt_class_expr_fun_args =
18279
19258
                        pp f "@[<2>%a :@ %a@]" o#var s o#module_type mt
18280
19259
                    | Ast.MbAnd (_, mb1, mb2) ->
18281
19260
                        (o#module_rec_binding f mb1;
18282
 
                         pp f andsep;
 
19261
                         pp f o#andsep;
18283
19262
                         o#module_rec_binding f mb2)
18284
19263
                    | Ast.MbAnt (_, s) -> o#anti f s
18285
19264
                  
18298
19277
                    in
18299
19278
                      o#expr f
18300
19279
                        (Ast.ExApp (_loc,
18301
 
                           Ast.ExId (_loc, Ast.IdLid (_loc, "raise")),
18302
 
                           Ast.ExApp (_loc,
18303
 
                             Ast.ExApp (_loc,
18304
 
                               Ast.ExApp (_loc,
18305
 
                                 Ast.ExId (_loc,
18306
 
                                   Ast.IdUid (_loc, "Match_failure")),
18307
 
                                 Ast.ExStr (_loc, Ast.safe_string_escaped n)),
18308
 
                               Ast.ExInt (_loc, string_of_int l)),
18309
 
                             Ast.ExInt (_loc, string_of_int c))))
 
19280
                           (Ast.ExId (_loc, (Ast.IdLid (_loc, "raise")))),
 
19281
                           (Ast.ExApp (_loc,
 
19282
                              (Ast.ExApp (_loc,
 
19283
                                 (Ast.ExApp (_loc,
 
19284
                                    (Ast.ExId (_loc,
 
19285
                                       (Ast.IdUid (_loc, "Match_failure")))),
 
19286
                                    (Ast.ExStr (_loc,
 
19287
                                       (Ast.safe_string_escaped n))))),
 
19288
                                 (Ast.ExInt (_loc, (string_of_int l))))),
 
19289
                              (Ast.ExInt (_loc, (string_of_int c)))))))
18310
19290
                  
18311
19291
                method node : 'a. formatter -> 'a -> ('a -> Loc.t) -> unit =
18312
19292
                  fun f node loc_of_node ->
18367
19347
                                     o#apply_expr y
18368
19348
                               | al ->
18369
19349
                                   pp f "@[<2>%a@ (%a)@]" o#apply_expr a
18370
 
                                     (list o#under_pipe#expr ",@ ") al)
 
19350
                                     (list o#under_pipe#apply_expr ",@ ") al)
18371
19351
                            else
18372
19352
                              pp f "@[<2>%a@]" (list o#apply_expr "@ ")
18373
19353
                                (a :: al)
18383
19363
                            loc
18384
19364
                      | Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e)))
18385
19365
                          when is_irrefut_patt p ->
18386
 
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
 
19366
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
 
19367
                            ((`patt p), e)
 
19368
                      | Ast.ExFUN (_, i, e) ->
 
19369
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
 
19370
                            ((`newtype i), e)
18387
19371
                      | Ast.ExFun (_, a) ->
18388
19372
                          pp f "@[<hv0>function%a@]" o#match_case a
18389
19373
                      | Ast.ExIfe (_, e1, e2, e3) ->
18404
19388
                                 "@[<hv0>@[<2>let %a%a@]@ @[<hv2>in@ %a@]@]"
18405
19389
                                 o#rec_flag r o#binding bi o#reset_semi#expr
18406
19390
                                 e)
 
19391
                      | Ast.ExOpI (_, i, e) ->
 
19392
                          pp f "@[<2>let open %a@]@ @[<2>in@ %a@]" o#ident i
 
19393
                            o#reset_semi#expr e
18407
19394
                      | Ast.ExMat (_, e, a) ->
18408
19395
                          pp f "@[<hv0>@[<hv0>@[<2>match %a@]@ with@]%a@]"
18409
19396
                            o#expr e o#match_case a
18512
19499
                          pp f "%a,@ %a" o#simple_expr e1 o#simple_expr e2
18513
19500
                      | Ast.ExSem (_, e1, e2) ->
18514
19501
                          pp f "%a;@ %a" o#under_semi#expr e1 o#expr e2
 
19502
                      | Ast.ExPkg (_, (Ast.MeTyc (_, me, mt))) ->
 
19503
                          pp f "@[<hv0>@[<hv2>(module %a : %a@])@]"
 
19504
                            o#module_expr me o#module_type mt
 
19505
                      | Ast.ExPkg (_, me) ->
 
19506
                          pp f "@[<hv0>@[<hv2>(module %a@])@]" o#module_expr
 
19507
                            me
18515
19508
                      | Ast.ExApp (_, _, _) | Ast.ExAcc (_, _, _) |
18516
19509
                          Ast.ExAre (_, _, _) | Ast.ExSte (_, _, _) |
18517
19510
                          Ast.ExAss (_, _, _) | Ast.ExSnd (_, _, _) |
18518
 
                          Ast.ExFun (_, _) | Ast.ExMat (_, _, _) |
18519
 
                          Ast.ExTry (_, _, _) | Ast.ExIfe (_, _, _, _) |
18520
 
                          Ast.ExLet (_, _, _, _) | Ast.ExLmd (_, _, _, _) |
 
19511
                          Ast.ExFun (_, _) | Ast.ExFUN (_, _, _) |
 
19512
                          Ast.ExMat (_, _, _) | Ast.ExTry (_, _, _) |
 
19513
                          Ast.ExIfe (_, _, _, _) | Ast.ExLet (_, _, _, _) |
 
19514
                          Ast.ExLmd (_, _, _, _) | Ast.ExOpI (_, _, _) |
18521
19515
                          Ast.ExAsr (_, _) | Ast.ExAsf _ | Ast.ExLaz (_, _) |
18522
19516
                          Ast.ExNew (_, _) | Ast.ExObj (_, _, _) ->
18523
19517
                          pp f "(%a)" o#reset#expr e
18525
19519
                method direction_flag =
18526
19520
                  fun f b ->
18527
19521
                    match b with
18528
 
                    | Ast.BTrue -> pp_print_string f "to"
18529
 
                    | Ast.BFalse -> pp_print_string f "downto"
18530
 
                    | Ast.BAnt s -> o#anti f s
 
19522
                    | Ast.DiTo -> pp_print_string f "to"
 
19523
                    | Ast.DiDownto -> pp_print_string f "downto"
 
19524
                    | Ast.DiAnt s -> o#anti f s
18531
19525
                  
18532
19526
                method patt =
18533
19527
                  fun f p ->
18674
19668
                          pp f "@[<2>%s:@ %a@]" s o#simple_ctyp t
18675
19669
                      | Ast.TyOlb (_, s, t) ->
18676
19670
                          pp f "@[<2>?%s:@ %a@]" s o#simple_ctyp t
18677
 
                      | Ast.TyObj (_, (Ast.TyNil _), Ast.BFalse) ->
18678
 
                          pp f "< >"
18679
 
                      | Ast.TyObj (_, (Ast.TyNil _), Ast.BTrue) ->
 
19671
                      | Ast.TyObj (_, (Ast.TyNil _), Ast.RvNil) -> pp f "< >"
 
19672
                      | Ast.TyObj (_, (Ast.TyNil _), Ast.RvRowVar) ->
18680
19673
                          pp f "< .. >"
18681
 
                      | Ast.TyObj (_, t, Ast.BTrue) ->
 
19674
                      | Ast.TyObj (_, t, Ast.RvRowVar) ->
18682
19675
                          pp f "@[<0>@[<2><@ %a;@ ..@]@ >@]" o#ctyp t
18683
 
                      | Ast.TyObj (_, t, Ast.BFalse) ->
 
19676
                      | Ast.TyObj (_, t, Ast.RvNil) ->
18684
19677
                          pp f "@[<0>@[<2><@ %a@]@ >@]" o#ctyp t
18685
19678
                      | Ast.TyQuo (_, s) -> pp f "'%a" o#var s
18686
19679
                      | Ast.TyRec (_, t) -> pp f "@[<2>{@ %a@]@ }" o#ctyp t
18687
19680
                      | Ast.TySum (_, t) -> pp f "@[<0>%a@]" o#sum_type t
18688
19681
                      | Ast.TyTup (_, t) -> pp f "@[<1>(%a)@]" o#ctyp t
 
19682
                      | Ast.TyPkg (_, mt) ->
 
19683
                          pp f "@[<2>(module@ %a@])" o#module_type mt
18689
19684
                      | Ast.TyVrnEq (_, t) ->
18690
19685
                          pp f "@[<2>[@ %a@]@ ]" o#sum_type t
18691
19686
                      | Ast.TyVrnInf (_, t) ->
18698
19693
                      | Ast.TyVrnSup (_, t) ->
18699
19694
                          pp f "@[<2>[>@ %a@]@,]" o#sum_type t
18700
19695
                      | Ast.TyCls (_, i) -> pp f "@[<2>#%a@]" o#ident i
18701
 
                      | Ast.TyMan (_, t1, t2) ->
18702
 
                          pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1
18703
 
                            o#simple_ctyp t2
18704
19696
                      | Ast.TyVrn (_, s) -> pp f "`%a" o#var s
18705
19697
                      | Ast.TySta (_, t1, t2) ->
18706
19698
                          pp f "%a *@ %a" o#simple_ctyp t1 o#simple_ctyp t2
18740
19732
                          pp f "@[<2>mutable@ %a@]" o#ctyp t
18741
19733
                      | Ast.TyAmp (_, t1, t2) ->
18742
19734
                          pp f "%a@ &@ %a" o#ctyp t1 o#ctyp t2
 
19735
                      | Ast.TyMan (_, t1, t2) ->
 
19736
                          pp f "@[<2>%a =@ %a@]" o#simple_ctyp t1 o#ctyp t2
18743
19737
                      | Ast.TyDcl (_, tn, tp, te, cl) ->
18744
19738
                          (pp f "@[<2>%a%a@]" o#type_params tp o#var tn;
18745
19739
                           (match te with
18822
19816
                          pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t
18823
19817
                            semisep
18824
19818
                      | Ast.SgVal (_, s, t) ->
18825
 
                          pp f "@[<2>%s %a :@ %a%(%)@]" value_val o#var s
 
19819
                          pp f "@[<2>%s %a :@ %a%(%)@]" o#value_val o#var s
18826
19820
                            o#ctyp t semisep
18827
19821
                      | Ast.SgInc (_, mt) ->
18828
19822
                          pp f "@[<2>include@ %a%(%)@]" o#module_type mt
18885
19879
                          pp f "@[<hv0>@[<hv2>type %a@]%(%)@]" o#ctyp t
18886
19880
                            semisep
18887
19881
                      | Ast.StVal (_, r, bi) ->
18888
 
                          pp f "@[<2>%s %a%a%(%)@]" value_let o#rec_flag r
 
19882
                          pp f "@[<2>%s %a%a%(%)@]" o#value_let o#rec_flag r
18889
19883
                            o#binding bi semisep
18890
19884
                      | Ast.StExp (_, e) ->
18891
19885
                          pp f "@[<2>let _ =@ %a%(%)@]" o#expr e semisep
18934
19928
                      | Ast.WcMod (_, i1, i2) ->
18935
19929
                          pp f "@[<2>module@ %a =@ %a@]" o#ident i1 o#ident
18936
19930
                            i2
 
19931
                      | Ast.WcTyS (_, t1, t2) ->
 
19932
                          pp f "@[<2>type@ %a :=@ %a@]" o#ctyp t1 o#ctyp t2
 
19933
                      | Ast.WcMoS (_, i1, i2) ->
 
19934
                          pp f "@[<2>module@ %a :=@ %a@]" o#ident i1 
 
19935
                            o#ident i2
18937
19936
                      | Ast.WcAnd (_, wc1, wc2) ->
18938
19937
                          (o#with_constraint f wc1;
18939
 
                           pp f andsep;
 
19938
                           pp f o#andsep;
18940
19939
                           o#with_constraint f wc2)
18941
19940
                      | Ast.WcAnt (_, s) -> o#anti f s
18942
19941
                  
18973
19972
                      | Ast.MeTyc (_, me, mt) ->
18974
19973
                          pp f "@[<1>(%a :@ %a)@]" o#module_expr me
18975
19974
                            o#module_type mt
 
19975
                      | Ast.MePkg (_,
 
19976
                          (Ast.ExTyc (_, e, (Ast.TyPkg (_, mt))))) ->
 
19977
                          pp f "@[<1>(%s %a :@ %a)@]" o#value_val o#expr e
 
19978
                            o#module_type mt
 
19979
                      | Ast.MePkg (_, e) ->
 
19980
                          pp f "@[<1>(%s %a)@]" o#value_val o#expr e
18976
19981
                  
18977
19982
                method class_expr =
18978
19983
                  fun f ce ->
18981
19986
                      match ce with
18982
19987
                      | Ast.CeApp (_, ce, e) ->
18983
19988
                          pp f "@[<2>%a@ %a@]" o#class_expr ce o#expr e
18984
 
                      | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
 
19989
                      | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
18985
19990
                          pp f "@[<2>%a@]" o#ident i
18986
 
                      | Ast.CeCon (_, Ast.BFalse, i, t) ->
 
19991
                      | Ast.CeCon (_, Ast.ViNil, i, t) ->
18987
19992
                          pp f "@[<2>@[<1>[%a]@]@ %a@]" o#class_params t
18988
19993
                            o#ident i
18989
 
                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
 
19994
                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
18990
19995
                          (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
18991
 
                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
 
19996
                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
 
19997
                          ->
18992
19998
                          pp f "@[<2>virtual@ @[<1>[%a]@]@ %a@]"
18993
19999
                            o#class_params t o#var i
18994
20000
                      | Ast.CeFun (_, p, ce) ->
19010
20016
                      | Ast.CeAnt (_, s) -> o#anti f s
19011
20017
                      | Ast.CeAnd (_, ce1, ce2) ->
19012
20018
                          (o#class_expr f ce1;
19013
 
                           pp f andsep;
 
20019
                           pp f o#andsep;
19014
20020
                           o#class_expr f ce2)
19015
20021
                      | Ast.CeEq (_, ce1, (Ast.CeFun (_, p, ce2))) when
19016
20022
                          is_irrefut_patt p ->
19026
20032
                    let () = o#node f ct Ast.loc_of_class_type
19027
20033
                    in
19028
20034
                      match ct with
19029
 
                      | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
 
20035
                      | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
19030
20036
                          pp f "@[<2>%a@]" o#ident i
19031
 
                      | Ast.CtCon (_, Ast.BFalse, i, t) ->
 
20037
                      | Ast.CtCon (_, Ast.ViNil, i, t) ->
19032
20038
                          pp f "@[<2>[@,%a@]@,]@ %a" o#class_params t 
19033
20039
                            o#ident i
19034
 
                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
 
20040
                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
19035
20041
                          (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
19036
 
                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
 
20042
                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
 
20043
                          ->
19037
20044
                          pp f "@[<2>virtual@ [@,%a@]@,]@ %a" o#class_params
19038
20045
                            t o#var i
19039
20046
                      | Ast.CtFun (_, t, ct) ->
19049
20056
                      | Ast.CtAnt (_, s) -> o#anti f s
19050
20057
                      | Ast.CtAnd (_, ct1, ct2) ->
19051
20058
                          (o#class_type f ct1;
19052
 
                           pp f andsep;
 
20059
                           pp f o#andsep;
19053
20060
                           o#class_type f ct2)
19054
20061
                      | Ast.CtCol (_, ct1, ct2) ->
19055
20062
                          pp f "%a :@ %a" o#class_type ct1 o#class_type ct2
19083
20090
                          pp f "@[<2>method virtual %a%a :@ %a%(%)@]"
19084
20091
                            o#private_flag pr o#var s o#ctyp t semisep
19085
20092
                      | Ast.CgVal (_, s, mu, vi, t) ->
19086
 
                          pp f "@[<2>%s %a%a%a :@ %a%(%)@]" value_val
 
20093
                          pp f "@[<2>%s %a%a%a :@ %a%(%)@]" o#value_val
19087
20094
                            o#mutable_flag mu o#virtual_flag vi o#var s
19088
20095
                            o#ctyp t semisep
19089
20096
                      | Ast.CgAnt (_, s) -> pp f "%a%(%)" o#anti s semisep
19104
20111
                      | Ast.CrCtr (_, t1, t2) ->
19105
20112
                          pp f "@[<2>constraint %a =@ %a%(%)@]" o#ctyp t1
19106
20113
                            o#ctyp t2 semisep
19107
 
                      | Ast.CrInh (_, ce, "") ->
19108
 
                          pp f "@[<2>inherit@ %a%(%)@]" o#class_expr ce
 
20114
                      | Ast.CrInh (_, ov, ce, "") ->
 
20115
                          pp f "@[<2>inherit%a@ %a%(%)@]" o#override_flag ov
 
20116
                            o#class_expr ce semisep
 
20117
                      | Ast.CrInh (_, ov, ce, s) ->
 
20118
                          pp f "@[<2>inherit%a@ %a as@ %a%(%)@]"
 
20119
                            o#override_flag ov o#class_expr ce o#var s
19109
20120
                            semisep
19110
 
                      | Ast.CrInh (_, ce, s) ->
19111
 
                          pp f "@[<2>inherit@ %a as@ %a%(%)@]" o#class_expr
19112
 
                            ce o#var s semisep
19113
20121
                      | Ast.CrIni (_, e) ->
19114
20122
                          pp f "@[<2>initializer@ %a%(%)@]" o#expr e semisep
19115
 
                      | Ast.CrMth (_, s, pr, e, (Ast.TyNil _)) ->
19116
 
                          pp f "@[<2>method %a%a =@ %a%(%)@]" o#private_flag
19117
 
                            pr o#var s o#expr e semisep
19118
 
                      | Ast.CrMth (_, s, pr, e, t) ->
19119
 
                          pp f "@[<2>method %a%a :@ %a =@ %a%(%)@]"
19120
 
                            o#private_flag pr o#var s o#ctyp t o#expr e
19121
 
                            semisep
 
20123
                      | Ast.CrMth (_, s, ov, pr, e, (Ast.TyNil _)) ->
 
20124
                          pp f "@[<2>method%a %a%a =@ %a%(%)@]"
 
20125
                            o#override_flag ov o#private_flag pr o#var s
 
20126
                            o#expr e semisep
 
20127
                      | Ast.CrMth (_, s, ov, pr, e, t) ->
 
20128
                          pp f "@[<2>method%a %a%a :@ %a =@ %a%(%)@]"
 
20129
                            o#override_flag ov o#private_flag pr o#var s
 
20130
                            o#ctyp t o#expr e semisep
19122
20131
                      | Ast.CrVir (_, s, pr, t) ->
19123
20132
                          pp f "@[<2>method virtual@ %a%a :@ %a%(%)@]"
19124
20133
                            o#private_flag pr o#var s o#ctyp t semisep
19125
20134
                      | Ast.CrVvr (_, s, mu, t) ->
19126
 
                          pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" value_val
 
20135
                          pp f "@[<2>%s virtual %a%a :@ %a%(%)@]" o#value_val
19127
20136
                            o#mutable_flag mu o#var s o#ctyp t semisep
19128
 
                      | Ast.CrVal (_, s, mu, e) ->
19129
 
                          pp f "@[<2>%s %a%a =@ %a%(%)@]" value_val
19130
 
                            o#mutable_flag mu o#var s o#expr e semisep
 
20137
                      | Ast.CrVal (_, s, ov, mu, e) ->
 
20138
                          pp f "@[<2>%s%a %a%a =@ %a%(%)@]" o#value_val
 
20139
                            o#override_flag ov o#mutable_flag mu o#var s
 
20140
                            o#expr e semisep
19131
20141
                      | Ast.CrAnt (_, s) -> pp f "%a%(%)" o#anti s semisep
19132
20142
                  
19133
20143
                method implem =
19304
20314
                  PP_o.printer ~curry_constr: init_curry_constr ~comments () as
19305
20315
                  super
19306
20316
                  
19307
 
                val semisep = (";" : sep)
19308
 
                  
19309
 
                val andsep = ("@]@ @[<2>and@ " : sep)
19310
 
                  
19311
 
                val value_val = "value"
19312
 
                  
19313
 
                val value_let = "value"
 
20317
                val! semisep = (";" : sep)
19314
20318
                  
19315
20319
                val mode = if comments then `comments else `no_comments
19316
20320
                  
19318
20322
                  
19319
20323
                val first_match_case = true
19320
20324
                  
 
20325
                method andsep : sep = "@]@ @[<2>and@ "
 
20326
                  
 
20327
                method value_val = "value"
 
20328
                  
 
20329
                method value_let = "value"
 
20330
                  
19321
20331
                method under_pipe = o
19322
20332
                  
19323
20333
                method under_semi = o
19410
20420
                          pp f "@[<2>%a@ when@ %a@ ->@ %a@]" o#patt p
19411
20421
                            o#under_pipe#expr w o#under_pipe#expr e
19412
20422
                  
19413
 
                method sum_type = fun f t -> pp f "@[<hv0>[ %a ]@]" o#ctyp t
 
20423
                method sum_type =
 
20424
                  fun f ->
 
20425
                    function
 
20426
                    | Ast.TyNil _ -> pp f "[]"
 
20427
                    | t -> pp f "@[<hv0>[ %a ]@]" o#ctyp t
19414
20428
                  
19415
20429
                method ident =
19416
20430
                  fun f i ->
19469
20483
                          pp f "@[<2>%a@ :=@ %a@]" o#dot_expr e1 o#expr e2
19470
20484
                      | Ast.ExFun (_, (Ast.McArr (_, p, (Ast.ExNil _), e)))
19471
20485
                          when Ast.is_irrefut_patt p ->
19472
 
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args (p, e)
 
20486
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
 
20487
                            ((`patt p), e)
 
20488
                      | Ast.ExFUN (_, i, e) ->
 
20489
                          pp f "@[<2>fun@ %a@]" o#patt_expr_fun_args
 
20490
                            ((`newtype i), e)
19473
20491
                      | Ast.ExFun (_, a) ->
19474
20492
                          pp f "@[<hv0>fun%a@]" o#match_case a
19475
20493
                      | Ast.ExAsf _ -> pp f "@[<2>assert@ False@]"
19585
20603
                      | Ast.CtFun (_, t, ct) ->
19586
20604
                          pp f "@[<2>[ %a ] ->@ %a@]" o#simple_ctyp t
19587
20605
                            o#class_type ct
19588
 
                      | Ast.CtCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
 
20606
                      | Ast.CtCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
19589
20607
                          pp f "@[<2>%a@]" o#ident i
19590
 
                      | Ast.CtCon (_, Ast.BFalse, i, t) ->
 
20608
                      | Ast.CtCon (_, Ast.ViNil, i, t) ->
19591
20609
                          pp f "@[<2>%a [@,%a@]@,]" o#ident i o#class_params
19592
20610
                            t
19593
 
                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
 
20611
                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
19594
20612
                          (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
19595
 
                      | Ast.CtCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
 
20613
                      | Ast.CtCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
 
20614
                          ->
19596
20615
                          pp f "@[<2>virtual@ %a@ [@,%a@]@,]" o#var i
19597
20616
                            o#class_params t
19598
20617
                      | ct -> super#class_type f ct
19602
20621
                    let () = o#node f ce Ast.loc_of_class_expr
19603
20622
                    in
19604
20623
                      match ce with
19605
 
                      | Ast.CeCon (_, Ast.BFalse, i, (Ast.TyNil _)) ->
 
20624
                      | Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
19606
20625
                          pp f "@[<2>%a@]" o#ident i
19607
 
                      | Ast.CeCon (_, Ast.BFalse, i, t) ->
 
20626
                      | Ast.CeCon (_, Ast.ViNil, i, t) ->
19608
20627
                          pp f "@[<2>%a@ @[<1>[%a]@]@]" o#ident i
19609
20628
                            o#class_params t
19610
 
                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)),
 
20629
                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
19611
20630
                          (Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
19612
 
                      | Ast.CeCon (_, Ast.BTrue, (Ast.IdLid (_, i)), t) ->
 
20631
                      | Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
 
20632
                          ->
19613
20633
                          pp f "@[<2>virtual@ %a@ @[<1>[%a]@]@]" o#var i
19614
20634
                            o#ctyp t
19615
20635
                      | ce -> super#class_expr f ce
19618
20638
              
19619
20639
            let with_outfile = with_outfile
19620
20640
              
19621
 
            let print = print
19622
 
              
19623
 
            let print_interf = print_interf
19624
 
              
19625
 
            let print_implem = print_implem
 
20641
            let print output_file fct =
 
20642
              let o = new printer () in with_outfile output_file (fct o)
 
20643
              
 
20644
            let print_interf ?input_file:(_) ?output_file sg =
 
20645
              print output_file (fun o -> o#interf) sg
 
20646
              
 
20647
            let print_implem ?input_file:(_) ?output_file st =
 
20648
              print output_file (fun o -> o#implem) st
19626
20649
              
19627
20650
          end
19628
20651
          
19806
20829
          
19807
20830
        let direction_flag = Gram.Entry.mk "direction_flag"
19808
20831
          
 
20832
        let direction_flag_quot = Gram.Entry.mk "direction_flag_quot"
 
20833
          
19809
20834
        let dummy = Gram.Entry.mk "dummy"
19810
20835
          
19811
20836
        let entry_eoi = Gram.Entry.mk "entry_eoi"
19879
20904
          
19880
20905
        let module_type = Gram.Entry.mk "module_type"
19881
20906
          
 
20907
        let package_type = Gram.Entry.mk "package_type"
 
20908
          
19882
20909
        let more_ctyp = Gram.Entry.mk "more_ctyp"
19883
20910
          
19884
20911
        let name_tags = Gram.Entry.mk "name_tags"
19897
20924
          
19898
20925
        let opt_dot_dot = Gram.Entry.mk "opt_dot_dot"
19899
20926
          
 
20927
        let row_var_flag_quot = Gram.Entry.mk "row_var_flag_quot"
 
20928
          
19900
20929
        let opt_eq_ctyp = Gram.Entry.mk "opt_eq_ctyp"
19901
20930
          
19902
20931
        let opt_expr = Gram.Entry.mk "opt_expr"
19905
20934
          
19906
20935
        let opt_mutable = Gram.Entry.mk "opt_mutable"
19907
20936
          
 
20937
        let mutable_flag_quot = Gram.Entry.mk "mutable_flag_quot"
 
20938
          
19908
20939
        let opt_polyt = Gram.Entry.mk "opt_polyt"
19909
20940
          
19910
20941
        let opt_private = Gram.Entry.mk "opt_private"
19911
20942
          
 
20943
        let private_flag_quot = Gram.Entry.mk "private_flag_quot"
 
20944
          
19912
20945
        let opt_rec = Gram.Entry.mk "opt_rec"
19913
20946
          
 
20947
        let rec_flag_quot = Gram.Entry.mk "rec_flag_quot"
 
20948
          
19914
20949
        let opt_sig_items = Gram.Entry.mk "opt_sig_items"
19915
20950
          
19916
20951
        let opt_str_items = Gram.Entry.mk "opt_str_items"
19917
20952
          
19918
20953
        let opt_virtual = Gram.Entry.mk "opt_virtual"
19919
20954
          
 
20955
        let virtual_flag_quot = Gram.Entry.mk "virtual_flag_quot"
 
20956
          
 
20957
        let opt_override = Gram.Entry.mk "opt_override"
 
20958
          
 
20959
        let override_flag_quot = Gram.Entry.mk "override_flag_quot"
 
20960
          
19920
20961
        let opt_when_expr = Gram.Entry.mk "opt_when_expr"
19921
20962
          
19922
20963
        let patt = Gram.Entry.mk "patt"