1(* First, a number of bogus declarations *) 2 3type info = unit; 4type scon = unit 5type longid = unit 6type tycon = unit 7type longtycon = unit 8type longstrid = unit 9type id = unit 10type funid = unit 11type strid = unit 12type sigid = unit 13 14datatype 'a op_opt = OP_OPT of 'a * bool 15datatype 'a WithInfo = WITH_INFO of info * 'a 16 17 datatype atexp = 18 SCONatexp of info * scon | 19 IDENTatexp of info * longid op_opt | 20 RECORDatexp of info * exprow option | 21 LETatexp of info * dec * exp | 22 PARatexp of info * exp 23 24 and opid = OPID of longid * bool 25 26 and exprow = 27 EXPROW of info * lab * exp * exprow option 28 29 and exp = 30 ATEXPexp of info * atexp | 31 APPexp of info * exp * atexp | 32 TYPEDexp of info * exp * ty | 33 HANDLEexp of info * exp * match | 34 RAISEexp of info * exp | 35 FNexp of info * match | 36 UNRES_INFIXexp of info * atexp list 37 38 and match = 39 MATCH of info * mrule * match option 40 41 and mrule = 42 MRULE of info * pat * exp 43 44 and dec = 45 VALdec of info * tyvar list * valbind | 46 UNRES_FUNdec of info * tyvar list * FValBind | 47 TYPEdec of info * typbind | 48 DATATYPEdec of info * datbind | 49 DATATYPE_REPLICATIONdec of info * tycon * longtycon | 50 ABSTYPEdec of info * datbind * dec | 51 EXCEPTIONdec of info * exbind | 52 LOCALdec of info * dec * dec | 53 OPENdec of info * longstrid WithInfo list | 54 SEQdec of info * dec * dec | 55 INFIXdec of info * int option * id list | 56 INFIXRdec of info * int option * id list | 57 NONFIXdec of info * id list | 58 EMPTYdec of info 59 60 and valbind = 61 PLAINvalbind of info * pat * exp * valbind option | 62 RECvalbind of info * valbind 63 64 and FValBind = FVALBIND of info * FClause * FValBind option 65 and FClause = FCLAUSE of info * atpat list * ty option * exp * FClause option 66 67 and typbind = 68 TYPBIND of info * tyvar list * tycon * ty * typbind option 69 70 and datbind = 71 DATBIND of info * tyvar list * tycon * conbind * datbind option 72 73 and conbind = 74 CONBIND of info * id op_opt * ty option * conbind option 75 76 and exbind = 77 EXBIND of info * id op_opt * ty option * exbind option | 78 EXEQUAL of info * id op_opt * longid op_opt * exbind option 79 80 and atpat = 81 WILDCARDatpat of info | 82 SCONatpat of info * scon | 83 LONGIDatpat of info * longid op_opt | 84 RECORDatpat of info * patrow option | 85 PARatpat of info * pat 86 87 and patrow = 88 DOTDOTDOT of info | 89 PATROW of info * lab * pat * patrow option 90 91 and pat = 92 ATPATpat of info * atpat | 93 CONSpat of info * longid op_opt * atpat | 94 TYPEDpat of info * pat * ty | 95 LAYEREDpat of info * id op_opt * ty option * pat | 96 UNRES_INFIXpat of info * atpat list 97 98 and ty = 99 TYVARty of info * tyvar | 100 RECORDty of info * tyrow option | 101 CONty of info * ty list * longtycon | 102 FNty of info * ty * ty | 103 PARty of info * ty 104 105 and tyrow = 106 TYROW of info * lab * ty * tyrow option 107 108 datatype strexp = 109 STRUCTstrexp of info * strdec | 110 LONGSTRIDstrexp of info * longstrid | 111 TRANSPARENT_CONSTRAINTstrexp of info * strexp * sigexp | 112 OPAQUE_CONSTRAINTstrexp of info * strexp * sigexp | 113 APPstrexp of info * funid * strexp | 114 LETstrexp of info * strdec * strexp 115 116 and strdec = 117 DECstrdec of info * dec | 118 STRUCTUREstrdec of info * strbind | 119 LOCALstrdec of info * strdec * strdec | 120 EMPTYstrdec of info | 121 SEQstrdec of info * strdec * strdec 122 123 and strbind = 124 STRBIND of info * strid * strexp * strbind option 125 126 and sigexp = 127 SIGsigexp of info * spec | 128 SIGIDsigexp of info * sigid | 129 WHERE_TYPEsigexp of info * sigexp * tyvar list * longtycon * ty 130 131 132 and sigdec = 133 SIGNATUREsigdec of info * sigbind 134 135 and sigbind = 136 SIGBIND of info * sigid * sigexp * sigbind option 137 138 (* Figure 7 *) 139 140 and spec = 141 VALspec of info * valdesc | 142 TYPEspec of info * typdesc | 143 EQTYPEspec of info * typdesc | 144 DATATYPEspec of info * datdesc | 145 DATATYPE_REPLICATIONspec of info * tycon * longtycon | 146 EXCEPTIONspec of info * exdesc | 147 STRUCTUREspec of info * strdesc | 148 INCLUDEspec of info * sigexp | 149 SHARING_TYPEspec of info * spec * longtycon WithInfo list | 150 SHARINGspec of info * spec * longstrid WithInfo list | 151 EMPTYspec of info | 152 SEQspec of info * spec * spec 153 154 and valdesc = 155 VALDESC of info * id * ty * valdesc option 156 157 and typdesc = 158 TYPDESC of info * tyvar list * tycon * typdesc option 159 160 and datdesc = 161 DATDESC of info * tyvar list * tycon * condesc * datdesc option 162 163 and condesc = 164 CONDESC of info * id * ty option * condesc option 165 166 and exdesc = 167 EXDESC of info * id * ty option * exdesc option 168 169 and strdesc = 170 STRDESC of info * strid * sigexp * strdesc option 171 172 (* Figure 8 *) 173 174 and fundec = 175 FUNCTORfundec of info * funbind 176 177 and funbind = 178 FUNBIND of info * funid * strid * sigexp * strexp * funbind option 179 180 and topdec = 181 STRtopdec of info * strdec * topdec option | 182 SIGtopdec of info * sigdec * topdec option | 183 FUNtopdec of info * fundec * topdec option 184 185fun mk_IdentLab _ = let fun loop () = loop () in loop () end; 186fun mk_IntegerLab _ = let fun loop () = loop () in loop () end; 187fun PP _ = let fun loop () = loop () in loop () end; 188fun topdecOfExp _ = let fun loop () = loop () in loop () end; 189fun rightmost _ = let fun loop () = loop () in loop () end; 190fun mk_FunId _ = let fun loop () = loop () in loop () end; 191 192 193type pos = int; 194 195structure MlyValue = 196struct 197datatype svalue = VOID | ntVOID of unit -> unit 198 | TYVAR of unit -> (string) | ID of unit -> (string) 199 | STRING of unit -> (string) | REAL of unit -> (string option) 200 | WORD of unit -> (int option) | DIGIT of unit -> (int) 201 | HEXINTEGER of unit -> (int option) 202 | DECNEGINTEGER of unit -> (int option) 203 | DECPOSINTEGER of unit -> (int option) 204 | QUAL_STAR of unit -> (string list) 205 | QUAL_ID of unit -> (string list) | Char of unit -> (int) 206 | Integer of unit -> (int) | DecPosInteger of unit -> (int) 207 | Label of unit -> (lab) 208 | LongOpEqIdent of unit -> (string list op_opt) 209 | LongOpIdent of unit -> (string list op_opt) 210 | LongIdent of unit -> (string list) 211 | LongTypeIdent of unit -> (string list) 212 | TypeIdent of unit -> (string) | EqIdent of unit -> (string) 213 | OpIdent of unit -> (string op_opt) | Ident of unit -> (string) 214 | OneDec_sans_LOCAL of unit -> (dec) | OneDec of unit -> (dec) 215 | DIGIT_opt of unit -> (int option) 216 | LongTypeIdentEq_seq2 of unit -> (string list WithInfo list) 217 | LongIdentEq_seq2 of unit -> (string list WithInfo list) 218 | LongIdent_seq1 of unit -> (string list WithInfo list) 219 | EqIdent_seq1 of unit -> (string list) 220 | Ident_seq2 of unit -> (string WithInfo list) 221 | NonEmptyDec of unit -> (dec) 222 | OneDec_or_SEMICOLON of unit -> (dec option) 223 | TyComma_seq2 of unit -> (ty list) 224 | TyVarComma_seq1 of unit -> (tyvar list) 225 | TyVarSeq1 of unit -> (tyvar list) 226 | ExpSemicolon_seq2 of unit -> (exp list) 227 | AtPat_seq1 of unit -> (atpat list) 228 | AtPat_seq2 of unit -> (atpat list) 229 | AtExp_seq1 of unit -> (atexp list) 230 | PatComma_seq2 of unit -> (pat list) 231 | PatComma_seq1 of unit -> (pat list) 232 | PatComma_seq0 of unit -> (pat list) 233 | ExpComma_seq2 of unit -> (exp list) 234 | ExpComma_seq1 of unit -> (exp list) 235 | ExpComma_seq0 of unit -> (exp list) 236 | OfTy_opt of unit -> (ty option) 237 | CommaTyRow_opt of unit -> (tyrow option) 238 | TyRow_opt of unit -> (tyrow option) 239 | ColonTy_seq1 of unit -> ( ( ty * pos ) list) 240 | ColonTy_opt of unit -> (ty option) 241 | CommaPatRow_opt of unit -> (patrow option) 242 | AsPat_opt of unit -> (pat option) 243 | PatRow_opt of unit -> (patrow option) 244 | ExpRow_opt of unit -> (exprow option) 245 | AndExBind_opt of unit -> (exbind option) 246 | BarMatch_opt of unit -> (match option) 247 | BarConBind_opt of unit -> (conbind option) 248 | AndDatBind_opt of unit -> (datbind option) 249 | AndTypBind_opt of unit -> (typbind option) 250 | BarFClause_opt of unit -> (FClause option) 251 | AndFValBind_opt of unit -> (FValBind option) 252 | AndFnValBind_opt of unit -> (valbind option) 253 | AndValBind_opt of unit -> (valbind option) 254 | CommaExpRow_opt of unit -> (exprow option) 255 | FClause of unit -> (FClause) | AtExp of unit -> (atexp) 256 | ExpRow of unit -> (exprow) | Match_ of unit -> (match) 257 | Exp_ of unit -> (exp) | MRule of unit -> (mrule) 258 | Dec of unit -> (dec) | FValBind of unit -> (FValBind) 259 | FnValBind of unit -> (valbind) | ValBind of unit -> (valbind) 260 | TypBind of unit -> (typbind) 261 | DatBind_nonzero_arity of unit -> (datbind) 262 | DatBind_zero_arity of unit -> (datbind) 263 | DatBind of unit -> (datbind) | ConBind of unit -> (conbind) 264 | ExBind of unit -> (exbind) | AtPat of unit -> (atpat) 265 | PatRow of unit -> (patrow) | Pat of unit -> (pat) 266 | SCon of unit -> (scon) | TyVarSeq of unit -> (tyvar list) 267 | AtomicTy of unit -> (ty) | Ty_sans_STAR of unit -> (ty) 268 | TupleTy of unit -> (ty list) | Ty of unit -> (ty) 269 | TyRow of unit -> (tyrow) 270 | AndWhereDesc_opt of unit -> ( ( pos * sigexp -> sigexp ) option) 271 | WhereDesc of unit -> (pos*sigexp -> sigexp) 272 | NonEmptyStrDec of unit -> (strdec) 273 | OneStrDec_or_SEMICOLON of unit -> (strdec option) 274 | NonEmptySpec' of unit -> (spec) 275 | Spec_sans_SHARING of unit -> (spec) 276 | NonEmptySpec of unit -> (spec) 277 | OneSpec_or_SEMICOLON of unit -> (spec option) 278 | SEMICOLON_opt of unit -> (unit) 279 | AndValDesc_opt of unit -> (valdesc option) 280 | TypAbbreviationAND_seq1 of unit -> ( ( tyvar list * tycon * ty * info * info ) list) 281 | AndTypDesc_opt of unit -> (typdesc option) 282 | AndDatDesc_opt of unit -> (datdesc option) 283 | BarConDesc_opt of unit -> (condesc option) 284 | AndExDesc_opt of unit -> (exdesc option) 285 | AndStrDesc_opt of unit -> (strdesc option) 286 | AndSigBind_opt of unit -> (sigbind option) 287 | AndStrBind_opt of unit -> (strbind option) 288 | AndFunBind_opt of unit -> (funbind option) 289 | SigExp_constraint_maybe of unit -> (pos -> strexp -> strexp) 290 | SigExp_constraint of unit -> (pos -> strexp -> strexp) 291 | StrExp of unit -> (strexp) | StrDec of unit -> (strdec) 292 | StrBind of unit -> (strbind) | SigExp of unit -> (sigexp) 293 | SigBind of unit -> (sigbind) | OneSpec of unit -> (spec) 294 | Spec of unit -> (spec) | ValDesc of unit -> (valdesc) 295 | TypAbbreviation of unit -> (tyvar list*tycon*ty*info*info) 296 | TypDesc of unit -> (typdesc) 297 | DatDesc_nonzero_arity of unit -> (datdesc) 298 | DatDesc_zero_arity of unit -> (datdesc) 299 | DatDesc of unit -> (datdesc) | ConDesc of unit -> (condesc) 300 | ExDesc of unit -> (exdesc) | StrDesc of unit -> (strdesc) 301 | FunBind of unit -> (funbind) | OneStrDec of unit -> (strdec) 302 | FunDec of unit -> (fundec) 303 | StrDec_sans_SEMICOLON of unit -> (strdec) 304 | SigDec of unit -> (sigdec) 305 | TopDec_opt of unit -> (topdec option) 306 | TopDec_ of unit -> (topdec) | TopDec of unit -> (topdec) 307end 308 309 310structure LrTable = struct 311 datatype t = NT of int 312end 313 314structure Actions = 315struct 316exception mlyAction of int 317 318 319(* cvr: begin *) 320local in 321val actions = 322fn (i392,defaultPos,stack, 323 (())) => 324case (i392,stack) 325of (0,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 326result=MlyValue.Ident(fn _ => let val ID as ID1=ID1 () 327 in ( ID ) end 328) 329 in (LrTable.NT 113,(result,ID1left,ID1right),rest671) end 330| (1,(_,(_,STAR1left,STAR1right))::rest671) => let val result= 331MlyValue.Ident(fn _ => ( "*" )) 332 in (LrTable.NT 113,(result,STAR1left,STAR1right),rest671) end 333| (2,(_,(MlyValue.Ident Ident1,Ident1left,Ident1right))::rest671) => 334let val result=MlyValue.OpIdent(fn _ => let val Ident as Ident1=Ident1 335 () 336 in ( OP_OPT(Ident, false) ) end 337) 338 in (LrTable.NT 114,(result,Ident1left,Ident1right),rest671) end 339| (3,(_,(MlyValue.Ident Ident1,_,Ident1right))::(_,(_,OP1left,_)):: 340rest671) => let val result=MlyValue.OpIdent(fn _ => let val Ident as 341Ident1=Ident1 () 342 in ( OP_OPT(Ident, true) ) end 343) 344 in (LrTable.NT 114,(result,OP1left,Ident1right),rest671) end 345| (4,(_,(MlyValue.Ident Ident1,Ident1left,Ident1right))::rest671) => 346let val result=MlyValue.EqIdent(fn _ => let val Ident as Ident1=Ident1 347 () 348 in ( Ident ) end 349) 350 in (LrTable.NT 115,(result,Ident1left,Ident1right),rest671) end 351| (5,(_,(_,EQUALS1left,EQUALS1right))::rest671) => let val result= 352MlyValue.EqIdent(fn _ => ( "=" )) 353 in (LrTable.NT 115,(result,EQUALS1left,EQUALS1right),rest671) end 354| (6,(_,(MlyValue.ID ID1,ID1left,ID1right))::rest671) => let val 355result=MlyValue.TypeIdent(fn _ => let val ID as ID1=ID1 () 356 in ( ID ) end 357) 358 in (LrTable.NT 116,(result,ID1left,ID1right),rest671) end 359| (7,(_,(MlyValue.TypeIdent TypeIdent1,TypeIdent1left,TypeIdent1right) 360)::rest671) => let val result=MlyValue.LongTypeIdent(fn _ => let val 361TypeIdent as TypeIdent1=TypeIdent1 () 362 in ( [TypeIdent] ) end 363) 364 in (LrTable.NT 117,(result,TypeIdent1left,TypeIdent1right),rest671) 365 end 366| (8,(_,(MlyValue.QUAL_ID QUAL_ID1,QUAL_ID1left,QUAL_ID1right)):: 367rest671) => let val result=MlyValue.LongTypeIdent(fn _ => let val 368QUAL_ID as QUAL_ID1=QUAL_ID1 () 369 in ( QUAL_ID ) end 370) 371 in (LrTable.NT 117,(result,QUAL_ID1left,QUAL_ID1right),rest671) end 372| (9,(_,(MlyValue.Ident Ident1,Ident1left,Ident1right))::rest671) => 373let val result=MlyValue.LongIdent(fn _ => let val Ident as Ident1= 374Ident1 () 375 in ( [Ident] ) end 376) 377 in (LrTable.NT 118,(result,Ident1left,Ident1right),rest671) end 378| (10,(_,(MlyValue.QUAL_ID QUAL_ID1,QUAL_ID1left,QUAL_ID1right)):: 379rest671) => let val result=MlyValue.LongIdent(fn _ => let val QUAL_ID 380 as QUAL_ID1=QUAL_ID1 () 381 in ( QUAL_ID ) end 382) 383 in (LrTable.NT 118,(result,QUAL_ID1left,QUAL_ID1right),rest671) end 384| (11,(_,(MlyValue.QUAL_STAR QUAL_STAR1,QUAL_STAR1left,QUAL_STAR1right 385))::rest671) => let val result=MlyValue.LongIdent(fn _ => let val 386QUAL_STAR as QUAL_STAR1=QUAL_STAR1 () 387 in ( QUAL_STAR ) end 388) 389 in (LrTable.NT 118,(result,QUAL_STAR1left,QUAL_STAR1right),rest671) 390 end 391| (12,(_,(MlyValue.LongIdent LongIdent1,LongIdent1left,LongIdent1right 392))::rest671) => let val result=MlyValue.LongOpIdent(fn _ => let val 393LongIdent as LongIdent1=LongIdent1 () 394 in ( OP_OPT(LongIdent, false) ) end 395) 396 in (LrTable.NT 119,(result,LongIdent1left,LongIdent1right),rest671) 397 end 398| (13,(_,(MlyValue.LongIdent LongIdent1,_,LongIdent1right))::(_,(_, 399OP1left,_))::rest671) => let val result=MlyValue.LongOpIdent(fn _ => 400let val LongIdent as LongIdent1=LongIdent1 () 401 in ( OP_OPT(LongIdent, true) ) end 402) 403 in (LrTable.NT 119,(result,OP1left,LongIdent1right),rest671) end 404| (14,(_,(MlyValue.LongOpIdent LongOpIdent1,LongOpIdent1left, 405LongOpIdent1right))::rest671) => let val result=MlyValue.LongOpEqIdent 406(fn _ => let val LongOpIdent as LongOpIdent1=LongOpIdent1 () 407 in ( LongOpIdent ) end 408) 409 in (LrTable.NT 120,(result,LongOpIdent1left,LongOpIdent1right), 410rest671) end 411| (15,(_,(_,EQUALS1left,EQUALS1right))::rest671) => let val result= 412MlyValue.LongOpEqIdent(fn _ => ( OP_OPT(["="], false) )) 413 in (LrTable.NT 120,(result,EQUALS1left,EQUALS1right),rest671) end 414| (16,(_,(_,_,EQUALS1right))::(_,(_,OP1left,_))::rest671) => let val 415result=MlyValue.LongOpEqIdent(fn _ => ( OP_OPT(["="], true) )) 416 in (LrTable.NT 120,(result,OP1left,EQUALS1right),rest671) end 417| (17,(_,(MlyValue.DIGIT DIGIT1,DIGIT1left,DIGIT1right))::rest671) => 418let val result=MlyValue.DIGIT_opt(fn _ => let val DIGIT as DIGIT1= 419DIGIT1 () 420 in ( SOME DIGIT ) end 421) 422 in (LrTable.NT 110,(result,DIGIT1left,DIGIT1right),rest671) end 423| (18,rest671) => let val result=MlyValue.DIGIT_opt(fn _ => ( NONE )) 424 in (LrTable.NT 110,(result,defaultPos,defaultPos),rest671) end 425| (19,(_,(MlyValue.DECPOSINTEGER DECPOSINTEGER1,DECPOSINTEGERleft as 426DECPOSINTEGER1left,DECPOSINTEGER1right))::rest671) => let val result= 427MlyValue.DecPosInteger(fn _ => let val DECPOSINTEGER as DECPOSINTEGER1 428=DECPOSINTEGER1 () 429 in ( 430 (* raise_lexical_error_if_none *) 431 DECPOSINTEGERleft; DECPOSINTEGER; raise Fail "bogus") 432 end 433) 434 in (LrTable.NT 122,(result,DECPOSINTEGER1left,DECPOSINTEGER1right), 435rest671) end 436| (20,(_,(MlyValue.DIGIT DIGIT1,DIGIT1left,DIGIT1right))::rest671) => 437let val result=MlyValue.DecPosInteger(fn _ => let val DIGIT as DIGIT1= 438DIGIT1 () 439 in ( DIGIT ) end 440) 441 in (LrTable.NT 122,(result,DIGIT1left,DIGIT1right),rest671) end 442| (21,(_,(MlyValue.Ident Ident1,Ident1left,Ident1right))::rest671) => 443let val result=MlyValue.Label(fn _ => let val Ident as Ident1=Ident1 444() 445 in ( mk_IdentLab Ident ) end 446) 447 in (LrTable.NT 121,(result,Ident1left,Ident1right),rest671) end 448| (22,(_,(MlyValue.DecPosInteger DecPosInteger1,DecPosInteger1left, 449DecPosInteger1right))::rest671) => let val result=MlyValue.Label(fn _ 450 => let val DecPosInteger as DecPosInteger1=DecPosInteger1 () 451 in ( mk_IntegerLab DecPosInteger ) end 452) 453 in (LrTable.NT 121,(result,DecPosInteger1left,DecPosInteger1right), 454rest671) end 455| (23,(_,(MlyValue.Ident_seq2 Ident_seq21,_,Ident_seq21right))::(_,( 456MlyValue.Ident Ident1,Identleft as Ident1left,Identright))::rest671) 457 => let val result=MlyValue.Ident_seq2(fn _ => let val Ident as Ident1 458=Ident1 () 459val Ident_seq2 as Ident_seq21=Ident_seq21 () 460 in ( 461 WITH_INFO(PP Identleft Identright, Ident) 462 :: Ident_seq2 463 464) end 465) 466 in (LrTable.NT 105,(result,Ident1left,Ident_seq21right),rest671) end 467| (24,(_,(MlyValue.Ident Ident2,Ident2left,Ident2right))::(_,( 468MlyValue.Ident Ident1,Ident1left,Ident1right))::rest671) => let val 469result=MlyValue.Ident_seq2(fn _ => let val Ident1=Ident1 () 470val Ident2=Ident2 () 471 in ( 472 [WITH_INFO(PP Ident1left Ident1right, Ident1), 473 WITH_INFO(PP Ident2left Ident2right, Ident2)] 474) end 475) 476 in (LrTable.NT 105,(result,Ident1left,Ident2right),rest671) end 477| (25,(_,(MlyValue.EqIdent_seq1 EqIdent_seq11,_,EqIdent_seq11right)):: 478(_,(MlyValue.EqIdent EqIdent1,EqIdent1left,_))::rest671) => let val 479result=MlyValue.EqIdent_seq1(fn _ => let val EqIdent as EqIdent1= 480EqIdent1 () 481val EqIdent_seq1 as EqIdent_seq11=EqIdent_seq11 () 482 in ( EqIdent :: EqIdent_seq1 ) end 483) 484 in (LrTable.NT 106,(result,EqIdent1left,EqIdent_seq11right),rest671) 485 end 486| (26,(_,(MlyValue.EqIdent EqIdent1,EqIdent1left,EqIdent1right)):: 487rest671) => let val result=MlyValue.EqIdent_seq1(fn _ => let val 488EqIdent as EqIdent1=EqIdent1 () 489 in ( [EqIdent] ) end 490) 491 in (LrTable.NT 106,(result,EqIdent1left,EqIdent1right),rest671) end 492| (27,(_,(MlyValue.LongIdent_seq1 LongIdent_seq11,_, 493LongIdent_seq11right))::(_,(MlyValue.LongIdent LongIdent1, 494LongIdentleft as LongIdent1left,LongIdentright))::rest671) => let val 495result=MlyValue.LongIdent_seq1(fn _ => let val LongIdent as LongIdent1 496=LongIdent1 () 497val LongIdent_seq1 as LongIdent_seq11=LongIdent_seq11 () 498 in ( 499 WITH_INFO(PP LongIdentleft LongIdentright, 500 LongIdent 501 ) :: LongIdent_seq1 502 503) end 504) 505 in (LrTable.NT 107,(result,LongIdent1left,LongIdent_seq11right), 506rest671) end 507| (28,(_,(MlyValue.LongIdent LongIdent1,LongIdentleft as 508LongIdent1left,LongIdentright as LongIdent1right))::rest671) => let 509val result=MlyValue.LongIdent_seq1(fn _ => let val LongIdent as 510LongIdent1=LongIdent1 () 511 in ( 512 [WITH_INFO(PP LongIdentleft LongIdentright, 513 LongIdent 514 ) 515 ] 516 517) end 518) 519 in (LrTable.NT 107,(result,LongIdent1left,LongIdent1right),rest671) 520 end 521| (29,(_,(MlyValue.LongIdentEq_seq2 LongIdentEq_seq21,_, 522LongIdentEq_seq21right))::_::(_,(MlyValue.LongIdent LongIdent1, 523LongIdentleft as LongIdent1left,LongIdentright))::rest671) => let val 524result=MlyValue.LongIdentEq_seq2(fn _ => let val LongIdent as 525LongIdent1=LongIdent1 () 526val LongIdentEq_seq2 as LongIdentEq_seq21=LongIdentEq_seq21 () 527 in ( 528 WITH_INFO(PP LongIdentleft LongIdentright, LongIdent) 529 :: LongIdentEq_seq2 530 531) end 532) 533 in (LrTable.NT 108,(result,LongIdent1left,LongIdentEq_seq21right), 534rest671) end 535| (30,(_,(MlyValue.LongIdent LongIdent2,LongIdent2left,LongIdent2right 536))::_::(_,(MlyValue.LongIdent LongIdent1,LongIdent1left, 537LongIdent1right))::rest671) => let val result= 538MlyValue.LongIdentEq_seq2(fn _ => let val LongIdent1=LongIdent1 () 539val LongIdent2=LongIdent2 () 540 in ( 541 [WITH_INFO(PP LongIdent1left LongIdent1right, 542 LongIdent1 543 ), 544 WITH_INFO(PP LongIdent2left LongIdent2right, 545 LongIdent2 546 ) 547 ] 548 549) end 550) 551 in (LrTable.NT 108,(result,LongIdent1left,LongIdent2right),rest671) 552 end 553| (31,(_,(MlyValue.LongTypeIdentEq_seq2 LongTypeIdentEq_seq21,_, 554LongTypeIdentEq_seq21right))::_::(_,(MlyValue.LongTypeIdent 555LongTypeIdent1,LongTypeIdentleft as LongTypeIdent1left, 556LongTypeIdentright))::rest671) => let val result= 557MlyValue.LongTypeIdentEq_seq2(fn _ => let val LongTypeIdent as 558LongTypeIdent1=LongTypeIdent1 () 559val LongTypeIdentEq_seq2 as LongTypeIdentEq_seq21= 560LongTypeIdentEq_seq21 () 561 in ( 562 WITH_INFO(PP LongTypeIdentleft LongTypeIdentright, 563 LongTypeIdent 564 ) 565 :: LongTypeIdentEq_seq2 566 567) end 568) 569 in (LrTable.NT 109,(result,LongTypeIdent1left, 570LongTypeIdentEq_seq21right),rest671) end 571| (32,(_,(MlyValue.LongTypeIdent LongTypeIdent2,LongTypeIdent2left, 572LongTypeIdent2right))::_::(_,(MlyValue.LongTypeIdent LongTypeIdent1, 573LongTypeIdent1left,LongTypeIdent1right))::rest671) => let val result= 574MlyValue.LongTypeIdentEq_seq2(fn _ => let val LongTypeIdent1= 575LongTypeIdent1 () 576val LongTypeIdent2=LongTypeIdent2 () 577 in ( 578 [WITH_INFO(PP LongTypeIdent1left LongTypeIdent1right, 579 LongTypeIdent1 580 ), 581 WITH_INFO(PP LongTypeIdent2left LongTypeIdent2right, 582 LongTypeIdent2 583 ) 584 ] 585 586) end 587) 588 in (LrTable.NT 109,(result,LongTypeIdent1left,LongTypeIdent2right), 589rest671) end 590| (33,(_,(MlyValue.TopDec_ TopDec_1,TopDec_1left,TopDec_1right)):: 591rest671) => let val result=MlyValue.TopDec(fn _ => let val TopDec_ as 592TopDec_1=TopDec_1 () 593 in ( TopDec_ ) end 594) 595 in (LrTable.NT 0,(result,TopDec_1left,TopDec_1right),rest671) end 596| (34,(_,(MlyValue.Exp_ Exp_1,Exp_1left,Exp_1right))::rest671) => let 597val result=MlyValue.TopDec(fn _ => let val Exp_ as Exp_1=Exp_1 () 598 in ( topdecOfExp Exp_ ) end 599) 600 in (LrTable.NT 0,(result,Exp_1left,Exp_1right),rest671) end 601| (35,rest671) => let val result=MlyValue.TopDec(fn _ => ( 602 STRtopdec(PP defaultPos defaultPos, 603 EMPTYstrdec(PP defaultPos defaultPos), NONE) 604)) 605 in (LrTable.NT 0,(result,defaultPos,defaultPos),rest671) end 606| (36,(_,(MlyValue.TopDec_opt TopDec_opt1,_,TopDec_opt1right))::(_,( 607MlyValue.OneStrDec OneStrDec1,OneStrDecleft as OneStrDec1left,_)):: 608rest671) => let val result=MlyValue.TopDec_(fn _ => let val OneStrDec 609 as OneStrDec1=OneStrDec1 () 610val TopDec_opt as TopDec_opt1=TopDec_opt1 () 611 in ( 612 STRtopdec (PP OneStrDecleft 613 (rightmost OneStrDec 614 TopDec_opt), 615 OneStrDec, TopDec_opt) 616) end 617) 618 in (LrTable.NT 1,(result,OneStrDec1left,TopDec_opt1right),rest671) 619 end 620| (37,(_,(MlyValue.TopDec_opt TopDec_opt1,_,TopDec_opt1right))::(_,( 621MlyValue.SigDec SigDec1,SigDecleft as SigDec1left,_))::rest671) => 622let val result=MlyValue.TopDec_(fn _ => let val SigDec as SigDec1= 623SigDec1 () 624val TopDec_opt as TopDec_opt1=TopDec_opt1 () 625 in ( 626 SIGtopdec (PP SigDecleft 627 (rightmost SigDec 628 TopDec_opt), 629 SigDec, TopDec_opt) 630) end 631) 632 in (LrTable.NT 1,(result,SigDec1left,TopDec_opt1right),rest671) end 633| (38,(_,(MlyValue.TopDec_opt TopDec_opt1,_,TopDec_opt1right))::(_,( 634MlyValue.FunDec FunDec1,FunDecleft as FunDec1left,_))::rest671) => 635let val result=MlyValue.TopDec_(fn _ => let val FunDec as FunDec1= 636FunDec1 () 637val TopDec_opt as TopDec_opt1=TopDec_opt1 () 638 in ( 639 FUNtopdec (PP FunDecleft 640 (rightmost FunDec 641 TopDec_opt), 642 FunDec, TopDec_opt) 643) end 644) 645 in (LrTable.NT 1,(result,FunDec1left,TopDec_opt1right),rest671) end 646| (39,(_,(MlyValue.TopDec_ TopDec_1,TopDec_1left,TopDec_1right)):: 647rest671) => let val result=MlyValue.TopDec_opt(fn _ => let val TopDec_ 648 as TopDec_1=TopDec_1 () 649 in ( SOME TopDec_ ) end 650) 651 in (LrTable.NT 2,(result,TopDec_1left,TopDec_1right),rest671) end 652| (40,rest671) => let val result=MlyValue.TopDec_opt(fn _ => ( NONE )) 653 in (LrTable.NT 2,(result,defaultPos,defaultPos),rest671) end 654| (41,(_,(MlyValue.AndFunBind_opt AndFunBind_opt1,_, 655AndFunBind_opt1right))::(_,(MlyValue.StrExp StrExp1,_,StrExpright))::_ 656::(_,(MlyValue.SigExp_constraint_maybe SigExp_constraint_maybe1, 657SigExp_constraint_maybeleft,_))::_::(_,(MlyValue.SigExp SigExp1,_,_)) 658::_::(_,(MlyValue.Ident Ident2,_,_))::_::(_,(MlyValue.Ident Ident1, 659Ident1left,_))::rest671) => let val result=MlyValue.FunBind(fn _ => 660let val Ident1=Ident1 () 661val Ident2=Ident2 () 662val SigExp as SigExp1=SigExp1 () 663val SigExp_constraint_maybe as SigExp_constraint_maybe1= 664SigExp_constraint_maybe1 () 665val StrExp as StrExp1=StrExp1 () 666val AndFunBind_opt as AndFunBind_opt1=AndFunBind_opt1 () 667 in ( 668 let val i_body = PP SigExp_constraint_maybeleft StrExpright 669 val empty_strdec = EMPTYstrdec (PP defaultPos defaultPos) 670 in 671 FUNBIND (PP Ident1left 672 (rightmost StrExp 673 AndFunBind_opt), 674 mk_FunId Ident1, mk_StrId Ident2, SigExp, 675 LETstrexp(i_body, empty_strdec, 676 SigExp_constraint_maybe SigExp_constraint_maybeleft StrExp), 677 AndFunBind_opt) 678 end 679) end 680) 681 in (LrTable.NT 7,(result,Ident1left,AndFunBind_opt1right),rest671) 682 end 683| (42,(_,(MlyValue.AndFunBind_opt AndFunBind_opt1,_, 684AndFunBind_opt1right))::(_,(MlyValue.StrExp StrExp1,_,StrExpright))::_ 685::(_,(MlyValue.SigExp_constraint_maybe SigExp_constraint_maybe1, 686SigExp_constraint_maybeleft,_))::_::(_,(MlyValue.Spec Spec1,_,_))::_:: 687(_,(MlyValue.Ident Ident1,Ident1left,_))::rest671) => let val result= 688MlyValue.FunBind(fn _ => let val Ident as Ident1=Ident1 () 689val Spec as Spec1=Spec1 () 690val SigExp_constraint_maybe as SigExp_constraint_maybe1= 691SigExp_constraint_maybe1 () 692val StrExp as StrExp1=StrExp1 () 693val AndFunBind_opt as AndFunBind_opt1=AndFunBind_opt1 () 694 in ( 695 let val strid_nu = inventStrId () 696 val i_body = PP SigExp_constraint_maybeleft StrExpright 697 val i_spec = Spec 698 in FUNBIND 699 (PP Ident1left 700 (rightmost StrExp 701 AndFunBind_opt), 702 mk_FunId Ident, strid_nu, 703 SIGsigexp (i_spec, Spec), 704 LETstrexp 705 (i_body, 706 DECstrdec 707 (i_spec, 708 OPENdec (i_spec, 709 [WITH_INFO (i_spec, longStrIdOfStrId strid_nu)])), 710 SigExp_constraint_maybe SigExp_constraint_maybeleft StrExp), 711 AndFunBind_opt) 712 end 713) end 714) 715 in (LrTable.NT 7,(result,Ident1left,AndFunBind_opt1right),rest671) 716 end 717| (43,(_,(MlyValue.SigExp_constraint SigExp_constraint1, 718SigExp_constraint1left,SigExp_constraint1right))::rest671) => let val 719result=MlyValue.SigExp_constraint_maybe(fn _ => let val 720SigExp_constraint as SigExp_constraint1=SigExp_constraint1 () 721 in ( SigExp_constraint ) end 722) 723 in (LrTable.NT 25,(result,SigExp_constraint1left, 724SigExp_constraint1right),rest671) end 725| (44,rest671) => let val result=MlyValue.SigExp_constraint_maybe(fn _ 726 => ( (fn _ => fn strexp => strexp) )) 727 in (LrTable.NT 25,(result,defaultPos,defaultPos),rest671) end 728| (45,(_,(MlyValue.SigExp SigExp1,_,SigExpright as SigExp1right))::(_, 729(_,COLON1left,_))::rest671) => let val result= 730MlyValue.SigExp_constraint(fn _ => let val SigExp as SigExp1=SigExp1 731() 732 in ( 733 (fn leftpos => fn strexp => 734 TRANSPARENT_CONSTRAINTstrexp 735 (PP leftpos SigExpright, strexp, SigExp)) 736) end 737) 738 in (LrTable.NT 24,(result,COLON1left,SigExp1right),rest671) end 739| (46,(_,(MlyValue.SigExp SigExp1,_,SigExpright as SigExp1right))::(_, 740(_,COLONGREATER1left,_))::rest671) => let val result= 741MlyValue.SigExp_constraint(fn _ => let val SigExp as SigExp1=SigExp1 742() 743 in ( 744 (fn leftpos => fn strexp => 745 OPAQUE_CONSTRAINTstrexp 746 (PP leftpos SigExpright, strexp, SigExp)) 747) end 748) 749 in (LrTable.NT 24,(result,COLONGREATER1left,SigExp1right),rest671) 750 end 751| (47,(_,(MlyValue.FunBind FunBind1,_,FunBind1right))::(_,(_,AND1left, 752_))::rest671) => let val result=MlyValue.AndFunBind_opt(fn _ => let 753val FunBind as FunBind1=FunBind1 () 754 in ( SOME FunBind ) end 755) 756 in (LrTable.NT 26,(result,AND1left,FunBind1right),rest671) end 757| (48,rest671) => let val result=MlyValue.AndFunBind_opt(fn _ => ( 758 NONE )) 759 in (LrTable.NT 26,(result,defaultPos,defaultPos),rest671) end 760| (49,(_,(MlyValue.FunBind FunBind1,_,FunBind1right))::(_,(_, 761FUNCTORleft as FUNCTOR1left,_))::rest671) => let val result= 762MlyValue.FunDec(fn _ => let val FunBind as FunBind1=FunBind1 () 763 in ( 764 FUNCTORfundec (PP FUNCTORleft (right (info_on_funbind FunBind)), 765 FunBind) 766) end 767) 768 in (LrTable.NT 5,(result,FUNCTOR1left,FunBind1right),rest671) end 769| (50,(_,(MlyValue.AndStrDesc_opt AndStrDesc_opt1,_, 770AndStrDesc_opt1right))::(_,(MlyValue.SigExp SigExp1,_,_))::_::(_,( 771MlyValue.Ident Ident1,Identleft as Ident1left,_))::rest671) => let 772val result=MlyValue.StrDesc(fn _ => let val Ident as Ident1=Ident1 () 773val SigExp as SigExp1=SigExp1 () 774val AndStrDesc_opt as AndStrDesc_opt1=AndStrDesc_opt1 () 775 in ( 776 STRDESC (PP Identleft 777 (rightmost info_on_sigexp SigExp 778 info_on_strdesc AndStrDesc_opt), 779 mk_StrId Ident, SigExp, AndStrDesc_opt) 780) end 781) 782 in (LrTable.NT 8,(result,Ident1left,AndStrDesc_opt1right),rest671) 783 end 784| (51,(_,(MlyValue.StrDesc StrDesc1,_,StrDesc1right))::(_,(_,AND1left, 785_))::rest671) => let val result=MlyValue.AndStrDesc_opt(fn _ => let 786val StrDesc as StrDesc1=StrDesc1 () 787 in ( SOME StrDesc ) end 788) 789 in (LrTable.NT 29,(result,AND1left,StrDesc1right),rest671) end 790| (52,rest671) => let val result=MlyValue.AndStrDesc_opt(fn _ => ( 791 NONE )) 792 in (LrTable.NT 29,(result,defaultPos,defaultPos),rest671) end 793| (53,(_,(MlyValue.AndExDesc_opt AndExDesc_opt1,_,AndExDesc_opt1right) 794)::(_,(MlyValue.OfTy_opt OfTy_opt1,_,_))::(_,(MlyValue.Ident Ident1, 795Identleft as Ident1left,Identright))::rest671) => let val result= 796MlyValue.ExDesc(fn _ => let val Ident as Ident1=Ident1 () 797val OfTy_opt as OfTy_opt1=OfTy_opt1 () 798val AndExDesc_opt as AndExDesc_opt1=AndExDesc_opt1 () 799 in ( 800 EXDESC (PP Identleft 801 (rightmost_of_three Identright 802 get_info_ty OfTy_opt 803 info_on_exdesc AndExDesc_opt), 804 mk_Id Ident, OfTy_opt, AndExDesc_opt) 805) end 806) 807 in (LrTable.NT 9,(result,Ident1left,AndExDesc_opt1right),rest671) end 808| (54,(_,(MlyValue.ExDesc ExDesc1,_,ExDesc1right))::(_,(_,AND1left,_)) 809::rest671) => let val result=MlyValue.AndExDesc_opt(fn _ => let val 810ExDesc as ExDesc1=ExDesc1 () 811 in ( SOME ExDesc ) end 812) 813 in (LrTable.NT 30,(result,AND1left,ExDesc1right),rest671) end 814| (55,rest671) => let val result=MlyValue.AndExDesc_opt(fn _ => ( 815 NONE )) 816 in (LrTable.NT 30,(result,defaultPos,defaultPos),rest671) end 817| (56,(_,(MlyValue.BarConDesc_opt BarConDesc_opt1,_, 818BarConDesc_opt1right))::(_,(MlyValue.OfTy_opt OfTy_opt1,_,_))::(_,( 819MlyValue.OpIdent OpIdent1,OpIdentleft as OpIdent1left,OpIdentright)):: 820rest671) => let val result=MlyValue.ConDesc(fn _ => let val OpIdent 821 as OpIdent1=OpIdent1 () 822val OfTy_opt as OfTy_opt1=OfTy_opt1 () 823val BarConDesc_opt as BarConDesc_opt1=BarConDesc_opt1 () 824 in ( 825 let val OP_OPT (id, _) = OpIdent 826 in CONDESC 827 (PP OpIdentleft 828 (rightmost_of_three OpIdentright 829 get_info_ty OfTy_opt 830 info_on_condesc BarConDesc_opt), 831 mk_Id id, OfTy_opt, BarConDesc_opt) 832 end 833) end 834) 835 in (LrTable.NT 10,(result,OpIdent1left,BarConDesc_opt1right),rest671) 836 end 837| (57,(_,(MlyValue.ConDesc ConDesc1,_,ConDesc1right))::(_,(_,BAR1left, 838_))::rest671) => let val result=MlyValue.BarConDesc_opt(fn _ => let 839val ConDesc as ConDesc1=ConDesc1 () 840 in ( SOME ConDesc ) end 841) 842 in (LrTable.NT 31,(result,BAR1left,ConDesc1right),rest671) end 843| (58,rest671) => let val result=MlyValue.BarConDesc_opt(fn _ => ( 844 NONE )) 845 in (LrTable.NT 31,(result,defaultPos,defaultPos),rest671) end 846| (59,(_,(MlyValue.AndDatDesc_opt AndDatDesc_opt1,_, 847AndDatDesc_opt1right))::(_,(MlyValue.ConDesc ConDesc1,_,_))::_::(_,( 848MlyValue.TypeIdent TypeIdent1,_,_))::(_,(MlyValue.TyVarSeq TyVarSeq1, 849TyVarSeqleft as TyVarSeq1left,_))::rest671) => let val result= 850MlyValue.DatDesc(fn _ => let val TyVarSeq as TyVarSeq1=TyVarSeq1 () 851val TypeIdent as TypeIdent1=TypeIdent1 () 852val ConDesc as ConDesc1=ConDesc1 () 853val AndDatDesc_opt as AndDatDesc_opt1=AndDatDesc_opt1 () 854 in ( 855 DATDESC (PP TyVarSeqleft 856 (rightmost info_on_condesc ConDesc 857 info_on_datdesc AndDatDesc_opt), 858 TyVarSeq, mk_TyCon TypeIdent, 859 ConDesc, AndDatDesc_opt) 860) end 861) 862 in (LrTable.NT 11,(result,TyVarSeq1left,AndDatDesc_opt1right),rest671 863) end 864| (60,(_,(MlyValue.AndDatDesc_opt AndDatDesc_opt1,_, 865AndDatDesc_opt1right))::(_,(MlyValue.ConDesc ConDesc1,_,_))::_::(_,( 866MlyValue.TypeIdent TypeIdent1,TypeIdentleft as TypeIdent1left,_)):: 867rest671) => let val result=MlyValue.DatDesc_zero_arity(fn _ => let 868val TypeIdent as TypeIdent1=TypeIdent1 () 869val ConDesc as ConDesc1=ConDesc1 () 870val AndDatDesc_opt as AndDatDesc_opt1=AndDatDesc_opt1 () 871 in ( 872 DATDESC (PP TypeIdentleft 873 (rightmost info_on_condesc ConDesc 874 info_on_datdesc AndDatDesc_opt), 875 [], mk_TyCon TypeIdent, 876 ConDesc, AndDatDesc_opt) 877) end 878) 879 in (LrTable.NT 12,(result,TypeIdent1left,AndDatDesc_opt1right), 880rest671) end 881| (61,(_,(MlyValue.AndDatDesc_opt AndDatDesc_opt1,_, 882AndDatDesc_opt1right))::(_,(MlyValue.ConDesc ConDesc1,_,_))::_::(_,( 883MlyValue.TypeIdent TypeIdent1,_,_))::(_,(MlyValue.TyVarSeq1 TyVarSeq11 884,TyVarSeq1left as TyVarSeq11left,_))::rest671) => let val result= 885MlyValue.DatDesc_nonzero_arity(fn _ => let val TyVarSeq1 as TyVarSeq11 886=TyVarSeq11 () 887val TypeIdent as TypeIdent1=TypeIdent1 () 888val ConDesc as ConDesc1=ConDesc1 () 889val AndDatDesc_opt as AndDatDesc_opt1=AndDatDesc_opt1 () 890 in ( 891 DATDESC (PP TyVarSeq1left 892 (rightmost info_on_condesc ConDesc 893 info_on_datdesc AndDatDesc_opt), 894 TyVarSeq1, mk_TyCon TypeIdent, 895 ConDesc, AndDatDesc_opt) 896) end 897) 898 in (LrTable.NT 13,(result,TyVarSeq11left,AndDatDesc_opt1right), 899rest671) end 900| (62,(_,(MlyValue.DatDesc DatDesc1,_,DatDesc1right))::(_,(_,AND1left, 901_))::rest671) => let val result=MlyValue.AndDatDesc_opt(fn _ => let 902val DatDesc as DatDesc1=DatDesc1 () 903 in ( SOME DatDesc ) end 904) 905 in (LrTable.NT 32,(result,AND1left,DatDesc1right),rest671) end 906| (63,rest671) => let val result=MlyValue.AndDatDesc_opt(fn _ => ( 907 NONE )) 908 in (LrTable.NT 32,(result,defaultPos,defaultPos),rest671) end 909| (64,(_,(MlyValue.AndTypDesc_opt AndTypDesc_opt1,_, 910AndTypDesc_opt1right))::(_,(MlyValue.TypeIdent TypeIdent1,_, 911TypeIdentright))::(_,(MlyValue.TyVarSeq TyVarSeq1,TyVarSeqleft as 912TyVarSeq1left,_))::rest671) => let val result=MlyValue.TypDesc(fn _ 913 => let val TyVarSeq as TyVarSeq1=TyVarSeq1 () 914val TypeIdent as TypeIdent1=TypeIdent1 () 915val AndTypDesc_opt as AndTypDesc_opt1=AndTypDesc_opt1 () 916 in ( 917 TYPDESC (PP TyVarSeqleft 918 (rightmost' TypeIdentright info_on_typdesc AndTypDesc_opt), 919 TyVarSeq, mk_TyCon TypeIdent, AndTypDesc_opt) 920) end 921) 922 in (LrTable.NT 14,(result,TyVarSeq1left,AndTypDesc_opt1right),rest671 923) end 924| (65,(_,(MlyValue.TypDesc TypDesc1,_,TypDesc1right))::(_,(_,AND1left, 925_))::rest671) => let val result=MlyValue.AndTypDesc_opt(fn _ => let 926val TypDesc as TypDesc1=TypDesc1 () 927 in ( SOME TypDesc ) end 928) 929 in (LrTable.NT 33,(result,AND1left,TypDesc1right),rest671) end 930| (66,rest671) => let val result=MlyValue.AndTypDesc_opt(fn _ => ( 931 NONE )) 932 in (LrTable.NT 33,(result,defaultPos,defaultPos),rest671) end 933| (67,(_,(MlyValue.TypAbbreviationAND_seq1 TypAbbreviationAND_seq11,_, 934TypAbbreviationAND_seq11right))::_::(_,(MlyValue.TypAbbreviation 935TypAbbreviation1,TypAbbreviation1left,_))::rest671) => let val result= 936MlyValue.TypAbbreviationAND_seq1(fn _ => let val TypAbbreviation as 937TypAbbreviation1=TypAbbreviation1 () 938val TypAbbreviationAND_seq1 as TypAbbreviationAND_seq11= 939TypAbbreviationAND_seq11 () 940 in ( TypAbbreviation :: TypAbbreviationAND_seq1 ) end 941) 942 in (LrTable.NT 34,(result,TypAbbreviation1left, 943TypAbbreviationAND_seq11right),rest671) end 944| (68,(_,(MlyValue.TypAbbreviation TypAbbreviation1, 945TypAbbreviation1left,TypAbbreviation1right))::rest671) => let val 946result=MlyValue.TypAbbreviationAND_seq1(fn _ => let val 947TypAbbreviation as TypAbbreviation1=TypAbbreviation1 () 948 in ( [TypAbbreviation] ) end 949) 950 in (LrTable.NT 34,(result,TypAbbreviation1left,TypAbbreviation1right) 951,rest671) end 952| (69,(_,(MlyValue.Ty Ty1,_,Tyright as Ty1right))::_::(_,( 953MlyValue.TypeIdent TypeIdent1,_,TypeIdentright))::(_,( 954MlyValue.TyVarSeq TyVarSeq1,TyVarSeqleft as TyVarSeq1left,_))::rest671 955) => let val result=MlyValue.TypAbbreviation(fn _ => let val TyVarSeq 956 as TyVarSeq1=TyVarSeq1 () 957val TypeIdent as TypeIdent1=TypeIdent1 () 958val Ty as Ty1=Ty1 () 959 in ( 960 (TyVarSeq, mk_TyCon TypeIdent, Ty, 961 PP TyVarSeqleft Tyright, PP TyVarSeqleft TypeIdentright) 962) end 963) 964 in (LrTable.NT 15,(result,TyVarSeq1left,Ty1right),rest671) end 965| (70,(_,(MlyValue.AndValDesc_opt AndValDesc_opt1,_, 966AndValDesc_opt1right))::(_,(MlyValue.Ty Ty1,_,Tyright))::_::(_,( 967MlyValue.EqIdent EqIdent1,EqIdentleft as EqIdent1left,_))::rest671) 968 => let val result=MlyValue.ValDesc(fn _ => let val EqIdent as 969EqIdent1=EqIdent1 () 970val Ty as Ty1=Ty1 () 971val AndValDesc_opt as AndValDesc_opt1=AndValDesc_opt1 () 972 in ( 973 VALDESC (PP EqIdentleft 974 (rightmost' Tyright info_on_valdesc AndValDesc_opt), 975 mk_Id EqIdent, Ty, AndValDesc_opt) 976) end 977) 978 in (LrTable.NT 16,(result,EqIdent1left,AndValDesc_opt1right),rest671) 979 end 980| (71,(_,(MlyValue.ValDesc ValDesc1,_,ValDesc1right))::(_,(_,AND1left, 981_))::rest671) => let val result=MlyValue.AndValDesc_opt(fn _ => let 982val ValDesc as ValDesc1=ValDesc1 () 983 in ( SOME ValDesc ) end 984) 985 in (LrTable.NT 35,(result,AND1left,ValDesc1right),rest671) end 986| (72,rest671) => let val result=MlyValue.AndValDesc_opt(fn _ => ( 987 NONE )) 988 in (LrTable.NT 35,(result,defaultPos,defaultPos),rest671) end 989| (73,(_,(MlyValue.ValDesc ValDesc1,_,ValDesc1right))::(_,(_,VALleft 990 as VAL1left,_))::rest671) => let val result=MlyValue.OneSpec(fn _ => 991let val ValDesc as ValDesc1=ValDesc1 () 992 in ( 993 VALspec (PP VALleft (right (info_on_valdesc ValDesc)), 994 ValDesc) 995) end 996) 997 in (LrTable.NT 18,(result,VAL1left,ValDesc1right),rest671) end 998| (74,(_,(MlyValue.TypDesc TypDesc1,_,TypDesc1right))::(_,(_,TYPEleft 999 as TYPE1left,_))::rest671) => let val result=MlyValue.OneSpec(fn _ 1000 => let val TypDesc as TypDesc1=TypDesc1 () 1001 in ( 1002 TYPEspec (PP TYPEleft (right (info_on_typdesc TypDesc)), 1003 TypDesc) 1004) end 1005) 1006 in (LrTable.NT 18,(result,TYPE1left,TypDesc1right),rest671) end 1007| (75,(_,(MlyValue.TypDesc TypDesc1,_,TypDesc1right))::(_,(_, 1008EQTYPEleft as EQTYPE1left,_))::rest671) => let val result= 1009MlyValue.OneSpec(fn _ => let val TypDesc as TypDesc1=TypDesc1 () 1010 in ( 1011 EQTYPEspec (PP EQTYPEleft (right (info_on_typdesc TypDesc)), 1012 TypDesc) 1013) end 1014) 1015 in (LrTable.NT 18,(result,EQTYPE1left,TypDesc1right),rest671) end 1016| (76,(_,(MlyValue.DatDesc_zero_arity DatDesc_zero_arity1,_, 1017DatDesc_zero_arity1right))::(_,(_,DATATYPEleft as DATATYPE1left,_)):: 1018rest671) => let val result=MlyValue.OneSpec(fn _ => let val 1019DatDesc_zero_arity as DatDesc_zero_arity1=DatDesc_zero_arity1 () 1020 in ( 1021 DATATYPEspec (PP DATATYPEleft 1022 (right (info_on_datdesc DatDesc_zero_arity)), 1023 DatDesc_zero_arity) 1024) end 1025) 1026 in (LrTable.NT 18,(result,DATATYPE1left,DatDesc_zero_arity1right), 1027rest671) end 1028| (77,(_,(MlyValue.DatDesc_nonzero_arity DatDesc_nonzero_arity1,_, 1029DatDesc_nonzero_arity1right))::(_,(_,DATATYPEleft as DATATYPE1left,_)) 1030::rest671) => let val result=MlyValue.OneSpec(fn _ => let val 1031DatDesc_nonzero_arity as DatDesc_nonzero_arity1=DatDesc_nonzero_arity1 1032 () 1033 in ( 1034 DATATYPEspec (PP DATATYPEleft 1035 (right (info_on_datdesc DatDesc_nonzero_arity)), 1036 DatDesc_nonzero_arity) 1037) end 1038) 1039 in (LrTable.NT 18,(result,DATATYPE1left,DatDesc_nonzero_arity1right), 1040rest671) end 1041| (78,(_,(MlyValue.LongTypeIdent LongTypeIdent1,_,LongTypeIdentright 1042 as LongTypeIdent1right))::_::_::(_,(MlyValue.TypeIdent TypeIdent1,_,_ 1043))::(_,(_,DATATYPE1left,_))::rest671) => let val result= 1044MlyValue.OneSpec(fn _ => let val TypeIdent as TypeIdent1=TypeIdent1 () 1045val LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 1046 in ( 1047 DATATYPE_REPLICATIONspec 1048 (PP DATATYPE1left LongTypeIdentright, 1049 mk_TyCon TypeIdent, mk_LongTyCon LongTypeIdent) 1050) end 1051) 1052 in (LrTable.NT 18,(result,DATATYPE1left,LongTypeIdent1right),rest671) 1053 end 1054| (79,(_,(MlyValue.ExDesc ExDesc1,_,ExDesc1right))::(_,(_, 1055EXCEPTIONleft as EXCEPTION1left,_))::rest671) => let val result= 1056MlyValue.OneSpec(fn _ => let val ExDesc as ExDesc1=ExDesc1 () 1057 in ( 1058 EXCEPTIONspec (PP EXCEPTIONleft (right (info_on_exdesc ExDesc)), 1059 ExDesc) 1060) end 1061) 1062 in (LrTable.NT 18,(result,EXCEPTION1left,ExDesc1right),rest671) end 1063| (80,(_,(MlyValue.StrDesc StrDesc1,_,StrDesc1right))::(_,(_, 1064STRUCTUREleft as STRUCTURE1left,_))::rest671) => let val result= 1065MlyValue.OneSpec(fn _ => let val StrDesc as StrDesc1=StrDesc1 () 1066 in ( 1067 STRUCTUREspec (PP STRUCTUREleft (right (info_on_strdesc StrDesc)), 1068 StrDesc) 1069) end 1070) 1071 in (LrTable.NT 18,(result,STRUCTURE1left,StrDesc1right),rest671) end 1072| (81,(_,(MlyValue.SigExp SigExp1,_,SigExpright as SigExp1right))::(_, 1073(_,INCLUDEleft as INCLUDE1left,_))::rest671) => let val result= 1074MlyValue.OneSpec(fn _ => let val SigExp as SigExp1=SigExp1 () 1075 in ( INCLUDEspec (PP INCLUDEleft SigExpright, SigExp) ) end 1076) 1077 in (LrTable.NT 18,(result,INCLUDE1left,SigExp1right),rest671) end 1078| (82,(_,(MlyValue.TypAbbreviationAND_seq1 TypAbbreviationAND_seq11,_, 1079TypAbbreviationAND_seq11right))::(_,(_,TYPE1left,_))::rest671) => let 1080val result=MlyValue.OneSpec(fn _ => let val TypAbbreviationAND_seq1 1081 as TypAbbreviationAND_seq11=TypAbbreviationAND_seq11 () 1082 in ( 1083 fold_specs_to_spec 1084 (map rewrite_type_abbreviation_spec TypAbbreviationAND_seq1) 1085) end 1086) 1087 in (LrTable.NT 18,(result,TYPE1left,TypAbbreviationAND_seq11right), 1088rest671) end 1089| (83,(_,(MlyValue.Ident_seq2 Ident_seq21,_,Ident_seq21right))::(_,(_, 1090INCLUDE1left,_))::rest671) => let val result=MlyValue.OneSpec(fn _ => 1091let val Ident_seq2 as Ident_seq21=Ident_seq21 () 1092 in ( 1093 fold_specs_to_spec 1094 (map (fn WITH_INFO (i, Ident) => 1095 (i, INCLUDEspec (i, SIGIDsigexp (i, mk_SigId Ident)))) 1096 Ident_seq2) 1097) end 1098) 1099 in (LrTable.NT 18,(result,INCLUDE1left,Ident_seq21right),rest671) end 1100| (84,(_,(MlyValue.OneSpec OneSpec1,_,OneSpec1right))::(_,( 1101MlyValue.Spec Spec1,Specleft as Spec1left,_))::rest671) => let val 1102result=MlyValue.Spec(fn _ => let val Spec as Spec1=Spec1 () 1103val OneSpec as OneSpec1=OneSpec1 () 1104 in ( 1105 composeSpec (PP Specleft (right (info_on_spec OneSpec)), 1106 Spec, OneSpec) 1107) end 1108) 1109 in (LrTable.NT 17,(result,Spec1left,OneSpec1right),rest671) end 1110| (85,(_,(MlyValue.LongTypeIdentEq_seq2 LongTypeIdentEq_seq21,_, 1111LongTypeIdentEq_seq2right as LongTypeIdentEq_seq21right))::_::_::(_,( 1112MlyValue.Spec Spec1,Specleft as Spec1left,_))::rest671) => let val 1113result=MlyValue.Spec(fn _ => let val Spec as Spec1=Spec1 () 1114val LongTypeIdentEq_seq2 as LongTypeIdentEq_seq21= 1115LongTypeIdentEq_seq21 () 1116 in ( 1117 SHARING_TYPEspec (PP Specleft LongTypeIdentEq_seq2right, 1118 Spec, 1119 wi_Convert mk_LongTyCon LongTypeIdentEq_seq2) 1120) end 1121) 1122 in (LrTable.NT 17,(result,Spec1left,LongTypeIdentEq_seq21right), 1123rest671) end 1124| (86,(_,(MlyValue.LongIdentEq_seq2 LongIdentEq_seq21,_, 1125LongIdentEq_seq2right as LongIdentEq_seq21right))::_::(_,( 1126MlyValue.Spec Spec1,Specleft as Spec1left,_))::rest671) => let val 1127result=MlyValue.Spec(fn _ => let val Spec as Spec1=Spec1 () 1128val LongIdentEq_seq2 as LongIdentEq_seq21=LongIdentEq_seq21 () 1129 in ( 1130 SHARINGspec (PP Specleft LongIdentEq_seq2right, 1131 Spec, wi_Convert mk_LongStrId LongIdentEq_seq2) 1132) end 1133) 1134 in (LrTable.NT 17,(result,Spec1left,LongIdentEq_seq21right),rest671) 1135 end 1136| (87,(_,(_,_,SEMICOLON1right))::(_,(MlyValue.Spec Spec1,Spec1left,_)) 1137::rest671) => let val result=MlyValue.Spec(fn _ => let val Spec as 1138Spec1=Spec1 () 1139 in ( Spec ) end 1140) 1141 in (LrTable.NT 17,(result,Spec1left,SEMICOLON1right),rest671) end 1142| (88,rest671) => let val result=MlyValue.Spec(fn _ => ( 1143 EMPTYspec (PP defaultPos defaultPos) )) 1144 in (LrTable.NT 17,(result,defaultPos,defaultPos),rest671) end 1145| (89,(_,(_,_,ENDright as END1right))::(_,(MlyValue.StrDec StrDec1,_,_ 1146))::(_,(_,STRUCTleft as STRUCT1left,_))::rest671) => let val result= 1147MlyValue.StrExp(fn _ => let val StrDec as StrDec1=StrDec1 () 1148 in ( STRUCTstrexp (PP STRUCTleft ENDright, StrDec) ) end 1149) 1150 in (LrTable.NT 23,(result,STRUCT1left,END1right),rest671) end 1151| (90,(_,(MlyValue.LongIdent LongIdent1,LongIdentleft as 1152LongIdent1left,LongIdentright as LongIdent1right))::rest671) => let 1153val result=MlyValue.StrExp(fn _ => let val LongIdent as LongIdent1= 1154LongIdent1 () 1155 in ( 1156 LONGSTRIDstrexp (PP LongIdentleft LongIdentright, 1157 mk_LongStrId LongIdent) 1158) end 1159) 1160 in (LrTable.NT 23,(result,LongIdent1left,LongIdent1right),rest671) 1161 end 1162| (91,(_,(MlyValue.SigExp_constraint SigExp_constraint1,_, 1163SigExp_constraint1right))::(_,(MlyValue.StrExp StrExp1,StrExpleft as 1164StrExp1left,_))::rest671) => let val result=MlyValue.StrExp(fn _ => 1165let val StrExp as StrExp1=StrExp1 () 1166val SigExp_constraint as SigExp_constraint1=SigExp_constraint1 () 1167 in ( SigExp_constraint StrExpleft StrExp ) end 1168) 1169 in (LrTable.NT 23,(result,StrExp1left,SigExp_constraint1right), 1170rest671) end 1171| (92,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.StrExp 1172StrExp1,_,_))::_::(_,(MlyValue.Ident Ident1,Identleft as Ident1left,_) 1173)::rest671) => let val result=MlyValue.StrExp(fn _ => let val Ident 1174 as Ident1=Ident1 () 1175val StrExp as StrExp1=StrExp1 () 1176 in ( 1177 APPstrexp (PP Identleft RPARENright, 1178 mk_FunId Ident, StrExp) 1179) end 1180) 1181 in (LrTable.NT 23,(result,Ident1left,RPAREN1right),rest671) end 1182| (93,(_,(_,_,ENDright as END1right))::(_,(MlyValue.StrExp StrExp1,_,_ 1183))::_::(_,(MlyValue.StrDec StrDec1,_,_))::(_,(_,LETleft as LET1left,_) 1184)::rest671) => let val result=MlyValue.StrExp(fn _ => let val StrDec 1185 as StrDec1=StrDec1 () 1186val StrExp as StrExp1=StrExp1 () 1187 in ( LETstrexp (PP LETleft ENDright, StrDec, StrExp) ) end 1188) 1189 in (LrTable.NT 23,(result,LET1left,END1right),rest671) end 1190| (94,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.StrDec 1191StrDec1,StrDecleft,_))::_::(_,(MlyValue.Ident Ident1,Identleft as 1192Ident1left,_))::rest671) => let val result=MlyValue.StrExp(fn _ => 1193let val Ident as Ident1=Ident1 () 1194val StrDec as StrDec1=StrDec1 () 1195 in ( 1196 APPstrexp (PP Identleft RPARENright, mk_FunId Ident, 1197 STRUCTstrexp 1198 (PP StrDecleft (right (info_on_strdec StrDec)), 1199 StrDec)) 1200) end 1201) 1202 in (LrTable.NT 23,(result,Ident1left,RPAREN1right),rest671) end 1203| (95,(_,(MlyValue.OneStrDec_or_SEMICOLON OneStrDec_or_SEMICOLON1,_, 1204OneStrDec_or_SEMICOLON1right))::(_,(MlyValue.NonEmptyStrDec 1205NonEmptyStrDec1,NonEmptyStrDecleft as NonEmptyStrDec1left,_))::rest671 1206) => let val result=MlyValue.NonEmptyStrDec(fn _ => let val 1207NonEmptyStrDec as NonEmptyStrDec1=NonEmptyStrDec1 () 1208val OneStrDec_or_SEMICOLON as OneStrDec_or_SEMICOLON1= 1209OneStrDec_or_SEMICOLON1 () 1210 in ( 1211 (case OneStrDec_or_SEMICOLON of 1212 SOME strdec => 1213 composeStrDec (PP NonEmptyStrDecleft 1214 (right (info_on_strdec strdec)), 1215 NonEmptyStrDec, strdec) 1216 | NONE => 1217 NonEmptyStrDec) 1218) end 1219) 1220 in (LrTable.NT 42,(result,NonEmptyStrDec1left, 1221OneStrDec_or_SEMICOLON1right),rest671) end 1222| (96,(_,(MlyValue.OneStrDec_or_SEMICOLON OneStrDec_or_SEMICOLON1, 1223OneStrDec_or_SEMICOLON1left,OneStrDec_or_SEMICOLON1right))::rest671) 1224 => let val result=MlyValue.NonEmptyStrDec(fn _ => let val 1225OneStrDec_or_SEMICOLON as OneStrDec_or_SEMICOLON1= 1226OneStrDec_or_SEMICOLON1 () 1227 in ( 1228 (case OneStrDec_or_SEMICOLON of 1229 SOME strdec => strdec 1230 | NONE => EMPTYstrdec (PP defaultPos defaultPos)) 1231) end 1232) 1233 in (LrTable.NT 42,(result,OneStrDec_or_SEMICOLON1left, 1234OneStrDec_or_SEMICOLON1right),rest671) end 1235| (97,(_,(MlyValue.NonEmptyStrDec NonEmptyStrDec1,NonEmptyStrDec1left, 1236NonEmptyStrDec1right))::rest671) => let val result=MlyValue.StrDec(fn 1237_ => let val NonEmptyStrDec as NonEmptyStrDec1=NonEmptyStrDec1 () 1238 in ( NonEmptyStrDec ) end 1239) 1240 in (LrTable.NT 22,(result,NonEmptyStrDec1left,NonEmptyStrDec1right), 1241rest671) end 1242| (98,rest671) => let val result=MlyValue.StrDec(fn _ => ( 1243 EMPTYstrdec (PP defaultPos defaultPos) )) 1244 in (LrTable.NT 22,(result,defaultPos,defaultPos),rest671) end 1245| (99,(_,(MlyValue.OneStrDec OneStrDec1,OneStrDec1left,OneStrDec1right 1246))::rest671) => let val result=MlyValue.OneStrDec_or_SEMICOLON(fn _ 1247 => let val OneStrDec as OneStrDec1=OneStrDec1 () 1248 in ( SOME OneStrDec ) end 1249) 1250 in (LrTable.NT 41,(result,OneStrDec1left,OneStrDec1right),rest671) 1251 end 1252| (100,(_,(_,SEMICOLON1left,SEMICOLON1right))::rest671) => let val 1253result=MlyValue.OneStrDec_or_SEMICOLON(fn _ => ( NONE )) 1254 in (LrTable.NT 41,(result,SEMICOLON1left,SEMICOLON1right),rest671) 1255 end 1256| (101,(_,(MlyValue.OneDec_sans_LOCAL OneDec_sans_LOCAL1, 1257OneDec_sans_LOCALleft as OneDec_sans_LOCAL1left, 1258OneDec_sans_LOCAL1right))::rest671) => let val result= 1259MlyValue.OneStrDec(fn _ => let val OneDec_sans_LOCAL as 1260OneDec_sans_LOCAL1=OneDec_sans_LOCAL1 () 1261 in ( 1262 DECstrdec (PP OneDec_sans_LOCALleft 1263 (right (get_info_dec OneDec_sans_LOCAL)), 1264 OneDec_sans_LOCAL) 1265) end 1266) 1267 in (LrTable.NT 6,(result,OneDec_sans_LOCAL1left, 1268OneDec_sans_LOCAL1right),rest671) end 1269| (102,(_,(MlyValue.StrBind StrBind1,_,StrBind1right))::(_,(_, 1270STRUCTUREleft as STRUCTURE1left,_))::rest671) => let val result= 1271MlyValue.OneStrDec(fn _ => let val StrBind as StrBind1=StrBind1 () 1272 in ( 1273 STRUCTUREstrdec (PP STRUCTUREleft 1274 (right (info_on_strbind StrBind)), 1275 StrBind) 1276) end 1277) 1278 in (LrTable.NT 6,(result,STRUCTURE1left,StrBind1right),rest671) end 1279| (103,(_,(_,_,ENDright as END1right))::(_,(MlyValue.StrDec StrDec2,_, 1280_))::_::(_,(MlyValue.StrDec StrDec1,_,_))::(_,(_,LOCALleft as 1281LOCAL1left,_))::rest671) => let val result=MlyValue.OneStrDec(fn _ => 1282let val StrDec1=StrDec1 () 1283val StrDec2=StrDec2 () 1284 in ( LOCALstrdec (PP LOCALleft ENDright, StrDec1, StrDec2) ) end 1285) 1286 in (LrTable.NT 6,(result,LOCAL1left,END1right),rest671) end 1287| (104,(_,(MlyValue.AndStrBind_opt AndStrBind_opt1,_, 1288AndStrBind_opt1right))::(_,(MlyValue.StrExp StrExp1,_,_))::_::(_,( 1289MlyValue.SigExp_constraint_maybe SigExp_constraint_maybe1, 1290SigExp_constraint_maybeleft,_))::(_,(MlyValue.Ident Ident1,Identleft 1291 as Ident1left,_))::rest671) => let val result=MlyValue.StrBind(fn _ 1292 => let val Ident as Ident1=Ident1 () 1293val SigExp_constraint_maybe as SigExp_constraint_maybe1= 1294SigExp_constraint_maybe1 () 1295val StrExp as StrExp1=StrExp1 () 1296val AndStrBind_opt as AndStrBind_opt1=AndStrBind_opt1 () 1297 in ( 1298 STRBIND (PP Identleft 1299 (rightmost info_on_strexp StrExp 1300 info_on_strbind AndStrBind_opt), 1301 mk_StrId Ident, SigExp_constraint_maybe SigExp_constraint_maybeleft StrExp, 1302 AndStrBind_opt) 1303) end 1304) 1305 in (LrTable.NT 21,(result,Ident1left,AndStrBind_opt1right),rest671) 1306 end 1307| (105,(_,(MlyValue.StrBind StrBind1,_,StrBind1right))::(_,(_,AND1left 1308,_))::rest671) => let val result=MlyValue.AndStrBind_opt(fn _ => let 1309val StrBind as StrBind1=StrBind1 () 1310 in ( SOME StrBind ) end 1311) 1312 in (LrTable.NT 27,(result,AND1left,StrBind1right),rest671) end 1313| (106,rest671) => let val result=MlyValue.AndStrBind_opt(fn _ => ( 1314 NONE )) 1315 in (LrTable.NT 27,(result,defaultPos,defaultPos),rest671) end 1316| (107,(_,(_,_,ENDright as END1right))::(_,(MlyValue.Spec Spec1,_,_)) 1317::(_,(_,SIGleft as SIG1left,_))::rest671) => let val result= 1318MlyValue.SigExp(fn _ => let val Spec as Spec1=Spec1 () 1319 in ( SIGsigexp (PP SIGleft ENDright, Spec) ) end 1320) 1321 in (LrTable.NT 20,(result,SIG1left,END1right),rest671) end 1322| (108,(_,(MlyValue.Ident Ident1,Identleft as Ident1left,Identright 1323 as Ident1right))::rest671) => let val result=MlyValue.SigExp(fn _ => 1324let val Ident as Ident1=Ident1 () 1325 in ( SIGIDsigexp (PP Identleft Identright, mk_SigId Ident) ) end 1326) 1327 in (LrTable.NT 20,(result,Ident1left,Ident1right),rest671) end 1328| (109,(_,(MlyValue.WhereDesc WhereDesc1,_,WhereDesc1right))::_::(_,( 1329MlyValue.SigExp SigExp1,SigExpleft as SigExp1left,_))::rest671) => 1330let val result=MlyValue.SigExp(fn _ => let val SigExp as SigExp1= 1331SigExp1 () 1332val WhereDesc as WhereDesc1=WhereDesc1 () 1333 in ( WhereDesc(SigExpleft,SigExp) ) end 1334) 1335 in (LrTable.NT 20,(result,SigExp1left,WhereDesc1right),rest671) end 1336| (110,(_,(MlyValue.AndWhereDesc_opt AndWhereDesc_opt1,_, 1337AndWhereDesc_opt1right))::(_,(MlyValue.Ty Ty1,_,Tyright))::_::(_,( 1338MlyValue.LongTypeIdent LongTypeIdent1,_,_))::(_,(MlyValue.TyVarSeq 1339TyVarSeq1,_,_))::(_,(_,TYPE1left,_))::rest671) => let val result= 1340MlyValue.WhereDesc(fn _ => let val TyVarSeq as TyVarSeq1=TyVarSeq1 () 1341val LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 1342val Ty as Ty1=Ty1 () 1343val AndWhereDesc_opt as AndWhereDesc_opt1=AndWhereDesc_opt1 () 1344 in ( 1345 fn (sigexpleft,sigexp) => 1346 case AndWhereDesc_opt 1347 of SOME f => f (sigexpleft, WHERE_TYPEsigexp (PP sigexpleft Tyright, 1348 sigexp, TyVarSeq, 1349 mk_LongTyCon LongTypeIdent, Ty)) 1350 | NONE => WHERE_TYPEsigexp (PP sigexpleft Tyright, 1351 sigexp, TyVarSeq, 1352 mk_LongTyCon LongTypeIdent, Ty) 1353) end 1354) 1355 in (LrTable.NT 43,(result,TYPE1left,AndWhereDesc_opt1right),rest671) 1356 end 1357| (111,(_,(MlyValue.WhereDesc WhereDesc1,_,WhereDesc1right))::(_,(_, 1358AND1left,_))::rest671) => let val result=MlyValue.AndWhereDesc_opt(fn 1359_ => let val WhereDesc as WhereDesc1=WhereDesc1 () 1360 in ( SOME WhereDesc ) end 1361) 1362 in (LrTable.NT 44,(result,AND1left,WhereDesc1right),rest671) end 1363| (112,rest671) => let val result=MlyValue.AndWhereDesc_opt(fn _ => ( 1364 NONE )) 1365 in (LrTable.NT 44,(result,defaultPos,defaultPos),rest671) end 1366| (113,(_,(MlyValue.SigBind SigBind1,_,SigBind1right))::(_,(_, 1367SIGNATUREleft as SIGNATURE1left,_))::rest671) => let val result= 1368MlyValue.SigDec(fn _ => let val SigBind as SigBind1=SigBind1 () 1369 in ( 1370 SIGNATUREsigdec 1371 (PP SIGNATUREleft (right (info_on_sigbind SigBind)), 1372 SigBind) 1373) end 1374) 1375 in (LrTable.NT 3,(result,SIGNATURE1left,SigBind1right),rest671) end 1376| (114,(_,(MlyValue.AndSigBind_opt AndSigBind_opt1,_, 1377AndSigBind_opt1right))::(_,(MlyValue.SigExp SigExp1,_,_))::_::(_,( 1378MlyValue.Ident Ident1,Identleft as Ident1left,_))::rest671) => let 1379val result=MlyValue.SigBind(fn _ => let val Ident as Ident1=Ident1 () 1380val SigExp as SigExp1=SigExp1 () 1381val AndSigBind_opt as AndSigBind_opt1=AndSigBind_opt1 () 1382 in ( 1383 SIGBIND (PP Identleft 1384 (rightmost info_on_sigexp SigExp 1385 info_on_sigbind AndSigBind_opt), 1386 mk_SigId Ident, SigExp, AndSigBind_opt) 1387) end 1388) 1389 in (LrTable.NT 19,(result,Ident1left,AndSigBind_opt1right),rest671) 1390 end 1391| (115,(_,(MlyValue.SigBind SigBind1,_,SigBind1right))::(_,(_,AND1left 1392,_))::rest671) => let val result=MlyValue.AndSigBind_opt(fn _ => let 1393val SigBind as SigBind1=SigBind1 () 1394 in ( SOME SigBind ) end 1395) 1396 in (LrTable.NT 28,(result,AND1left,SigBind1right),rest671) end 1397| (116,rest671) => let val result=MlyValue.AndSigBind_opt(fn _ => ( 1398 NONE )) 1399 in (LrTable.NT 28,(result,defaultPos,defaultPos),rest671) end 1400| (117,(_,(MlyValue.SCon SCon1,SConleft as SCon1left,SConright as 1401SCon1right))::rest671) => let val result=MlyValue.AtExp(fn _ => let 1402val SCon as SCon1=SCon1 () 1403 in ( SCONatexp (PP SConleft SConright, SCon) ) end 1404) 1405 in (LrTable.NT 69,(result,SCon1left,SCon1right),rest671) end 1406| (118,(_,(MlyValue.LongOpEqIdent LongOpEqIdent1,LongOpEqIdentleft as 1407LongOpEqIdent1left,LongOpEqIdentright as LongOpEqIdent1right)):: 1408rest671) => let val result=MlyValue.AtExp(fn _ => let val 1409LongOpEqIdent as LongOpEqIdent1=LongOpEqIdent1 () 1410 in ( 1411 let val OP_OPT (id, withOp) = LongOpEqIdent 1412 in 1413 IDENTatexp (PP LongOpEqIdentleft LongOpEqIdentright, 1414 OP_OPT (mk_LongId id, withOp)) 1415 end 1416) end 1417) 1418 in (LrTable.NT 69,(result,LongOpEqIdent1left,LongOpEqIdent1right), 1419rest671) end 1420| (119,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.ExpRow_opt 1421ExpRow_opt1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => 1422let val result=MlyValue.AtExp(fn _ => let val ExpRow_opt as 1423ExpRow_opt1=ExpRow_opt1 () 1424 in ( RECORDatexp (PP LBRACEleft RBRACEright, ExpRow_opt) ) end 1425) 1426 in (LrTable.NT 69,(result,LBRACE1left,RBRACE1right),rest671) end 1427| (120,(_,(_,_,ENDright as END1right))::(_,(MlyValue.Exp_ Exp_1,_,_)) 1428::_::(_,(MlyValue.Dec Dec1,_,_))::(_,(_,LETleft as LET1left,_)):: 1429rest671) => let val result=MlyValue.AtExp(fn _ => let val Dec as Dec1= 1430Dec1 () 1431val Exp_ as Exp_1=Exp_1 () 1432 in ( LETatexp (PP LETleft ENDright, Dec, Exp_) ) end 1433) 1434 in (LrTable.NT 69,(result,LET1left,END1right),rest671) end 1435| (121,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.Exp_ Exp_1, 1436_,_))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result 1437=MlyValue.AtExp(fn _ => let val Exp_ as Exp_1=Exp_1 () 1438 in ( PARatexp (PP LPARENleft RPARENright, Exp_) ) end 1439) 1440 in (LrTable.NT 69,(result,LPAREN1left,RPAREN1right),rest671) end 1441| (122,(_,(_,_,RPARENright as RPAREN1right))::(_,(_,LPARENleft as 1442LPAREN1left,_))::rest671) => let val result=MlyValue.AtExp(fn _ => ( 1443 RECORDatexp (PP LPARENleft RPARENright, NONE) )) 1444 in (LrTable.NT 69,(result,LPAREN1left,RPAREN1right),rest671) end 1445| (123,(_,(_,_,RPARENright as RPAREN1right))::(_,( 1446MlyValue.ExpComma_seq2 ExpComma_seq21,_,_))::(_,(_,LPARENleft as 1447LPAREN1left,_))::rest671) => let val result=MlyValue.AtExp(fn _ => 1448let val ExpComma_seq2 as ExpComma_seq21=ExpComma_seq21 () 1449 in ( tuple_atexp_with_info (PP LPARENleft RPARENright) ExpComma_seq2 1450) end 1451) 1452 in (LrTable.NT 69,(result,LPAREN1left,RPAREN1right),rest671) end 1453| (124,(_,(MlyValue.Label Label1,_,Labelright as Label1right))::(_,(_, 1454HASHleft as HASH1left,_))::rest671) => let val result=MlyValue.AtExp( 1455fn _ => let val Label as Label1=Label1 () 1456 in ( hash (PP HASHleft Labelright) Label ) end 1457) 1458 in (LrTable.NT 69,(result,HASH1left,Label1right),rest671) end 1459| (125,(_,(_,_,RPARENright as RPAREN1right))::(_,( 1460MlyValue.ExpSemicolon_seq2 ExpSemicolon_seq21,_,_))::(_,(_,LPARENleft 1461 as LPAREN1left,_))::rest671) => let val result=MlyValue.AtExp(fn _ 1462 => let val ExpSemicolon_seq2 as ExpSemicolon_seq21=ExpSemicolon_seq21 1463 () 1464 in ( 1465 PARatexp (PP LPARENleft RPARENright, 1466 sequenceExp ExpSemicolon_seq2) 1467) end 1468) 1469 in (LrTable.NT 69,(result,LPAREN1left,RPAREN1right),rest671) end 1470| (126,(_,(_,_,ENDright as END1right))::(_,(MlyValue.ExpSemicolon_seq2 1471 ExpSemicolon_seq21,_,_))::_::(_,(MlyValue.Dec Dec1,_,_))::(_,(_, 1472LETleft as LET1left,_))::rest671) => let val result=MlyValue.AtExp(fn 1473_ => let val Dec as Dec1=Dec1 () 1474val ExpSemicolon_seq2 as ExpSemicolon_seq21=ExpSemicolon_seq21 () 1475 in ( 1476 LETatexp (PP LETleft ENDright, 1477 Dec, sequenceExp ExpSemicolon_seq2) 1478) end 1479) 1480 in (LrTable.NT 69,(result,LET1left,END1right),rest671) end 1481| (127,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,( 1482MlyValue.ExpComma_seq0 ExpComma_seq01,_,_))::(_,(_,LBRACKETleft as 1483LBRACKET1left,_))::rest671) => let val result=MlyValue.AtExp(fn _ => 1484let val ExpComma_seq0 as ExpComma_seq01=ExpComma_seq01 () 1485 in ( list_atexp (PP LBRACKETleft RBRACKETright) ExpComma_seq0 ) end 1486) 1487 in (LrTable.NT 69,(result,LBRACKET1left,RBRACKET1right),rest671) end 1488| (128,(_,(MlyValue.AtExp_seq1 AtExp_seq11,_,AtExp_seq11right))::(_,( 1489MlyValue.AtExp AtExp1,AtExp1left,_))::rest671) => let val result= 1490MlyValue.AtExp_seq1(fn _ => let val AtExp as AtExp1=AtExp1 () 1491val AtExp_seq1 as AtExp_seq11=AtExp_seq11 () 1492 in ( AtExp :: AtExp_seq1 ) end 1493) 1494 in (LrTable.NT 96,(result,AtExp1left,AtExp_seq11right),rest671) end 1495| (129,(_,(MlyValue.AtExp AtExp1,AtExp1left,AtExp1right))::rest671) 1496 => let val result=MlyValue.AtExp_seq1(fn _ => let val AtExp as AtExp1 1497=AtExp1 () 1498 in ( [AtExp] ) end 1499) 1500 in (LrTable.NT 96,(result,AtExp1left,AtExp1right),rest671) end 1501| (130,(_,(MlyValue.CommaExpRow_opt CommaExpRow_opt1,_, 1502CommaExpRow_opt1right))::(_,(MlyValue.Exp_ Exp_1,_,_))::_::(_,( 1503MlyValue.Label Label1,Labelleft as Label1left,_))::rest671) => let 1504val result=MlyValue.ExpRow(fn _ => let val Label as Label1=Label1 () 1505val Exp_ as Exp_1=Exp_1 () 1506val CommaExpRow_opt as CommaExpRow_opt1=CommaExpRow_opt1 () 1507 in ( 1508 EXPROW (PP Labelleft 1509 (rightmost get_info_exp Exp_ 1510 get_info_exprow CommaExpRow_opt), 1511 Label, Exp_, CommaExpRow_opt) 1512) end 1513) 1514 in (LrTable.NT 68,(result,Label1left,CommaExpRow_opt1right),rest671) 1515 end 1516| (131,(_,(MlyValue.ExpRow ExpRow1,ExpRow1left,ExpRow1right))::rest671 1517) => let val result=MlyValue.ExpRow_opt(fn _ => let val ExpRow as 1518ExpRow1=ExpRow1 () 1519 in ( SOME ExpRow ) end 1520) 1521 in (LrTable.NT 81,(result,ExpRow1left,ExpRow1right),rest671) end 1522| (132,rest671) => let val result=MlyValue.ExpRow_opt(fn _ => ( NONE ) 1523) 1524 in (LrTable.NT 81,(result,defaultPos,defaultPos),rest671) end 1525| (133,(_,(MlyValue.ExpRow ExpRow1,_,ExpRow1right))::(_,(_,COMMA1left, 1526_))::rest671) => let val result=MlyValue.CommaExpRow_opt(fn _ => let 1527val ExpRow as ExpRow1=ExpRow1 () 1528 in ( SOME ExpRow ) end 1529) 1530 in (LrTable.NT 71,(result,COMMA1left,ExpRow1right),rest671) end 1531| (134,rest671) => let val result=MlyValue.CommaExpRow_opt(fn _ => ( 1532 NONE )) 1533 in (LrTable.NT 71,(result,defaultPos,defaultPos),rest671) end 1534| (135,(_,(MlyValue.ExpComma_seq1 ExpComma_seq11,ExpComma_seq11left, 1535ExpComma_seq11right))::rest671) => let val result= 1536MlyValue.ExpComma_seq0(fn _ => let val ExpComma_seq1 as ExpComma_seq11 1537=ExpComma_seq11 () 1538 in ( ExpComma_seq1 ) end 1539) 1540 in (LrTable.NT 90,(result,ExpComma_seq11left,ExpComma_seq11right), 1541rest671) end 1542| (136,rest671) => let val result=MlyValue.ExpComma_seq0(fn _ => ( 1543 nil )) 1544 in (LrTable.NT 90,(result,defaultPos,defaultPos),rest671) end 1545| (137,(_,(MlyValue.ExpComma_seq1 ExpComma_seq11,_,ExpComma_seq11right 1546))::_::(_,(MlyValue.Exp_ Exp_1,Exp_1left,_))::rest671) => let val 1547result=MlyValue.ExpComma_seq1(fn _ => let val Exp_ as Exp_1=Exp_1 () 1548val ExpComma_seq1 as ExpComma_seq11=ExpComma_seq11 () 1549 in ( Exp_ :: ExpComma_seq1 ) end 1550) 1551 in (LrTable.NT 91,(result,Exp_1left,ExpComma_seq11right),rest671) end 1552| (138,(_,(MlyValue.Exp_ Exp_1,Exp_1left,Exp_1right))::rest671) => 1553let val result=MlyValue.ExpComma_seq1(fn _ => let val Exp_ as Exp_1= 1554Exp_1 () 1555 in ( [Exp_] ) end 1556) 1557 in (LrTable.NT 91,(result,Exp_1left,Exp_1right),rest671) end 1558| (139,(_,(MlyValue.ExpComma_seq1 ExpComma_seq11,_,ExpComma_seq11right 1559))::_::(_,(MlyValue.Exp_ Exp_1,Exp_1left,_))::rest671) => let val 1560result=MlyValue.ExpComma_seq2(fn _ => let val Exp_ as Exp_1=Exp_1 () 1561val ExpComma_seq1 as ExpComma_seq11=ExpComma_seq11 () 1562 in ( Exp_ :: ExpComma_seq1 ) end 1563) 1564 in (LrTable.NT 92,(result,Exp_1left,ExpComma_seq11right),rest671) end 1565| (140,(_,(MlyValue.ExpSemicolon_seq2 ExpSemicolon_seq21,_, 1566ExpSemicolon_seq21right))::_::(_,(MlyValue.Exp_ Exp_1,Exp_1left,_)):: 1567rest671) => let val result=MlyValue.ExpSemicolon_seq2(fn _ => let val 1568Exp_ as Exp_1=Exp_1 () 1569val ExpSemicolon_seq2 as ExpSemicolon_seq21=ExpSemicolon_seq21 () 1570 in ( Exp_ :: ExpSemicolon_seq2) end 1571) 1572 in (LrTable.NT 99,(result,Exp_1left,ExpSemicolon_seq21right),rest671) 1573 end 1574| (141,(_,(MlyValue.Exp_ Exp_2,_,Exp_2right))::_::(_,(MlyValue.Exp_ 1575Exp_1,Exp_1left,_))::rest671) => let val result= 1576MlyValue.ExpSemicolon_seq2(fn _ => let val Exp_1=Exp_1 () 1577val Exp_2=Exp_2 () 1578 in ( [Exp_1, Exp_2] ) end 1579) 1580 in (LrTable.NT 99,(result,Exp_1left,Exp_2right),rest671) end 1581| (142,(_,(MlyValue.AtExp_seq1 AtExp_seq11,AtExp_seq1left as 1582AtExp_seq11left,AtExp_seq1right as AtExp_seq11right))::rest671) => 1583let val result=MlyValue.Exp_(fn _ => let val AtExp_seq1 as AtExp_seq11 1584=AtExp_seq11 () 1585 in ( UNRES_INFIXexp (PP AtExp_seq1left AtExp_seq1right, AtExp_seq1) ) 1586 end 1587) 1588 in (LrTable.NT 66,(result,AtExp_seq11left,AtExp_seq11right),rest671) 1589 end 1590| (143,(_,(MlyValue.Ty Ty1,_,Tyright as Ty1right))::_::(_,( 1591MlyValue.Exp_ Exp_1,Exp_left as Exp_1left,_))::rest671) => let val 1592result=MlyValue.Exp_(fn _ => let val Exp_ as Exp_1=Exp_1 () 1593val Ty as Ty1=Ty1 () 1594 in ( TYPEDexp (PP Exp_left Tyright, Exp_, Ty) ) end 1595) 1596 in (LrTable.NT 66,(result,Exp_1left,Ty1right),rest671) end 1597| (144,(_,(MlyValue.Match_ Match_1,_,Match_1right))::_::(_,( 1598MlyValue.Exp_ Exp_1,Exp_left as Exp_1left,_))::rest671) => let val 1599result=MlyValue.Exp_(fn _ => let val Exp_ as Exp_1=Exp_1 () 1600val Match_ as Match_1=Match_1 () 1601 in ( 1602 HANDLEexp (PP Exp_left (right (get_info_match Match_)), 1603 Exp_, Match_) 1604) end 1605) 1606 in (LrTable.NT 66,(result,Exp_1left,Match_1right),rest671) end 1607| (145,(_,(MlyValue.Exp_ Exp_1,_,Exp_1right))::(_,(_,RAISEleft as 1608RAISE1left,_))::rest671) => let val result=MlyValue.Exp_(fn _ => let 1609val Exp_ as Exp_1=Exp_1 () 1610 in ( RAISEexp (PP RAISEleft (right (get_info_exp Exp_)), Exp_) ) end 1611) 1612 in (LrTable.NT 66,(result,RAISE1left,Exp_1right),rest671) end 1613| (146,(_,(MlyValue.Match_ Match_1,_,Match_1right))::(_,(_,FNleft as 1614FN1left,_))::rest671) => let val result=MlyValue.Exp_(fn _ => let val 1615Match_ as Match_1=Match_1 () 1616 in ( FNexp (PP FNleft (right (get_info_match Match_)), Match_) ) end 1617) 1618 in (LrTable.NT 66,(result,FN1left,Match_1right),rest671) end 1619| (147,(_,(MlyValue.Match_ Match_1,_,Match_1right))::_::(_,( 1620MlyValue.Exp_ Exp_1,_,_))::(_,(_,CASEleft as CASE1left,_))::rest671) 1621 => let val result=MlyValue.Exp_(fn _ => let val Exp_ as Exp_1=Exp_1 1622() 1623val Match_ as Match_1=Match_1 () 1624 in ( 1625 case_exp (PP CASEleft (right (get_info_match Match_))) 1626 (Exp_, Match_) 1627) end 1628) 1629 in (LrTable.NT 66,(result,CASE1left,Match_1right),rest671) end 1630| (148,(_,(MlyValue.Exp_ Exp_3,_,Exp_3right))::_::(_,(MlyValue.Exp_ 1631Exp_2,_,_))::_::(_,(MlyValue.Exp_ Exp_1,_,_))::(_,(_,IFleft as IF1left 1632,_))::rest671) => let val result=MlyValue.Exp_(fn _ => let val Exp_1= 1633Exp_1 () 1634val Exp_2=Exp_2 () 1635val Exp_3=Exp_3 () 1636 in ( 1637 if_then_else_exp (PP IFleft (right (get_info_exp Exp_3))) 1638 (Exp_1, Exp_2, Exp_3) 1639) end 1640) 1641 in (LrTable.NT 66,(result,IF1left,Exp_3right),rest671) end 1642| (149,(_,(MlyValue.Exp_ Exp_2,_,Exp_2right))::_::(_,(MlyValue.Exp_ 1643Exp_1,Exp_1left,_))::rest671) => let val result=MlyValue.Exp_(fn _ => 1644let val Exp_1=Exp_1 () 1645val Exp_2=Exp_2 () 1646 in ( 1647 let val info = PP Exp_1left (right (get_info_exp Exp_2)) 1648 in 1649 if_then_else_exp info (Exp_1, exp_true info, Exp_2) 1650 end 1651) end 1652) 1653 in (LrTable.NT 66,(result,Exp_1left,Exp_2right),rest671) end 1654| (150,(_,(MlyValue.Exp_ Exp_2,_,Exp_2right))::_::(_,(MlyValue.Exp_ 1655Exp_1,Exp_1left,_))::rest671) => let val result=MlyValue.Exp_(fn _ => 1656let val Exp_1=Exp_1 () 1657val Exp_2=Exp_2 () 1658 in ( 1659 let val info = PP Exp_1left (right (get_info_exp Exp_2)) 1660 in 1661 if_then_else_exp info (Exp_1, Exp_2, exp_false info) 1662 end 1663) end 1664) 1665 in (LrTable.NT 66,(result,Exp_1left,Exp_2right),rest671) end 1666| (151,(_,(MlyValue.Exp_ Exp_2,_,Exp_2right))::_::(_,(MlyValue.Exp_ 1667Exp_1,_,_))::(_,(_,WHILEleft as WHILE1left,_))::rest671) => let val 1668result=MlyValue.Exp_(fn _ => let val Exp_1=Exp_1 () 1669val Exp_2=Exp_2 () 1670 in ( 1671 while_exp (PP WHILEleft (right (get_info_exp Exp_2))) 1672 (Exp_1, Exp_2) 1673) end 1674) 1675 in (LrTable.NT 66,(result,WHILE1left,Exp_2right),rest671) end 1676| (152,(_,(MlyValue.BarMatch_opt BarMatch_opt1,_,BarMatch_opt1right)) 1677::(_,(MlyValue.MRule MRule1,MRuleleft as MRule1left,_))::rest671) => 1678let val result=MlyValue.Match_(fn _ => let val MRule as MRule1=MRule1 1679() 1680val BarMatch_opt as BarMatch_opt1=BarMatch_opt1 () 1681 in ( 1682 MATCH (PP MRuleleft 1683 (rightmost get_info_mrule MRule 1684 get_info_match BarMatch_opt), 1685 MRule, BarMatch_opt) 1686) end 1687) 1688 in (LrTable.NT 67,(result,MRule1left,BarMatch_opt1right),rest671) end 1689| (153,(_,(MlyValue.Match_ Match_1,_,Match_1right))::(_,(_,BAR1left,_) 1690)::rest671) => let val result=MlyValue.BarMatch_opt(fn _ => let val 1691Match_ as Match_1=Match_1 () 1692 in ( SOME Match_ ) end 1693) 1694 in (LrTable.NT 79,(result,BAR1left,Match_1right),rest671) end 1695| (154,rest671) => let val result=MlyValue.BarMatch_opt(fn _ => ( 1696 NONE )) 1697 in (LrTable.NT 79,(result,defaultPos,defaultPos),rest671) end 1698| (155,(_,(MlyValue.Exp_ Exp_1,_,Exp_1right))::_::(_,(MlyValue.Pat 1699Pat1,Patleft as Pat1left,_))::rest671) => let val result= 1700MlyValue.MRule(fn _ => let val Pat as Pat1=Pat1 () 1701val Exp_ as Exp_1=Exp_1 () 1702 in ( MRULE (PP Patleft (right (get_info_exp Exp_)), Pat, Exp_) ) end 1703) 1704 in (LrTable.NT 65,(result,Pat1left,Exp_1right),rest671) end 1705| (156,(_,(MlyValue.ValBind ValBind1,_,ValBind1right))::(_,(_,VALleft 1706 as VAL1left,_))::rest671) => let val result= 1707MlyValue.OneDec_sans_LOCAL(fn _ => let val ValBind as ValBind1= 1708ValBind1 () 1709 in ( 1710 VALdec (PP VALleft (right (get_info_valbind ValBind)), 1711 [], ValBind) 1712) end 1713) 1714 in (LrTable.NT 112,(result,VAL1left,ValBind1right),rest671) end 1715| (157,(_,(MlyValue.ValBind ValBind1,_,ValBind1right))::(_,( 1716MlyValue.TyVarSeq1 TyVarSeq11,_,_))::(_,(_,VALleft as VAL1left,_)):: 1717rest671) => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let val 1718TyVarSeq1 as TyVarSeq11=TyVarSeq11 () 1719val ValBind as ValBind1=ValBind1 () 1720 in ( 1721 VALdec (PP VALleft (right (get_info_valbind ValBind)), 1722 TyVarSeq1, ValBind) 1723) end 1724) 1725 in (LrTable.NT 112,(result,VAL1left,ValBind1right),rest671) end 1726| (158,(_,(MlyValue.TypBind TypBind1,_,TypBind1right))::(_,(_,TYPEleft 1727 as TYPE1left,_))::rest671) => let val result= 1728MlyValue.OneDec_sans_LOCAL(fn _ => let val TypBind as TypBind1= 1729TypBind1 () 1730 in ( 1731 TYPEdec (PP TYPEleft (right (get_info_typbind TypBind)), 1732 TypBind) 1733) end 1734) 1735 in (LrTable.NT 112,(result,TYPE1left,TypBind1right),rest671) end 1736| (159,(_,(MlyValue.DatBind_zero_arity DatBind_zero_arity1,_, 1737DatBind_zero_arity1right))::(_,(_,DATATYPEleft as DATATYPE1left,_)):: 1738rest671) => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let val 1739DatBind_zero_arity as DatBind_zero_arity1=DatBind_zero_arity1 () 1740 in ( 1741 DATATYPEdec (PP DATATYPEleft 1742 (right (get_info_datbind DatBind_zero_arity)), 1743 DatBind_zero_arity) 1744) end 1745) 1746 in (LrTable.NT 112,(result,DATATYPE1left,DatBind_zero_arity1right), 1747rest671) end 1748| (160,(_,(MlyValue.DatBind_nonzero_arity DatBind_nonzero_arity1,_, 1749DatBind_nonzero_arity1right))::(_,(_,DATATYPEleft as DATATYPE1left,_)) 1750::rest671) => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let 1751val DatBind_nonzero_arity as DatBind_nonzero_arity1= 1752DatBind_nonzero_arity1 () 1753 in ( 1754 DATATYPEdec(PP DATATYPEleft 1755 (right (get_info_datbind DatBind_nonzero_arity)), 1756 DatBind_nonzero_arity) 1757) end 1758) 1759 in (LrTable.NT 112,(result,DATATYPE1left,DatBind_nonzero_arity1right) 1760,rest671) end 1761| (161,(_,(MlyValue.LongTypeIdent LongTypeIdent1,_,LongTypeIdentright 1762 as LongTypeIdent1right))::_::_::(_,(MlyValue.TypeIdent TypeIdent1,_,_ 1763))::(_,(_,DATATYPE1left,_))::rest671) => let val result= 1764MlyValue.OneDec_sans_LOCAL(fn _ => let val TypeIdent as TypeIdent1= 1765TypeIdent1 () 1766val LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 1767 in ( 1768 DATATYPE_REPLICATIONdec 1769 (PP DATATYPE1left LongTypeIdentright, 1770 mk_TyCon TypeIdent, mk_LongTyCon LongTypeIdent) 1771) end 1772) 1773 in (LrTable.NT 112,(result,DATATYPE1left,LongTypeIdent1right),rest671 1774) end 1775| (162,(_,(_,_,ENDright as END1right))::(_,(MlyValue.Dec Dec1,_,_))::_ 1776::(_,(MlyValue.DatBind DatBind1,_,_))::(_,(_,ABSTYPEleft as 1777ABSTYPE1left,_))::rest671) => let val result= 1778MlyValue.OneDec_sans_LOCAL(fn _ => let val DatBind as DatBind1= 1779DatBind1 () 1780val Dec as Dec1=Dec1 () 1781 in ( ABSTYPEdec (PP ABSTYPEleft ENDright, DatBind, Dec) ) end 1782) 1783 in (LrTable.NT 112,(result,ABSTYPE1left,END1right),rest671) end 1784| (163,(_,(MlyValue.ExBind ExBind1,_,ExBind1right))::(_,(_, 1785EXCEPTIONleft as EXCEPTION1left,_))::rest671) => let val result= 1786MlyValue.OneDec_sans_LOCAL(fn _ => let val ExBind as ExBind1=ExBind1 1787() 1788 in ( 1789 EXCEPTIONdec (PP EXCEPTIONleft 1790 (right (get_info_exbind ExBind)), 1791 ExBind) 1792) end 1793) 1794 in (LrTable.NT 112,(result,EXCEPTION1left,ExBind1right),rest671) end 1795| (164,(_,(MlyValue.LongIdent_seq1 LongIdent_seq11,_, 1796LongIdent_seq1right as LongIdent_seq11right))::(_,(_,OPENleft as 1797OPEN1left,_))::rest671) => let val result=MlyValue.OneDec_sans_LOCAL( 1798fn _ => let val LongIdent_seq1 as LongIdent_seq11=LongIdent_seq11 () 1799 in ( 1800 OPENdec (PP OPENleft LongIdent_seq1right, 1801 wi_Convert mk_LongStrId LongIdent_seq1) 1802) end 1803) 1804 in (LrTable.NT 112,(result,OPEN1left,LongIdent_seq11right),rest671) 1805 end 1806| (165,(_,(MlyValue.EqIdent_seq1 EqIdent_seq11,_,EqIdent_seq1right as 1807EqIdent_seq11right))::(_,(MlyValue.DIGIT_opt DIGIT_opt1,_,_))::(_,(_, 1808INFIXleft as INFIX1left,_))::rest671) => let val result= 1809MlyValue.OneDec_sans_LOCAL(fn _ => let val DIGIT_opt as DIGIT_opt1= 1810DIGIT_opt1 () 1811val EqIdent_seq1 as EqIdent_seq11=EqIdent_seq11 () 1812 in ( 1813 INFIXdec (PP INFIXleft EqIdent_seq1right, 1814 DIGIT_opt, map mk_Id EqIdent_seq1) 1815) end 1816) 1817 in (LrTable.NT 112,(result,INFIX1left,EqIdent_seq11right),rest671) 1818 end 1819| (166,(_,(MlyValue.EqIdent_seq1 EqIdent_seq11,_,EqIdent_seq1right as 1820EqIdent_seq11right))::(_,(MlyValue.DIGIT_opt DIGIT_opt1,_,_))::(_,(_, 1821INFIXRleft as INFIXR1left,_))::rest671) => let val result= 1822MlyValue.OneDec_sans_LOCAL(fn _ => let val DIGIT_opt as DIGIT_opt1= 1823DIGIT_opt1 () 1824val EqIdent_seq1 as EqIdent_seq11=EqIdent_seq11 () 1825 in ( 1826 INFIXRdec (PP INFIXRleft EqIdent_seq1right, 1827 DIGIT_opt, map mk_Id EqIdent_seq1) 1828) end 1829) 1830 in (LrTable.NT 112,(result,INFIXR1left,EqIdent_seq11right),rest671) 1831 end 1832| (167,(_,(MlyValue.EqIdent_seq1 EqIdent_seq11,_,EqIdent_seq1right as 1833EqIdent_seq11right))::(_,(_,NONFIXleft as NONFIX1left,_))::rest671) 1834 => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let val 1835EqIdent_seq1 as EqIdent_seq11=EqIdent_seq11 () 1836 in ( 1837 NONFIXdec (PP NONFIXleft EqIdent_seq1right, 1838 map mk_Id EqIdent_seq1) 1839) end 1840) 1841 in (LrTable.NT 112,(result,NONFIX1left,EqIdent_seq11right),rest671) 1842 end 1843| (168,(_,(MlyValue.TypBind TypBind1,_,TypBind1right))::_::(_,( 1844MlyValue.DatBind_zero_arity DatBind_zero_arity1,_,_))::(_,(_, 1845DATATYPEleft as DATATYPE1left,_))::rest671) => let val result= 1846MlyValue.OneDec_sans_LOCAL(fn _ => let val DatBind_zero_arity as 1847DatBind_zero_arity1=DatBind_zero_arity1 () 1848val TypBind as TypBind1=TypBind1 () 1849 in ( 1850 let val db = rewriteDatBind (DatBind_zero_arity, TypBind) 1851 in 1852 SEQdec (PP DATATYPEleft (right (get_info_typbind TypBind)), 1853 DATATYPEdec 1854 (get_info_datbind DatBind_zero_arity, db), 1855 TYPEdec (get_info_typbind TypBind, TypBind)) 1856 end 1857) end 1858) 1859 in (LrTable.NT 112,(result,DATATYPE1left,TypBind1right),rest671) end 1860| (169,(_,(MlyValue.TypBind TypBind1,_,TypBind1right))::_::(_,( 1861MlyValue.DatBind_nonzero_arity DatBind_nonzero_arity1,_,_))::(_,(_, 1862DATATYPEleft as DATATYPE1left,_))::rest671) => let val result= 1863MlyValue.OneDec_sans_LOCAL(fn _ => let val DatBind_nonzero_arity as 1864DatBind_nonzero_arity1=DatBind_nonzero_arity1 () 1865val TypBind as TypBind1=TypBind1 () 1866 in ( 1867 let val db = rewriteDatBind (DatBind_nonzero_arity, TypBind) 1868 in 1869 SEQdec (PP DATATYPEleft (right (get_info_typbind TypBind)), 1870 DATATYPEdec 1871 (get_info_datbind DatBind_nonzero_arity, db), 1872 TYPEdec (get_info_typbind TypBind, TypBind)) 1873 end 1874) end 1875) 1876 in (LrTable.NT 112,(result,DATATYPE1left,TypBind1right),rest671) end 1877| (170,(_,(_,_,ENDright as END1right))::(_,(MlyValue.Dec Dec1,_,_))::_ 1878::(_,(MlyValue.TypBind TypBind1,TypBindleft,_))::_::(_,( 1879MlyValue.DatBind DatBind1,_,_))::(_,(_,ABSTYPEleft as ABSTYPE1left,_)) 1880::rest671) => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let 1881val DatBind as DatBind1=DatBind1 () 1882val TypBind as TypBind1=TypBind1 () 1883val Dec as Dec1=Dec1 () 1884 in ( 1885 let val db = rewriteDatBind (DatBind, TypBind) 1886 in 1887 ABSTYPEdec 1888 (PP ABSTYPEleft ENDright, db, 1889 SEQdec (PP TypBindleft (right (get_info_dec Dec)), 1890 TYPEdec (get_info_typbind TypBind, TypBind), 1891 Dec)) 1892 end 1893) end 1894) 1895 in (LrTable.NT 112,(result,ABSTYPE1left,END1right),rest671) end 1896| (171,(_,(MlyValue.FValBind FValBind1,_,FValBind1right))::(_,(_, 1897FUNleft as FUN1left,_))::rest671) => let val result= 1898MlyValue.OneDec_sans_LOCAL(fn _ => let val FValBind as FValBind1= 1899FValBind1 () 1900 in ( 1901 UNRES_FUNdec (PP FUNleft (right (get_info_FValBind FValBind)), 1902 [], FValBind) 1903) end 1904) 1905 in (LrTable.NT 112,(result,FUN1left,FValBind1right),rest671) end 1906| (172,(_,(MlyValue.FValBind FValBind1,_,FValBind1right))::(_,( 1907MlyValue.TyVarSeq1 TyVarSeq11,_,_))::(_,(_,FUNleft as FUN1left,_)):: 1908rest671) => let val result=MlyValue.OneDec_sans_LOCAL(fn _ => let val 1909TyVarSeq1 as TyVarSeq11=TyVarSeq11 () 1910val FValBind as FValBind1=FValBind1 () 1911 in ( 1912 UNRES_FUNdec (PP FUNleft (right (get_info_FValBind FValBind)), 1913 TyVarSeq1, FValBind) 1914) end 1915) 1916 in (LrTable.NT 112,(result,FUN1left,FValBind1right),rest671) end 1917| (173,(_,(_,_,ENDright as END1right))::(_,(MlyValue.Dec Dec2,_,_))::_ 1918::(_,(MlyValue.Dec Dec1,_,_))::(_,(_,LOCALleft as LOCAL1left,_)):: 1919rest671) => let val result=MlyValue.OneDec(fn _ => let val Dec1=Dec1 1920() 1921val Dec2=Dec2 () 1922 in ( LOCALdec (PP LOCALleft ENDright, Dec1, Dec2) ) end 1923) 1924 in (LrTable.NT 111,(result,LOCAL1left,END1right),rest671) end 1925| (174,(_,(MlyValue.OneDec_sans_LOCAL OneDec_sans_LOCAL1, 1926OneDec_sans_LOCAL1left,OneDec_sans_LOCAL1right))::rest671) => let val 1927result=MlyValue.OneDec(fn _ => let val OneDec_sans_LOCAL as 1928OneDec_sans_LOCAL1=OneDec_sans_LOCAL1 () 1929 in ( OneDec_sans_LOCAL ) end 1930) 1931 in (LrTable.NT 111,(result,OneDec_sans_LOCAL1left, 1932OneDec_sans_LOCAL1right),rest671) end 1933| (175,(_,(MlyValue.OneDec OneDec1,OneDec1left,OneDec1right))::rest671 1934) => let val result=MlyValue.OneDec_or_SEMICOLON(fn _ => let val 1935OneDec as OneDec1=OneDec1 () 1936 in ( SOME OneDec ) end 1937) 1938 in (LrTable.NT 103,(result,OneDec1left,OneDec1right),rest671) end 1939| (176,(_,(_,SEMICOLON1left,SEMICOLON1right))::rest671) => let val 1940result=MlyValue.OneDec_or_SEMICOLON(fn _ => ( NONE )) 1941 in (LrTable.NT 103,(result,SEMICOLON1left,SEMICOLON1right),rest671) 1942 end 1943| (177,(_,(MlyValue.OneDec_or_SEMICOLON OneDec_or_SEMICOLON1,_, 1944OneDec_or_SEMICOLON1right))::(_,(MlyValue.NonEmptyDec NonEmptyDec1, 1945NonEmptyDecleft as NonEmptyDec1left,_))::rest671) => let val result= 1946MlyValue.NonEmptyDec(fn _ => let val NonEmptyDec as NonEmptyDec1= 1947NonEmptyDec1 () 1948val OneDec_or_SEMICOLON as OneDec_or_SEMICOLON1=OneDec_or_SEMICOLON1 1949() 1950 in ( 1951 (case OneDec_or_SEMICOLON of 1952 SOME dec => 1953 composeDec (PP NonEmptyDecleft 1954 (right (get_info_dec dec)), 1955 NonEmptyDec, dec) 1956 | NONE => NonEmptyDec) 1957) end 1958) 1959 in (LrTable.NT 104,(result,NonEmptyDec1left,OneDec_or_SEMICOLON1right 1960),rest671) end 1961| (178,(_,(MlyValue.OneDec_or_SEMICOLON OneDec_or_SEMICOLON1, 1962OneDec_or_SEMICOLON1left,OneDec_or_SEMICOLON1right))::rest671) => let 1963val result=MlyValue.NonEmptyDec(fn _ => let val OneDec_or_SEMICOLON 1964 as OneDec_or_SEMICOLON1=OneDec_or_SEMICOLON1 () 1965 in ( 1966 (case OneDec_or_SEMICOLON of 1967 SOME dec => dec 1968 | NONE => EMPTYdec (PP defaultPos defaultPos)) 1969) end 1970) 1971 in (LrTable.NT 104,(result,OneDec_or_SEMICOLON1left, 1972OneDec_or_SEMICOLON1right),rest671) end 1973| (179,(_,(MlyValue.NonEmptyDec NonEmptyDec1,NonEmptyDec1left, 1974NonEmptyDec1right))::rest671) => let val result=MlyValue.Dec(fn _ => 1975let val NonEmptyDec as NonEmptyDec1=NonEmptyDec1 () 1976 in ( NonEmptyDec ) end 1977) 1978 in (LrTable.NT 64,(result,NonEmptyDec1left,NonEmptyDec1right),rest671 1979) end 1980| (180,rest671) => let val result=MlyValue.Dec(fn _ => ( 1981 EMPTYdec (PP defaultPos defaultPos) )) 1982 in (LrTable.NT 64,(result,defaultPos,defaultPos),rest671) end 1983| (181,(_,(MlyValue.AndValBind_opt AndValBind_opt1,_, 1984AndValBind_opt1right))::(_,(MlyValue.Exp_ Exp_1,_,_))::_::(_,( 1985MlyValue.Pat Pat1,Patleft as Pat1left,_))::rest671) => let val result= 1986MlyValue.ValBind(fn _ => let val Pat as Pat1=Pat1 () 1987val Exp_ as Exp_1=Exp_1 () 1988val AndValBind_opt as AndValBind_opt1=AndValBind_opt1 () 1989 in ( 1990 PLAINvalbind (PP Patleft 1991 (rightmost get_info_exp Exp_ 1992 get_info_valbind AndValBind_opt), 1993 Pat, Exp_, AndValBind_opt) 1994) end 1995) 1996 in (LrTable.NT 61,(result,Pat1left,AndValBind_opt1right),rest671) end 1997| (182,(_,(MlyValue.FnValBind FnValBind1,_,FnValBind1right))::(_,(_, 1998RECleft as REC1left,_))::rest671) => let val result=MlyValue.ValBind( 1999fn _ => let val FnValBind as FnValBind1=FnValBind1 () 2000 in ( 2001 RECvalbind (PP RECleft 2002 (right (get_info_valbind FnValBind)), 2003 FnValBind) 2004) end 2005) 2006 in (LrTable.NT 61,(result,REC1left,FnValBind1right),rest671) end 2007| (183,(_,(MlyValue.ValBind ValBind1,_,ValBind1right))::(_,(_,AND1left 2008,_))::rest671) => let val result=MlyValue.AndValBind_opt(fn _ => let 2009val ValBind as ValBind1=ValBind1 () 2010 in ( SOME ValBind ) end 2011) 2012 in (LrTable.NT 72,(result,AND1left,ValBind1right),rest671) end 2013| (184,rest671) => let val result=MlyValue.AndValBind_opt(fn _ => ( 2014 NONE )) 2015 in (LrTable.NT 72,(result,defaultPos,defaultPos),rest671) end 2016| (185,(_,(MlyValue.AndFnValBind_opt AndFnValBind_opt1,_, 2017AndFnValBind_opt1right))::(_,(MlyValue.Match_ Match_1,_,_))::(_,(_, 2018FNleft,_))::_::(_,(MlyValue.Pat Pat1,Patleft as Pat1left,_))::rest671) 2019 => let val result=MlyValue.FnValBind(fn _ => let val Pat as Pat1=Pat1 2020 () 2021val Match_ as Match_1=Match_1 () 2022val AndFnValBind_opt as AndFnValBind_opt1=AndFnValBind_opt1 () 2023 in ( 2024 PLAINvalbind 2025 (PP Patleft 2026 (rightmost get_info_match Match_ 2027 get_info_valbind AndFnValBind_opt), 2028 Pat, 2029 FNexp (PP FNleft (right (get_info_match Match_)), Match_), 2030 AndFnValBind_opt) 2031) end 2032) 2033 in (LrTable.NT 62,(result,Pat1left,AndFnValBind_opt1right),rest671) 2034 end 2035| (186,(_,(MlyValue.AndFnValBind_opt AndFnValBind_opt1,_, 2036AndFnValBind_opt1right))::(_,(MlyValue.ColonTy_seq1 ColonTy_seq11,_, 2037ColonTy_seq1right))::(_,(_,_,RPARENright))::(_,(MlyValue.Match_ 2038Match_1,_,_))::(_,(_,FNleft,_))::(_,(_,LPARENleft,_))::_::(_,( 2039MlyValue.Pat Pat1,Patleft as Pat1left,_))::rest671) => let val result= 2040MlyValue.FnValBind(fn _ => let val Pat as Pat1=Pat1 () 2041val Match_ as Match_1=Match_1 () 2042val ColonTy_seq1 as ColonTy_seq11=ColonTy_seq11 () 2043val AndFnValBind_opt as AndFnValBind_opt1=AndFnValBind_opt1 () 2044 in ( 2045 let 2046 val fnExp = 2047 FNexp (PP FNleft (right (get_info_match Match_)), Match_) 2048 val parAtexp = 2049 PARatexp (PP LPARENleft RPARENright, fnExp) 2050 val atexpExp = 2051 ATEXPexp (PP LPARENleft RPARENright, parAtexp) 2052 2053 fun attachTypes (e, nil) = e 2054 | attachTypes (e, (ty, p) :: rest) = 2055 attachTypes (TYPEDexp (PP FNleft p, e, ty), rest) 2056 in 2057 PLAINvalbind (PP Patleft 2058 (rightmost' ColonTy_seq1right 2059 get_info_valbind AndFnValBind_opt), 2060 Pat, 2061 attachTypes (atexpExp, ColonTy_seq1), 2062 AndFnValBind_opt) 2063 end 2064) end 2065) 2066 in (LrTable.NT 62,(result,Pat1left,AndFnValBind_opt1right),rest671) 2067 end 2068| (187,(_,(MlyValue.FnValBind FnValBind1,_,FnValBind1right))::(_,(_, 2069RECleft as REC1left,_))::rest671) => let val result=MlyValue.FnValBind 2070(fn _ => let val FnValBind as FnValBind1=FnValBind1 () 2071 in ( 2072 RECvalbind (PP RECleft 2073 (right (get_info_valbind FnValBind)), 2074 FnValBind) 2075) end 2076) 2077 in (LrTable.NT 62,(result,REC1left,FnValBind1right),rest671) end 2078| (188,(_,(MlyValue.ColonTy_seq1 ColonTy_seq11,_,ColonTy_seq11right)) 2079::(_,(MlyValue.Ty Ty1,_,Tyright))::(_,(_,COLON1left,_))::rest671) => 2080let val result=MlyValue.ColonTy_seq1(fn _ => let val Ty as Ty1=Ty1 () 2081val ColonTy_seq1 as ColonTy_seq11=ColonTy_seq11 () 2082 in ( (Ty, Tyright) :: ColonTy_seq1 ) end 2083) 2084 in (LrTable.NT 86,(result,COLON1left,ColonTy_seq11right),rest671) end 2085| (189,(_,(MlyValue.Ty Ty1,_,Tyright as Ty1right))::(_,(_,COLON1left,_ 2086))::rest671) => let val result=MlyValue.ColonTy_seq1(fn _ => let val 2087Ty as Ty1=Ty1 () 2088 in ( [(Ty, Tyright)] ) end 2089) 2090 in (LrTable.NT 86,(result,COLON1left,Ty1right),rest671) end 2091| (190,(_,(MlyValue.FnValBind FnValBind1,_,FnValBind1right))::(_,(_, 2092AND1left,_))::rest671) => let val result=MlyValue.AndFnValBind_opt(fn 2093_ => let val FnValBind as FnValBind1=FnValBind1 () 2094 in ( SOME FnValBind ) end 2095) 2096 in (LrTable.NT 73,(result,AND1left,FnValBind1right),rest671) end 2097| (191,rest671) => let val result=MlyValue.AndFnValBind_opt(fn _ => ( 2098 NONE )) 2099 in (LrTable.NT 73,(result,defaultPos,defaultPos),rest671) end 2100| (192,(_,(MlyValue.AndTypBind_opt AndTypBind_opt1,_, 2101AndTypBind_opt1right))::(_,(MlyValue.Ty Ty1,_,_))::_::(_,( 2102MlyValue.TypeIdent TypeIdent1,_,_))::(_,(MlyValue.TyVarSeq TyVarSeq1, 2103TyVarSeqleft as TyVarSeq1left,_))::rest671) => let val result= 2104MlyValue.TypBind(fn _ => let val TyVarSeq as TyVarSeq1=TyVarSeq1 () 2105val TypeIdent as TypeIdent1=TypeIdent1 () 2106val Ty as Ty1=Ty1 () 2107val AndTypBind_opt as AndTypBind_opt1=AndTypBind_opt1 () 2108 in ( 2109 TYPBIND (PP TyVarSeqleft 2110 (rightmost get_info_ty Ty 2111 get_info_typbind AndTypBind_opt), 2112 TyVarSeq, mk_TyCon TypeIdent, Ty, AndTypBind_opt) 2113) end 2114) 2115 in (LrTable.NT 60,(result,TyVarSeq1left,AndTypBind_opt1right),rest671 2116) end 2117| (193,(_,(MlyValue.TypBind TypBind1,_,TypBind1right))::(_,(_,AND1left 2118,_))::rest671) => let val result=MlyValue.AndTypBind_opt(fn _ => let 2119val TypBind as TypBind1=TypBind1 () 2120 in ( SOME TypBind ) end 2121) 2122 in (LrTable.NT 76,(result,AND1left,TypBind1right),rest671) end 2123| (194,rest671) => let val result=MlyValue.AndTypBind_opt(fn _ => ( 2124 NONE )) 2125 in (LrTable.NT 76,(result,defaultPos,defaultPos),rest671) end 2126| (195,(_,(MlyValue.AndDatBind_opt AndDatBind_opt1,_, 2127AndDatBind_opt1right))::(_,(MlyValue.ConBind ConBind1,_,_))::_::(_,( 2128MlyValue.TypeIdent TypeIdent1,_,_))::(_,(MlyValue.TyVarSeq TyVarSeq1, 2129TyVarSeqleft as TyVarSeq1left,_))::rest671) => let val result= 2130MlyValue.DatBind(fn _ => let val TyVarSeq as TyVarSeq1=TyVarSeq1 () 2131val TypeIdent as TypeIdent1=TypeIdent1 () 2132val ConBind as ConBind1=ConBind1 () 2133val AndDatBind_opt as AndDatBind_opt1=AndDatBind_opt1 () 2134 in ( 2135 DATBIND (PP TyVarSeqleft 2136 (rightmost get_info_conbind ConBind 2137 get_info_datbind AndDatBind_opt), 2138 TyVarSeq, mk_TyCon TypeIdent, 2139 ConBind, AndDatBind_opt) 2140) end 2141) 2142 in (LrTable.NT 57,(result,TyVarSeq1left,AndDatBind_opt1right),rest671 2143) end 2144| (196,(_,(MlyValue.AndDatBind_opt AndDatBind_opt1,_, 2145AndDatBind_opt1right))::(_,(MlyValue.ConBind ConBind1,_,_))::_::(_,( 2146MlyValue.TypeIdent TypeIdent1,TypeIdentleft as TypeIdent1left,_)):: 2147rest671) => let val result=MlyValue.DatBind_zero_arity(fn _ => let 2148val TypeIdent as TypeIdent1=TypeIdent1 () 2149val ConBind as ConBind1=ConBind1 () 2150val AndDatBind_opt as AndDatBind_opt1=AndDatBind_opt1 () 2151 in ( 2152 DATBIND (PP TypeIdentleft 2153 (rightmost get_info_conbind ConBind 2154 get_info_datbind AndDatBind_opt), 2155 [], mk_TyCon TypeIdent, 2156 ConBind, AndDatBind_opt) 2157) end 2158) 2159 in (LrTable.NT 58,(result,TypeIdent1left,AndDatBind_opt1right), 2160rest671) end 2161| (197,(_,(MlyValue.AndDatBind_opt AndDatBind_opt1,_, 2162AndDatBind_opt1right))::(_,(MlyValue.ConBind ConBind1,_,_))::_::(_,( 2163MlyValue.TypeIdent TypeIdent1,_,_))::(_,(MlyValue.TyVarSeq1 TyVarSeq11 2164,TyVarSeq1left as TyVarSeq11left,_))::rest671) => let val result= 2165MlyValue.DatBind_nonzero_arity(fn _ => let val TyVarSeq1 as TyVarSeq11 2166=TyVarSeq11 () 2167val TypeIdent as TypeIdent1=TypeIdent1 () 2168val ConBind as ConBind1=ConBind1 () 2169val AndDatBind_opt as AndDatBind_opt1=AndDatBind_opt1 () 2170 in ( 2171 DATBIND (PP TyVarSeq1left 2172 (rightmost get_info_conbind ConBind 2173 get_info_datbind AndDatBind_opt), 2174 TyVarSeq1, mk_TyCon TypeIdent, 2175 ConBind, AndDatBind_opt) 2176) end 2177) 2178 in (LrTable.NT 59,(result,TyVarSeq11left,AndDatBind_opt1right), 2179rest671) end 2180| (198,(_,(MlyValue.DatBind DatBind1,_,DatBind1right))::(_,(_,AND1left 2181,_))::rest671) => let val result=MlyValue.AndDatBind_opt(fn _ => let 2182val DatBind as DatBind1=DatBind1 () 2183 in ( SOME DatBind ) end 2184) 2185 in (LrTable.NT 77,(result,AND1left,DatBind1right),rest671) end 2186| (199,rest671) => let val result=MlyValue.AndDatBind_opt(fn _ => ( 2187 NONE )) 2188 in (LrTable.NT 77,(result,defaultPos,defaultPos),rest671) end 2189| (200,(_,(MlyValue.BarConBind_opt BarConBind_opt1,_, 2190BarConBind_opt1right))::(_,(MlyValue.OfTy_opt OfTy_opt1,_,_))::(_,( 2191MlyValue.OpIdent OpIdent1,OpIdentleft as OpIdent1left,OpIdentright)):: 2192rest671) => let val result=MlyValue.ConBind(fn _ => let val OpIdent 2193 as OpIdent1=OpIdent1 () 2194val OfTy_opt as OfTy_opt1=OfTy_opt1 () 2195val BarConBind_opt as BarConBind_opt1=BarConBind_opt1 () 2196 in ( 2197 let val OP_OPT (id, withOp) = OpIdent 2198 in 2199 CONBIND (PP OpIdentleft 2200 (rightmost_of_three OpIdentright 2201 get_info_ty OfTy_opt 2202 get_info_conbind BarConBind_opt), 2203 OP_OPT (mk_Id id, withOp), 2204 OfTy_opt, BarConBind_opt) 2205 end 2206) end 2207) 2208 in (LrTable.NT 56,(result,OpIdent1left,BarConBind_opt1right),rest671) 2209 end 2210| (201,(_,(MlyValue.ConBind ConBind1,_,ConBind1right))::(_,(_,BAR1left 2211,_))::rest671) => let val result=MlyValue.BarConBind_opt(fn _ => let 2212val ConBind as ConBind1=ConBind1 () 2213 in ( SOME ConBind ) end 2214) 2215 in (LrTable.NT 78,(result,BAR1left,ConBind1right),rest671) end 2216| (202,rest671) => let val result=MlyValue.BarConBind_opt(fn _ => ( 2217 NONE )) 2218 in (LrTable.NT 78,(result,defaultPos,defaultPos),rest671) end 2219| (203,(_,(MlyValue.AndExBind_opt AndExBind_opt1,_,AndExBind_opt1right 2220))::(_,(MlyValue.OfTy_opt OfTy_opt1,_,_))::(_,(MlyValue.OpIdent 2221OpIdent1,OpIdentleft as OpIdent1left,OpIdentright))::rest671) => let 2222val result=MlyValue.ExBind(fn _ => let val OpIdent as OpIdent1= 2223OpIdent1 () 2224val OfTy_opt as OfTy_opt1=OfTy_opt1 () 2225val AndExBind_opt as AndExBind_opt1=AndExBind_opt1 () 2226 in ( 2227 let val OP_OPT (id, withOp) = OpIdent 2228 in 2229 EXBIND (PP OpIdentleft 2230 (rightmost_of_three OpIdentright 2231 get_info_ty OfTy_opt 2232 get_info_exbind AndExBind_opt), 2233 OP_OPT (mk_Id id, withOp), 2234 OfTy_opt, AndExBind_opt) 2235 end 2236) end 2237) 2238 in (LrTable.NT 55,(result,OpIdent1left,AndExBind_opt1right),rest671) 2239 end 2240| (204,(_,(MlyValue.AndExBind_opt AndExBind_opt1,_,AndExBind_opt1right 2241))::(_,(MlyValue.LongOpEqIdent LongOpEqIdent1,_,LongOpEqIdentright)):: 2242_::(_,(MlyValue.OpIdent OpIdent1,OpIdentleft as OpIdent1left,_)):: 2243rest671) => let val result=MlyValue.ExBind(fn _ => let val OpIdent as 2244OpIdent1=OpIdent1 () 2245val LongOpEqIdent as LongOpEqIdent1=LongOpEqIdent1 () 2246val AndExBind_opt as AndExBind_opt1=AndExBind_opt1 () 2247 in ( 2248 let val OP_OPT (id1, withOp1) = OpIdent 2249 val OP_OPT (id2, withOp2) = LongOpEqIdent 2250 in 2251 EXEQUAL (PP OpIdentleft 2252 (rightmost' LongOpEqIdentright 2253 get_info_exbind AndExBind_opt), 2254 OP_OPT (mk_Id id1, withOp1), 2255 OP_OPT (mk_LongId id2, withOp2), 2256 AndExBind_opt) 2257 end 2258) end 2259) 2260 in (LrTable.NT 55,(result,OpIdent1left,AndExBind_opt1right),rest671) 2261 end 2262| (205,(_,(MlyValue.ExBind ExBind1,_,ExBind1right))::(_,(_,AND1left,_) 2263)::rest671) => let val result=MlyValue.AndExBind_opt(fn _ => let val 2264ExBind as ExBind1=ExBind1 () 2265 in ( SOME ExBind ) end 2266) 2267 in (LrTable.NT 80,(result,AND1left,ExBind1right),rest671) end 2268| (206,rest671) => let val result=MlyValue.AndExBind_opt(fn _ => ( 2269 NONE )) 2270 in (LrTable.NT 80,(result,defaultPos,defaultPos),rest671) end 2271| (207,(_,(MlyValue.AndFValBind_opt AndFValBind_opt1,_, 2272AndFValBind_opt1right))::(_,(MlyValue.FClause FClause1,FClauseleft as 2273FClause1left,_))::rest671) => let val result=MlyValue.FValBind(fn _ 2274 => let val FClause as FClause1=FClause1 () 2275val AndFValBind_opt as AndFValBind_opt1=AndFValBind_opt1 () 2276 in ( 2277 FVALBIND (PP FClauseleft 2278 (rightmost get_info_FClause FClause 2279 get_info_FValBind AndFValBind_opt), 2280 FClause, AndFValBind_opt) 2281) end 2282) 2283 in (LrTable.NT 63,(result,FClause1left,AndFValBind_opt1right),rest671 2284) end 2285| (208,(_,(MlyValue.FValBind FValBind1,_,FValBind1right))::(_,(_, 2286AND1left,_))::rest671) => let val result=MlyValue.AndFValBind_opt(fn _ 2287 => let val FValBind as FValBind1=FValBind1 () 2288 in ( SOME FValBind ) end 2289) 2290 in (LrTable.NT 74,(result,AND1left,FValBind1right),rest671) end 2291| (209,rest671) => let val result=MlyValue.AndFValBind_opt(fn _ => ( 2292 NONE )) 2293 in (LrTable.NT 74,(result,defaultPos,defaultPos),rest671) end 2294| (210,(_,(MlyValue.BarFClause_opt BarFClause_opt1,_, 2295BarFClause_opt1right))::(_,(MlyValue.Exp_ Exp_1,_,_))::_::(_,( 2296MlyValue.ColonTy_opt ColonTy_opt1,_,_))::(_,(MlyValue.AtPat_seq1 2297AtPat_seq11,AtPat_seq1left as AtPat_seq11left,_))::rest671) => let 2298val result=MlyValue.FClause(fn _ => let val AtPat_seq1 as AtPat_seq11= 2299AtPat_seq11 () 2300val ColonTy_opt as ColonTy_opt1=ColonTy_opt1 () 2301val Exp_ as Exp_1=Exp_1 () 2302val BarFClause_opt as BarFClause_opt1=BarFClause_opt1 () 2303 in ( 2304 FCLAUSE (PP AtPat_seq1left 2305 (rightmost get_info_exp Exp_ 2306 get_info_FClause BarFClause_opt), 2307 AtPat_seq1, ColonTy_opt, 2308 Exp_, BarFClause_opt) 2309) end 2310) 2311 in (LrTable.NT 70,(result,AtPat_seq11left,BarFClause_opt1right), 2312rest671) end 2313| (211,(_,(MlyValue.FClause FClause1,_,FClause1right))::(_,(_,BAR1left 2314,_))::rest671) => let val result=MlyValue.BarFClause_opt(fn _ => let 2315val FClause as FClause1=FClause1 () 2316 in ( SOME FClause ) end 2317) 2318 in (LrTable.NT 75,(result,BAR1left,FClause1right),rest671) end 2319| (212,rest671) => let val result=MlyValue.BarFClause_opt(fn _ => ( 2320 NONE )) 2321 in (LrTable.NT 75,(result,defaultPos,defaultPos),rest671) end 2322| (213,(_,(MlyValue.AtPat_seq1 AtPat_seq11,_,AtPat_seq11right))::(_,( 2323MlyValue.AtPat AtPat1,AtPat1left,_))::rest671) => let val result= 2324MlyValue.AtPat_seq2(fn _ => let val AtPat as AtPat1=AtPat1 () 2325val AtPat_seq1 as AtPat_seq11=AtPat_seq11 () 2326 in ( AtPat :: AtPat_seq1 ) end 2327) 2328 in (LrTable.NT 97,(result,AtPat1left,AtPat_seq11right),rest671) end 2329| (214,(_,(MlyValue.AtPat_seq1 AtPat_seq11,_,AtPat_seq11right))::(_,( 2330MlyValue.AtPat AtPat1,AtPat1left,_))::rest671) => let val result= 2331MlyValue.AtPat_seq1(fn _ => let val AtPat as AtPat1=AtPat1 () 2332val AtPat_seq1 as AtPat_seq11=AtPat_seq11 () 2333 in ( AtPat :: AtPat_seq1 ) end 2334) 2335 in (LrTable.NT 98,(result,AtPat1left,AtPat_seq11right),rest671) end 2336| (215,(_,(MlyValue.AtPat AtPat1,AtPat1left,AtPat1right))::rest671) 2337 => let val result=MlyValue.AtPat_seq1(fn _ => let val AtPat as AtPat1 2338=AtPat1 () 2339 in ( [AtPat] ) end 2340) 2341 in (LrTable.NT 98,(result,AtPat1left,AtPat1right),rest671) end 2342| (216,(_,(MlyValue.Ty Ty1,_,Ty1right))::(_,(_,COLON1left,_))::rest671 2343) => let val result=MlyValue.ColonTy_opt(fn _ => let val Ty as Ty1=Ty1 2344 () 2345 in ( SOME Ty ) end 2346) 2347 in (LrTable.NT 85,(result,COLON1left,Ty1right),rest671) end 2348| (217,rest671) => let val result=MlyValue.ColonTy_opt(fn _ => ( NONE 2349)) 2350 in (LrTable.NT 85,(result,defaultPos,defaultPos),rest671) end 2351| (218,(_,(MlyValue.Ty Ty1,_,Ty1right))::(_,(_,OF1left,_))::rest671) 2352 => let val result=MlyValue.OfTy_opt(fn _ => let val Ty as Ty1=Ty1 () 2353 in ( SOME Ty ) end 2354) 2355 in (LrTable.NT 89,(result,OF1left,Ty1right),rest671) end 2356| (219,rest671) => let val result=MlyValue.OfTy_opt(fn _ => ( NONE )) 2357 in (LrTable.NT 89,(result,defaultPos,defaultPos),rest671) end 2358| (220,(_,(_,UNDERBARleft as UNDERBAR1left,UNDERBARright as 2359UNDERBAR1right))::rest671) => let val result=MlyValue.AtPat(fn _ => ( 2360 WILDCARDatpat (PP UNDERBARleft UNDERBARright) )) 2361 in (LrTable.NT 54,(result,UNDERBAR1left,UNDERBAR1right),rest671) end 2362| (221,(_,(MlyValue.SCon SCon1,SConleft as SCon1left,SConright as 2363SCon1right))::rest671) => let val result=MlyValue.AtPat(fn _ => let 2364val SCon as SCon1=SCon1 () 2365 in ( SCONatpat (PP SConleft SConright, SCon) ) end 2366) 2367 in (LrTable.NT 54,(result,SCon1left,SCon1right),rest671) end 2368| (222,(_,(MlyValue.LongOpIdent LongOpIdent1,LongOpIdentleft as 2369LongOpIdent1left,LongOpIdentright as LongOpIdent1right))::rest671) => 2370let val result=MlyValue.AtPat(fn _ => let val LongOpIdent as 2371LongOpIdent1=LongOpIdent1 () 2372 in ( 2373 let val OP_OPT (id, withOp) = LongOpIdent 2374 in 2375 LONGIDatpat (PP LongOpIdentleft LongOpIdentright, 2376 OP_OPT (mk_LongId id, withOp)) 2377 end 2378) end 2379) 2380 in (LrTable.NT 54,(result,LongOpIdent1left,LongOpIdent1right),rest671 2381) end 2382| (223,(_,(_,_,EQUALSright as EQUALS1right))::(_,(_,OPleft as OP1left, 2383_))::rest671) => let val result=MlyValue.AtPat(fn _ => ( 2384 LONGIDatpat (PP OPleft EQUALSright, 2385 OP_OPT (mk_LongId ["="], true)) 2386)) 2387 in (LrTable.NT 54,(result,OP1left,EQUALS1right),rest671) end 2388| (224,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.PatRow_opt 2389PatRow_opt1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => 2390let val result=MlyValue.AtPat(fn _ => let val PatRow_opt as 2391PatRow_opt1=PatRow_opt1 () 2392 in ( RECORDatpat (PP LBRACEleft RBRACEright, PatRow_opt) ) end 2393) 2394 in (LrTable.NT 54,(result,LBRACE1left,RBRACE1right),rest671) end 2395| (225,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.Pat Pat1,_, 2396_))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result= 2397MlyValue.AtPat(fn _ => let val Pat as Pat1=Pat1 () 2398 in ( PARatpat (PP LPARENleft RPARENright, Pat) ) end 2399) 2400 in (LrTable.NT 54,(result,LPAREN1left,RPAREN1right),rest671) end 2401| (226,(_,(_,_,RPARENright as RPAREN1right))::(_,(_,LPARENleft as 2402LPAREN1left,_))::rest671) => let val result=MlyValue.AtPat(fn _ => ( 2403 RECORDatpat (PP LPARENleft RPARENright, NONE) )) 2404 in (LrTable.NT 54,(result,LPAREN1left,RPAREN1right),rest671) end 2405| (227,(_,(_,_,RPARENright as RPAREN1right))::(_,( 2406MlyValue.PatComma_seq2 PatComma_seq21,_,_))::(_,(_,LPARENleft as 2407LPAREN1left,_))::rest671) => let val result=MlyValue.AtPat(fn _ => 2408let val PatComma_seq2 as PatComma_seq21=PatComma_seq21 () 2409 in ( tuple_atpat_with_info (PP LPARENleft RPARENright) PatComma_seq2 2410) end 2411) 2412 in (LrTable.NT 54,(result,LPAREN1left,RPAREN1right),rest671) end 2413| (228,(_,(_,_,RBRACKETright as RBRACKET1right))::(_,( 2414MlyValue.PatComma_seq0 PatComma_seq01,_,_))::(_,(_,LBRACKETleft as 2415LBRACKET1left,_))::rest671) => let val result=MlyValue.AtPat(fn _ => 2416let val PatComma_seq0 as PatComma_seq01=PatComma_seq01 () 2417 in ( list_atpat (PP LBRACKETleft RBRACKETright) PatComma_seq0 ) end 2418) 2419 in (LrTable.NT 54,(result,LBRACKET1left,RBRACKET1right),rest671) end 2420| (229,(_,(MlyValue.PatRow PatRow1,PatRow1left,PatRow1right))::rest671 2421) => let val result=MlyValue.PatRow_opt(fn _ => let val PatRow as 2422PatRow1=PatRow1 () 2423 in ( SOME PatRow ) end 2424) 2425 in (LrTable.NT 82,(result,PatRow1left,PatRow1right),rest671) end 2426| (230,rest671) => let val result=MlyValue.PatRow_opt(fn _ => ( NONE ) 2427) 2428 in (LrTable.NT 82,(result,defaultPos,defaultPos),rest671) end 2429| (231,(_,(_,DOTDOTDOTleft as DOTDOTDOT1left,DOTDOTDOTright as 2430DOTDOTDOT1right))::rest671) => let val result=MlyValue.PatRow(fn _ => 2431( DecGrammar.DOTDOTDOT (PP DOTDOTDOTleft DOTDOTDOTright) )) 2432 in (LrTable.NT 53,(result,DOTDOTDOT1left,DOTDOTDOT1right),rest671) 2433 end 2434| (232,(_,(MlyValue.CommaPatRow_opt CommaPatRow_opt1,_, 2435CommaPatRow_opt1right))::(_,(MlyValue.Pat Pat1,_,_))::_::(_,( 2436MlyValue.Label Label1,Labelleft as Label1left,_))::rest671) => let 2437val result=MlyValue.PatRow(fn _ => let val Label as Label1=Label1 () 2438val Pat as Pat1=Pat1 () 2439val CommaPatRow_opt as CommaPatRow_opt1=CommaPatRow_opt1 () 2440 in ( 2441 PATROW (PP Labelleft 2442 (rightmost get_info_pat Pat 2443 get_info_patrow CommaPatRow_opt), 2444 Label, Pat, CommaPatRow_opt) 2445) end 2446) 2447 in (LrTable.NT 53,(result,Label1left,CommaPatRow_opt1right),rest671) 2448 end 2449| (233,(_,(MlyValue.CommaPatRow_opt CommaPatRow_opt1,_, 2450CommaPatRow_opt1right))::(_,(MlyValue.AsPat_opt AsPat_opt1,_,_))::(_,( 2451MlyValue.ColonTy_opt ColonTy_opt1,_,_))::(_,(MlyValue.Ident Ident1, 2452Identleft as Ident1left,Identright))::rest671) => let val result= 2453MlyValue.PatRow(fn _ => let val Ident as Ident1=Ident1 () 2454val ColonTy_opt as ColonTy_opt1=ColonTy_opt1 () 2455val AsPat_opt as AsPat_opt1=AsPat_opt1 () 2456val CommaPatRow_opt as CommaPatRow_opt1=CommaPatRow_opt1 () 2457 in ( 2458 PATROW 2459 (PP Identleft 2460 (rightmost_of_four Identright 2461 get_info_ty ColonTy_opt 2462 get_info_pat AsPat_opt 2463 get_info_patrow CommaPatRow_opt), 2464 mk_IdentLab Ident, 2465 let 2466 val info_ident = PP Identleft Identright 2467 val idPat = 2468 ATPATpat 2469 (info_ident, 2470 LONGIDatpat 2471 (info_ident, OP_OPT (mk_LongId [Ident], false))) 2472 in 2473 case (ColonTy_opt, AsPat_opt) of 2474 (_, SOME pat) => 2475 LAYEREDpat (PP Identleft (right (get_info_pat pat)), 2476 OP_OPT (mk_Id Ident, false), 2477 ColonTy_opt, pat) 2478 | (SOME ty, NONE) => 2479 TYPEDpat (PP Identleft (right (get_info_ty ty)), 2480 idPat, ty) 2481 | (NONE, NONE) => idPat 2482 end, 2483 CommaPatRow_opt) 2484) end 2485) 2486 in (LrTable.NT 53,(result,Ident1left,CommaPatRow_opt1right),rest671) 2487 end 2488| (234,(_,(MlyValue.Pat Pat1,_,Pat1right))::(_,(_,AS1left,_))::rest671 2489) => let val result=MlyValue.AsPat_opt(fn _ => let val Pat as Pat1= 2490Pat1 () 2491 in ( SOME Pat ) end 2492) 2493 in (LrTable.NT 83,(result,AS1left,Pat1right),rest671) end 2494| (235,rest671) => let val result=MlyValue.AsPat_opt(fn _ => ( NONE )) 2495 in (LrTable.NT 83,(result,defaultPos,defaultPos),rest671) end 2496| (236,(_,(MlyValue.PatRow PatRow1,_,PatRow1right))::(_,(_,COMMA1left, 2497_))::rest671) => let val result=MlyValue.CommaPatRow_opt(fn _ => let 2498val PatRow as PatRow1=PatRow1 () 2499 in ( SOME PatRow ) end 2500) 2501 in (LrTable.NT 84,(result,COMMA1left,PatRow1right),rest671) end 2502| (237,rest671) => let val result=MlyValue.CommaPatRow_opt(fn _ => ( 2503 NONE )) 2504 in (LrTable.NT 84,(result,defaultPos,defaultPos),rest671) end 2505| (238,(_,(MlyValue.PatComma_seq1 PatComma_seq11,PatComma_seq11left, 2506PatComma_seq11right))::rest671) => let val result= 2507MlyValue.PatComma_seq0(fn _ => let val PatComma_seq1 as PatComma_seq11 2508=PatComma_seq11 () 2509 in ( PatComma_seq1 ) end 2510) 2511 in (LrTable.NT 93,(result,PatComma_seq11left,PatComma_seq11right), 2512rest671) end 2513| (239,rest671) => let val result=MlyValue.PatComma_seq0(fn _ => ( 2514 nil )) 2515 in (LrTable.NT 93,(result,defaultPos,defaultPos),rest671) end 2516| (240,(_,(MlyValue.PatComma_seq1 PatComma_seq11,_,PatComma_seq11right 2517))::_::(_,(MlyValue.Pat Pat1,Pat1left,_))::rest671) => let val result= 2518MlyValue.PatComma_seq1(fn _ => let val Pat as Pat1=Pat1 () 2519val PatComma_seq1 as PatComma_seq11=PatComma_seq11 () 2520 in ( Pat :: PatComma_seq1 ) end 2521) 2522 in (LrTable.NT 94,(result,Pat1left,PatComma_seq11right),rest671) end 2523| (241,(_,(MlyValue.Pat Pat1,Pat1left,Pat1right))::rest671) => let 2524val result=MlyValue.PatComma_seq1(fn _ => let val Pat as Pat1=Pat1 () 2525 in ( [Pat] ) end 2526) 2527 in (LrTable.NT 94,(result,Pat1left,Pat1right),rest671) end 2528| (242,(_,(MlyValue.PatComma_seq1 PatComma_seq11,_,PatComma_seq11right 2529))::_::(_,(MlyValue.Pat Pat1,Pat1left,_))::rest671) => let val result= 2530MlyValue.PatComma_seq2(fn _ => let val Pat as Pat1=Pat1 () 2531val PatComma_seq1 as PatComma_seq11=PatComma_seq11 () 2532 in ( Pat :: PatComma_seq1 ) end 2533) 2534 in (LrTable.NT 95,(result,Pat1left,PatComma_seq11right),rest671) end 2535| (243,(_,(MlyValue.AtPat AtPat1,AtPat1left,AtPat1right))::rest671) 2536 => let val result=MlyValue.Pat(fn _ => let val AtPat as AtPat1=AtPat1 2537 () 2538 in ( ATPATpat (get_info_atpat AtPat, AtPat) ) end 2539) 2540 in (LrTable.NT 52,(result,AtPat1left,AtPat1right),rest671) end 2541| (244,(_,(MlyValue.AtPat_seq2 AtPat_seq21,AtPat_seq2left as 2542AtPat_seq21left,AtPat_seq2right as AtPat_seq21right))::rest671) => 2543let val result=MlyValue.Pat(fn _ => let val AtPat_seq2 as AtPat_seq21= 2544AtPat_seq21 () 2545 in ( 2546 UNRES_INFIXpat (PP AtPat_seq2left AtPat_seq2right, 2547 AtPat_seq2) 2548) end 2549) 2550 in (LrTable.NT 52,(result,AtPat_seq21left,AtPat_seq21right),rest671) 2551 end 2552| (245,(_,(MlyValue.Ty Ty1,_,Tyright as Ty1right))::_::(_,( 2553MlyValue.Pat Pat1,Patleft as Pat1left,_))::rest671) => let val result= 2554MlyValue.Pat(fn _ => let val Pat as Pat1=Pat1 () 2555val Ty as Ty1=Ty1 () 2556 in ( TYPEDpat (PP Patleft Tyright, Pat, Ty) ) end 2557) 2558 in (LrTable.NT 52,(result,Pat1left,Ty1right),rest671) end 2559| (246,(_,(MlyValue.Pat Pat2,_,Pat2right))::_::(_,(MlyValue.Pat Pat1, 2560Pat1left,_))::rest671) => let val result=MlyValue.Pat(fn _ => let val 2561Pat1=Pat1 () 2562val Pat2=Pat2 () 2563 in ( layeredPat (PP Pat1left Pat2right, Pat1, Pat2) ) end 2564) 2565 in (LrTable.NT 52,(result,Pat1left,Pat2right),rest671) end 2566| (247,(_,(MlyValue.Ty Ty1,_,Tyright as Ty1right))::_::(_,( 2567MlyValue.TupleTy TupleTy1,TupleTyleft as TupleTy1left,_))::rest671) 2568 => let val result=MlyValue.Ty(fn _ => let val TupleTy as TupleTy1= 2569TupleTy1 () 2570val Ty as Ty1=Ty1 () 2571 in ( 2572 FNty (PP TupleTyleft Tyright, 2573 (case TupleTy of 2574 [t] => t 2575 | ts => tuple_type (PP TupleTyleft Tyright) ts), 2576 Ty) 2577) end 2578) 2579 in (LrTable.NT 46,(result,TupleTy1left,Ty1right),rest671) end 2580| (248,(_,(MlyValue.TupleTy TupleTy1,TupleTyleft as TupleTy1left, 2581TupleTyright as TupleTy1right))::rest671) => let val result= 2582MlyValue.Ty(fn _ => let val TupleTy as TupleTy1=TupleTy1 () 2583 in ( 2584 (case TupleTy of 2585 [t] => t 2586 | ts => tuple_type (PP TupleTyleft TupleTyright) ts) 2587) end 2588) 2589 in (LrTable.NT 46,(result,TupleTy1left,TupleTy1right),rest671) end 2590| (249,(_,(MlyValue.Ty_sans_STAR Ty_sans_STAR1,Ty_sans_STAR1left, 2591Ty_sans_STAR1right))::rest671) => let val result=MlyValue.TupleTy(fn _ 2592 => let val Ty_sans_STAR as Ty_sans_STAR1=Ty_sans_STAR1 () 2593 in ( [Ty_sans_STAR] ) end 2594) 2595 in (LrTable.NT 47,(result,Ty_sans_STAR1left,Ty_sans_STAR1right), 2596rest671) end 2597| (250,(_,(MlyValue.TupleTy TupleTy1,_,TupleTy1right))::_::(_,( 2598MlyValue.Ty_sans_STAR Ty_sans_STAR1,Ty_sans_STAR1left,_))::rest671) 2599 => let val result=MlyValue.TupleTy(fn _ => let val Ty_sans_STAR as 2600Ty_sans_STAR1=Ty_sans_STAR1 () 2601val TupleTy as TupleTy1=TupleTy1 () 2602 in ( Ty_sans_STAR :: TupleTy ) end 2603) 2604 in (LrTable.NT 47,(result,Ty_sans_STAR1left,TupleTy1right),rest671) 2605 end 2606| (251,(_,(MlyValue.LongTypeIdent LongTypeIdent1,_,LongTypeIdentright 2607 as LongTypeIdent1right))::_::(_,(MlyValue.TyComma_seq2 TyComma_seq21, 2608_,_))::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result 2609=MlyValue.Ty_sans_STAR(fn _ => let val TyComma_seq2 as TyComma_seq21= 2610TyComma_seq21 () 2611val LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 2612 in ( 2613 CONty (PP LPARENleft LongTypeIdentright, 2614 TyComma_seq2, mk_LongTyCon LongTypeIdent) 2615) end 2616) 2617 in (LrTable.NT 48,(result,LPAREN1left,LongTypeIdent1right),rest671) 2618 end 2619| (252,(_,(MlyValue.LongTypeIdent LongTypeIdent1,_,LongTypeIdentright 2620 as LongTypeIdent1right))::(_,(MlyValue.Ty_sans_STAR Ty_sans_STAR1, 2621Ty_sans_STARleft as Ty_sans_STAR1left,_))::rest671) => let val result= 2622MlyValue.Ty_sans_STAR(fn _ => let val Ty_sans_STAR as Ty_sans_STAR1= 2623Ty_sans_STAR1 () 2624val LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 2625 in ( 2626 CONty (PP Ty_sans_STARleft LongTypeIdentright, 2627 [Ty_sans_STAR], mk_LongTyCon LongTypeIdent) 2628) end 2629) 2630 in (LrTable.NT 48,(result,Ty_sans_STAR1left,LongTypeIdent1right), 2631rest671) end 2632| (253,(_,(MlyValue.AtomicTy AtomicTy1,AtomicTy1left,AtomicTy1right)) 2633::rest671) => let val result=MlyValue.Ty_sans_STAR(fn _ => let val 2634AtomicTy as AtomicTy1=AtomicTy1 () 2635 in ( AtomicTy ) end 2636) 2637 in (LrTable.NT 48,(result,AtomicTy1left,AtomicTy1right),rest671) end 2638| (254,(_,(MlyValue.TyComma_seq2 TyComma_seq21,_,TyComma_seq21right)) 2639::_::(_,(MlyValue.Ty Ty1,Ty1left,_))::rest671) => let val result= 2640MlyValue.TyComma_seq2(fn _ => let val Ty as Ty1=Ty1 () 2641val TyComma_seq2 as TyComma_seq21=TyComma_seq21 () 2642 in ( Ty :: TyComma_seq2 ) end 2643) 2644 in (LrTable.NT 102,(result,Ty1left,TyComma_seq21right),rest671) end 2645| (255,(_,(MlyValue.Ty Ty2,_,Ty2right))::_::(_,(MlyValue.Ty Ty1, 2646Ty1left,_))::rest671) => let val result=MlyValue.TyComma_seq2(fn _ => 2647let val Ty1=Ty1 () 2648val Ty2=Ty2 () 2649 in ( [Ty1, Ty2] ) end 2650) 2651 in (LrTable.NT 102,(result,Ty1left,Ty2right),rest671) end 2652| (256,(_,(MlyValue.LongTypeIdent LongTypeIdent1,LongTypeIdentleft as 2653LongTypeIdent1left,LongTypeIdentright as LongTypeIdent1right)):: 2654rest671) => let val result=MlyValue.AtomicTy(fn _ => let val 2655LongTypeIdent as LongTypeIdent1=LongTypeIdent1 () 2656 in ( 2657 CONty (PP LongTypeIdentleft LongTypeIdentright, 2658 [], mk_LongTyCon LongTypeIdent) 2659) end 2660) 2661 in (LrTable.NT 49,(result,LongTypeIdent1left,LongTypeIdent1right), 2662rest671) end 2663| (257,(_,(MlyValue.TYVAR TYVAR1,TYVARleft as TYVAR1left,TYVARright 2664 as TYVAR1right))::rest671) => let val result=MlyValue.AtomicTy(fn _ 2665 => let val TYVAR as TYVAR1=TYVAR1 () 2666 in ( TYVARty(PP TYVARleft TYVARright, mk_TyVar TYVAR) ) end 2667) 2668 in (LrTable.NT 49,(result,TYVAR1left,TYVAR1right),rest671) end 2669| (258,(_,(_,_,RBRACEright as RBRACE1right))::(_,(MlyValue.TyRow_opt 2670TyRow_opt1,_,_))::(_,(_,LBRACEleft as LBRACE1left,_))::rest671) => 2671let val result=MlyValue.AtomicTy(fn _ => let val TyRow_opt as 2672TyRow_opt1=TyRow_opt1 () 2673 in ( RECORDty (PP LBRACEleft RBRACEright, TyRow_opt) ) end 2674) 2675 in (LrTable.NT 49,(result,LBRACE1left,RBRACE1right),rest671) end 2676| (259,(_,(_,_,RPARENright as RPAREN1right))::(_,(MlyValue.Ty Ty1,_,_) 2677)::(_,(_,LPARENleft as LPAREN1left,_))::rest671) => let val result= 2678MlyValue.AtomicTy(fn _ => let val Ty as Ty1=Ty1 () 2679 in ( PARty (PP LPARENleft RPARENright, Ty) ) end 2680) 2681 in (LrTable.NT 49,(result,LPAREN1left,RPAREN1right),rest671) end 2682| (260,(_,(MlyValue.TyRow TyRow1,TyRow1left,TyRow1right))::rest671) 2683 => let val result=MlyValue.TyRow_opt(fn _ => let val TyRow as TyRow1= 2684TyRow1 () 2685 in ( SOME TyRow ) end 2686) 2687 in (LrTable.NT 87,(result,TyRow1left,TyRow1right),rest671) end 2688| (261,rest671) => let val result=MlyValue.TyRow_opt(fn _ => ( NONE )) 2689 in (LrTable.NT 87,(result,defaultPos,defaultPos),rest671) end 2690| (262,(_,(MlyValue.CommaTyRow_opt CommaTyRow_opt1,_, 2691CommaTyRow_opt1right))::(_,(MlyValue.Ty Ty1,_,_))::_::(_,( 2692MlyValue.Label Label1,Labelleft as Label1left,_))::rest671) => let 2693val result=MlyValue.TyRow(fn _ => let val Label as Label1=Label1 () 2694val Ty as Ty1=Ty1 () 2695val CommaTyRow_opt as CommaTyRow_opt1=CommaTyRow_opt1 () 2696 in ( 2697 TYROW (PP Labelleft 2698 (rightmost get_info_ty Ty 2699 get_info_tyrow CommaTyRow_opt), 2700 Label, Ty, CommaTyRow_opt) 2701) end 2702) 2703 in (LrTable.NT 45,(result,Label1left,CommaTyRow_opt1right),rest671) 2704 end 2705| (263,(_,(MlyValue.TyRow TyRow1,_,TyRow1right))::(_,(_,COMMA1left,_)) 2706::rest671) => let val result=MlyValue.CommaTyRow_opt(fn _ => let val 2707TyRow as TyRow1=TyRow1 () 2708 in ( SOME TyRow ) end 2709) 2710 in (LrTable.NT 88,(result,COMMA1left,TyRow1right),rest671) end 2711| (264,rest671) => let val result=MlyValue.CommaTyRow_opt(fn _ => ( 2712 NONE )) 2713 in (LrTable.NT 88,(result,defaultPos,defaultPos),rest671) end 2714| (265,(_,(MlyValue.DECPOSINTEGER DECPOSINTEGER1,DECPOSINTEGERleft as 2715DECPOSINTEGER1left,DECPOSINTEGER1right))::rest671) => let val result= 2716MlyValue.Integer(fn _ => let val DECPOSINTEGER as DECPOSINTEGER1= 2717DECPOSINTEGER1 () 2718 in ( 2719 raise_lexical_error_if_none 2720 DECPOSINTEGERleft DECPOSINTEGER ) 2721 end 2722) 2723 in (LrTable.NT 123,(result,DECPOSINTEGER1left,DECPOSINTEGER1right), 2724rest671) end 2725| (266,(_,(MlyValue.DECNEGINTEGER DECNEGINTEGER1,DECNEGINTEGERleft as 2726DECNEGINTEGER1left,DECNEGINTEGER1right))::rest671) => let val result= 2727MlyValue.Integer(fn _ => let val DECNEGINTEGER as DECNEGINTEGER1= 2728DECNEGINTEGER1 () 2729 in ( 2730 raise_lexical_error_if_none 2731 DECNEGINTEGERleft DECNEGINTEGER ) 2732 end 2733) 2734 in (LrTable.NT 123,(result,DECNEGINTEGER1left,DECNEGINTEGER1right), 2735rest671) end 2736| (267,(_,(MlyValue.HEXINTEGER HEXINTEGER1,HEXINTEGERleft as 2737HEXINTEGER1left,HEXINTEGER1right))::rest671) => let val result= 2738MlyValue.Integer(fn _ => let val HEXINTEGER as HEXINTEGER1=HEXINTEGER1 2739 () 2740 in ( raise_lexical_error_if_none 2741 HEXINTEGERleft HEXINTEGER ) 2742 end 2743) 2744 in (LrTable.NT 123,(result,HEXINTEGER1left,HEXINTEGER1right),rest671) 2745 end 2746| (268,(_,(MlyValue.DIGIT DIGIT1,DIGIT1left,DIGIT1right))::rest671) 2747 => let val result=MlyValue.Integer(fn _ => let val DIGIT as DIGIT1= 2748DIGIT1 () 2749 in ( DIGIT ) end 2750) 2751 in (LrTable.NT 123,(result,DIGIT1left,DIGIT1right),rest671) end 2752| (269,(_,(MlyValue.STRING STRING1,STRINGleft,STRING1right))::(_,(_, 2753HASH1left,_))::rest671) => let val result=MlyValue.Char(fn _ => let 2754val STRING as STRING1=STRING1 () 2755 in ( 2756 case explode STRING 2757 of [c] => ord c 2758 | _ => raise LEXICAL_ERROR (STRINGleft, "string must have length 1") 2759) end 2760) 2761 in (LrTable.NT 124,(result,HASH1left,STRING1right),rest671) end 2762| (270,(_,(MlyValue.Integer Integer1,Integer1left,Integer1right)):: 2763rest671) => let val result=MlyValue.SCon(fn _ => let val Integer as 2764Integer1=Integer1 () 2765 in ( mk_IntSCon Integer ) end 2766) 2767 in (LrTable.NT 51,(result,Integer1left,Integer1right),rest671) end 2768| (271,(_,(MlyValue.WORD WORD1,WORDleft as WORD1left,WORD1right)):: 2769rest671) => let val result=MlyValue.SCon(fn _ => let val WORD as WORD1 2770=WORD1 () 2771 in ( mk_WordSCon (raise_lexical_error_if_none WORDleft WORD) ) end 2772) 2773 in (LrTable.NT 51,(result,WORD1left,WORD1right),rest671) end 2774| (272,(_,(MlyValue.STRING STRING1,STRING1left,STRING1right))::rest671 2775) => let val result=MlyValue.SCon(fn _ => let val STRING as STRING1= 2776STRING1 () 2777 in ( mk_StringSCon STRING ) end 2778) 2779 in (LrTable.NT 51,(result,STRING1left,STRING1right),rest671) end 2780| (273,(_,(MlyValue.Char Char1,Char1left,Char1right))::rest671) => 2781let val result=MlyValue.SCon(fn _ => let val Char as Char1=Char1 () 2782 in ( mk_CharSCon Char ) end 2783) 2784 in (LrTable.NT 51,(result,Char1left,Char1right),rest671) end 2785| (274,(_,(MlyValue.REAL REAL1,REALleft as REAL1left,REAL1right)):: 2786rest671) => let val result=MlyValue.SCon(fn _ => let val REAL as REAL1 2787=REAL1 () 2788 in ( mk_RealSCon (raise_lexical_error_if_none REALleft REAL) ) end 2789) 2790 in (LrTable.NT 51,(result,REAL1left,REAL1right),rest671) end 2791| (275,(_,(MlyValue.TyVarSeq1 TyVarSeq11,TyVarSeq11left, 2792TyVarSeq11right))::rest671) => let val result=MlyValue.TyVarSeq(fn _ 2793 => let val TyVarSeq1 as TyVarSeq11=TyVarSeq11 () 2794 in ( TyVarSeq1 ) end 2795) 2796 in (LrTable.NT 50,(result,TyVarSeq11left,TyVarSeq11right),rest671) 2797 end 2798| (276,rest671) => let val result=MlyValue.TyVarSeq(fn _ => ( [] )) 2799 in (LrTable.NT 50,(result,defaultPos,defaultPos),rest671) end 2800| (277,(_,(MlyValue.TYVAR TYVAR1,TYVAR1left,TYVAR1right))::rest671) 2801 => let val result=MlyValue.TyVarSeq1(fn _ => let val TYVAR as TYVAR1= 2802TYVAR1 () 2803 in ( [mk_TyVar TYVAR] ) end 2804) 2805 in (LrTable.NT 100,(result,TYVAR1left,TYVAR1right),rest671) end 2806| (278,(_,(_,_,RPAREN1right))::(_,(MlyValue.TyVarComma_seq1 2807TyVarComma_seq11,_,_))::(_,(_,LPAREN1left,_))::rest671) => let val 2808result=MlyValue.TyVarSeq1(fn _ => let val TyVarComma_seq1 as 2809TyVarComma_seq11=TyVarComma_seq11 () 2810 in ( TyVarComma_seq1 ) end 2811) 2812 in (LrTable.NT 100,(result,LPAREN1left,RPAREN1right),rest671) end 2813| (279,(_,(MlyValue.TyVarComma_seq1 TyVarComma_seq11,_, 2814TyVarComma_seq11right))::_::(_,(MlyValue.TYVAR TYVAR1,TYVAR1left,_)):: 2815rest671) => let val result=MlyValue.TyVarComma_seq1(fn _ => let val 2816TYVAR as TYVAR1=TYVAR1 () 2817val TyVarComma_seq1 as TyVarComma_seq11=TyVarComma_seq11 () 2818 in ( mk_TyVar TYVAR :: TyVarComma_seq1 ) end 2819) 2820 in (LrTable.NT 101,(result,TYVAR1left,TyVarComma_seq11right),rest671) 2821 end 2822| (280,(_,(MlyValue.TYVAR TYVAR1,TYVAR1left,TYVAR1right))::rest671) 2823 => let val result=MlyValue.TyVarComma_seq1(fn _ => let val TYVAR as 2824TYVAR1=TYVAR1 () 2825 in ( [mk_TyVar TYVAR] ) end 2826) 2827 in (LrTable.NT 101,(result,TYVAR1left,TYVAR1right),rest671) end 2828| _ => raise (mlyAction i392) 2829end 2830(* cvr: end *) 2831end 2832