prog :: State
prog = State
        [Bind "fact" fact,
        Bind "countTo" countTo,
        Bind "mult" mult,
        Bind "result" (App (Ident "countTo") (App (Ident "fact") (Lit (LInt 4)))),
        Bind "r2" $ appList (Ident "mult") [(Ident "result"), (Lit $ LInt 4)]
        ]
        []
prog :: State
prog = State
        [Bind "fact" fact,
        Bind "countTo" countTo,
        Bind "mult" mult,
        Bind "result" (App (Ident "countTo") (App (Ident "fact") (Lit (LInt 4)))),
        Bind "r2" $ appList (Ident "mult") [(Ident "result"), (Lit $ LInt 4)]
        ]
        []
prog = State
        [Bind "fact" fact,
        Bind "countTo" countTo,
        Bind "mult" mult,
        Bind "result" (App (Ident "countTo") (App (Ident "fact") (Lit (LInt 4)))),
        Bind "r2" $ appList (Ident "mult") [(Ident "result"), (Lit $ LInt 4)]
        ]
        []