||-----------------------------------------------------------  
|| Name:    Macro Expander.                                  ||
|| Version: 2  GLAMMAR (Feb 13, 1991)                        ||
|| Author:  Eric Voss                                        ||
|| Address: KUN NIJMEGEN Informatica II A3017 tel: (61)2306. ||
|| E-mail:  ericv@cs.kun.nl                                  ||
||-----------------------------------------------------------  


  [
      (DefBasetype ( "",  5 )  "B"),
      (DefAtom ( "",  7 )  "jkff"
        []
        (TypUni
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ]))),
      (DefAtom ( "",  8 )  "and"
        []
        (TypUni
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypBase "B"))),
      (DefAtom ( "",  9 )  "or"
        []
        (TypUni
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypBase "B"))),
      (DefAtom ( "",  10 )  "buf"
        []
        (TypUni
          (TypBase "B")
          (TypBase "B"))),
      (DefAtom ( "",  11 )  "nand"
        []
        (TypUni
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypBase "B"))),
      (DefVal ( "",  14 )  "counterstage"
        (TypUni
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B"),
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypProd
            [
                (TypBase "B"),
                (TypBase "B")
            ]))
        (VLambda
          (FCList
            [
                (FCSym "d_17"),
                (FCSym "preset_18"),
                (FCSym "toggle_19"),
                (FCSym "nclr_20")
            ])
          (VWhere
            [
                (DefCon ( "",  18 ) 
                  (VSym ( "",  18 )  "ja_21")
                  (VAtom ( "",  18 )  "nand"
                    []
                    (VList
                      [
                          (VSym ( "",  18 )  "ka_22"),
                          (VSym ( "",  18 )  "preset_18")
                      ]))),
                (DefCon ( "",  19 ) 
                  (VSym ( "",  19 )  "ka_22")
                  (VAtom ( "",  19 )  "nand"
                    []
                    (VList
                      [
                          (VSym ( "",  19 )  "d_17"),
                          (VSym ( "",  19 )  "nclr_20")
                      ]))),
                (DefCon ( "",  20 ) 
                  (VSym ( "",  20 )  "ea_23")
                  (VAtom ( "",  20 )  "or"
                    []
                    (VList
                      [
                          (VSym ( "",  20 )  "toggle_19"),
                          (VSym ( "",  20 )  "preset_18")
                      ])))
            ]
            (VAtom ( "",  16 )  "jkff"
              []
              (VList
                [
                    (VAtom ( "",  16 )  "and"
                      []
                      (VList
                        [
                            (VSym ( "",  16 )  "ja_21"),
                            (VSym ( "",  16 )  "ea_23")
                        ])),
                    (VAtom ( "",  16 )  "and"
                      []
                      (VList
                        [
                            (VSym ( "",  16 )  "ka_22"),
                            (VSym ( "",  16 )  "ea_23")
                        ]))
                ]))))),
      (DefVal ( "",  28 )  "countr"
        (TypUni
          (TypProd
            [
                (TypProd
                  [
                      (TypBase "B"),
                      (TypBase "B"),
                      (TypBase "B"),
                      (TypBase "B")
                  ]),
                (TypBase "B"),
                (TypBase "B"),
                (TypBase "B"),
                (TypBase "B")
            ])
          (TypProd
            [
                (TypBase "B"),
                (TypProd
                  [
                      (TypBase "B"),
                      (TypBase "B"),
                      (TypBase "B"),
                      (TypBase "B")
                  ])
            ]))
        (VLambda
          (FCList
            [
                (FCList
                  [
                      (FCSym "d3_51"),
                      (FCSym "d2_52"),
                      (FCSym "d1_53"),
                      (FCSym "d0_54")
                  ]),
                (FCSym "nload_55"),
                (FCSym "nclear_56"),
                (FCSym "enap_57"),
                (FCSym "enat_58")
            ])
          (VWhere
            [
                (DefCon ( "",  32 ) 
                  (VSym ( "",  32 )  "carry_59")
                  (VApply
                    (VLambda(FCComp 
                      (FCSym "x_30_H")

                      
                      (FCSym "xr_29_D"))
                      (VAtom ( "",  25 )  "and"
                        []
                        (VList
                          [
                              (VSym ( "local_macroexp_name",  0 )  "x_30_H"),
                              (VApply
                                (VLambda(FCComp 
                                  (FCSym "x_30_A")

                                  
                                  (FCSym "xr_29_B"))
                                  (VAtom ( "",  25 )  "and"
                                    []
                                    (VList
                                      [
                                          (VSym ( "local_macroexp_name",  0 )  "x_30_A"),
                                          (VApply
                                            (VLambda(FCComp 
                                              (FCSym "x_30_k")

                                              
                                              (FCSym "xr_29_b"))
                                              (VAtom ( "",  25 )  "and"
                                                []
                                                (VList
                                                  [
                                                      (VSym ( "local_macroexp_name",  0 )  "x_30_k"),
                                                      (VApply
                                                        (VLambda
                                                          (FCSym "eta_25_q")
                                                          (VAtom ( "",  24 )  "and"
                                                            []
                                                            (VSym ( "local_macroexp_name",  0 )  "eta_25_q")))
                                                        (VSym ( "local_macroexp_name",  0 )  "xr_29_b"))
                                                  ])))
                                            (VSym ( "local_macroexp_name",  0 )  "xr_29_B"))
                                      ])))
                                (VSym ( "local_macroexp_name",  0 )  "xr_29_D"))
                          ])))
                    (VList
                      [
                          (VSym ( "",  32 )  "q3_60"),
                          (VSym ( "",  32 )  "q2_61"),
                          (VSym ( "",  32 )  "q1_62"),
                          (VSym ( "",  32 )  "q0_63"),
                          (VSym ( "",  32 )  "enat_58")
                      ]))),
                (DefCon ( "",  33 ) 
                  (VList
                    [
                        (VSym ( "",  33 )  "q3_60"),
                        (VSym ( "",  33 )  "q3'_64")
                    ])
                  (VApply
                    (VSym ( "",  33 )  "counterstage")
                    (VList
                      [
                          (VSym ( "",  33 )  "d3_51"),
                          (VSym ( "",  33 )  "preset_65"),
                          (VApply
                            (VLambda(FCComp 
                              (FCSym "x_30_u")

                              
                              (FCSym "xr_29_R"))
                              (VAtom ( "",  25 )  "and"
                                []
                                (VList
                                  [
                                      (VSym ( "local_macroexp_name",  0 )  "x_30_u"),
                                      (VApply
                                        (VLambda(FCComp 
                                          (FCSym "x_30_T")

                                          
                                          (FCSym "xr_29_y"))
                                          (VAtom ( "",  25 )  "and"
                                            []
                                            (VList
                                              [
                                                  (VSym ( "local_macroexp_name",  0 )  "x_30_T"),
                                                  (VApply
                                                    (VLambda
                                                      (FCSym "eta_25_a")
                                                      (VAtom ( "",  24 )  "and"
                                                        []
                                                        (VSym ( "local_macroexp_name",  0 )  "eta_25_a")))
                                                    (VSym ( "local_macroexp_name",  0 )  "xr_29_y"))
                                              ])))
                                        (VSym ( "local_macroexp_name",  0 )  "xr_29_R"))
                                  ])))
                            (VList
                              [
                                  (VSym ( "",  33 )  "q2_61"),
                                  (VSym ( "",  33 )  "q1_62"),
                                  (VSym ( "",  33 )  "q0_63"),
                                  (VSym ( "",  33 )  "en_66")
                              ])),
                          (VSym ( "",  33 )  "nclr_67")
                      ]))),
                (DefCon ( "",  34 ) 
                  (VList
                    [
                        (VSym ( "",  34 )  "q2_61"),
                        (VSym ( "",  34 )  "q2'_68")
                    ])
                  (VApply
                    (VSym ( "",  34 )  "counterstage")
                    (VList
                      [
                          (VSym ( "",  34 )  "d2_52"),
                          (VSym ( "",  34 )  "preset_65"),
                          (VApply
                            (VLambda(FCComp 
                              (FCSym "x_30_C")

                              
                              (FCSym "xr_29_w"))
                              (VAtom ( "",  25 )  "and"
                                []
                                (VList
                                  [
                                      (VSym ( "local_macroexp_name",  0 )  "x_30_C"),
                                      (VApply
                                        (VLambda
                                          (FCSym "eta_25_c")
                                          (VAtom ( "",  24 )  "and"
                                            []
                                            (VSym ( "local_macroexp_name",  0 )  "eta_25_c")))
                                        (VSym ( "local_macroexp_name",  0 )  "xr_29_w"))
                                  ])))
                            (VList
                              [
                                  (VSym ( "",  34 )  "q1_62"),
                                  (VSym ( "",  34 )  "q0_63"),
                                  (VSym ( "",  34 )  "en_66")
                              ])),
                          (VSym ( "",  34 )  "nclr_67")
                      ]))),
                (DefCon ( "",  35 ) 
                  (VList
                    [
                        (VSym ( "",  35 )  "q1_62"),
                        (VSym ( "",  35 )  "q1'_69")
                    ])
                  (VApply
                    (VSym ( "",  35 )  "counterstage")
                    (VList
                      [
                          (VSym ( "",  35 )  "d1_53"),
                          (VSym ( "",  35 )  "preset_65"),
                          (VAtom ( "",  35 )  "and"
                            []
                            (VList
                              [
                                  (VSym ( "",  35 )  "q0_63"),
                                  (VSym ( "",  35 )  "en_66")
                              ])),
                          (VSym ( "",  35 )  "nclr_67")
                      ]))),
                (DefCon ( "",  36 ) 
                  (VList
                    [
                        (VSym ( "",  36 )  "q0_63"),
                        (VSym ( "",  36 )  "q0'_70")
                    ])
                  (VApply
                    (VSym ( "",  36 )  "counterstage")
                    (VList
                      [
                          (VSym ( "",  36 )  "d0_54"),
                          (VSym ( "",  36 )  "preset_65"),
                          (VSym ( "",  36 )  "en_66"),
                          (VSym ( "",  36 )  "nclr_67")
                      ]))),
                (DefCon ( "",  37 ) 
                  (VSym ( "",  37 )  "preset_65")
                  (VAtom ( "",  37 )  "nand"
                    []
                    (VList
                      [
                          (VSym ( "",  37 )  "nload_55"),
                          (VSym ( "",  37 )  "nclr_67")
                      ]))),
                (DefCon ( "",  38 ) 
                  (VSym ( "",  38 )  "nclr_67")
                  (VAtom ( "",  38 )  "buf"
                    []
                    (VSym ( "",  38 )  "nclear_56"))),
                (DefCon ( "",  39 ) 
                  (VSym ( "",  39 )  "en_66")
                  (VAtom ( "",  39 )  "and"
                    []
                    (VList
                      [
                          (VSym ( "",  39 )  "enap_57"),
                          (VSym ( "",  39 )  "enat_58")
                      ])))
            ]
            (VList
              [
                  (VSym ( "",  30 )  "carry_59"),
                  (VList
                    [
                        (VSym ( "",  30 )  "q3_60"),
                        (VSym ( "",  30 )  "q2_61"),
                        (VSym ( "",  30 )  "q1_62"),
                        (VSym ( "",  30 )  "q0_63")
                    ])
              ]))))
  ]
